spring mybatis 对数据库的增删改查

创建一个maven项目:
然后一路向下就行:
配置文件:
pom.xml


4.0.0

com.itheima
day11
1.0-SNAPSHOT


    
        org.mybatis
        mybatis
        3.4.5
    
    
        mysql
        mysql-connector-java
        8.0.18
    
    
        log4j
        log4j
        1.2.12
    
    
        junit
        junit
        4.12
        test
    

**

在resouces 下创建一个jdbc.properties 配置文件:

**

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/eesy_mybatis?serverTimezone=UTC
jdbc.username=root
jdbc.password=123456

就是在resources中配置log4j 配不配其实都行(下面是log4j的源代码):

Set root category priority to INFO and its only appender to CONSOLE.

#log4j.rootCategory=INFO, CONSOLE debug info warn error fatal
log4j.rootCategory=debug, CONSOLE, LOGFILE

Set the enterprise logger category to FATAL and its only appender to CONSOLE.

log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE

CONSOLE is set to be a ConsoleAppender using a PatternLayout.

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

LOGFILE is set to be a File appender using a PatternLayout.

log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:\axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

然后就是在resources下主配置SqlMapConfig.xml:

最后开始写类部

1、在main下的java文件夹下创建“包+user”
import java.io.Serializable;
import java.util.Date;

public class User implements Serializable {
private Integer id;
private String username;
private Date birthday;
private String sex;
private String address;

public Integer getId() {
    return id;
}

public void setId(Integer id) {
    this.id = id;
}

public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

public Date getBirthday() {
    return birthday;
}

public void setBirthday(Date birthday) {
    this.birthday = birthday;
}

public String getSex() {
    return sex;
}

public void setSex(String sex) {
    this.sex = sex;
}

public String getAddress() {
    return address;
}

public void setAddress(String address) {
    this.address = address;
}

@Override
public String toString() {
    return "User{" +
            "id=" + id +
            ", username='" + username + '\'' +
            ", birthday=" + birthday +
            ", sex='" + sex + '\'' +
            ", address='" + address + '\'' +
            '}';
}

}
2、创建一个接口(包+IUserDao),为后面的动态代理:
package com.itheima.dao;

import com.itheima.domain.User;

import java.util.List;

public interface IUserDao {
/查询所有/
List findAll();
/保存用户信息/
void saveUser(User user);
/修改用户/
void updateUser(User user);
/根据id删除用户/
void deleteUser(Integer userId);
/根据id查询用户/
User findId(Integer userId);
/模糊查询/
List findByName(String username);
/聚合函数查询记录数/
int findTotal();

}
3、在resources下创建文件夹(三层)写一个IUserDao.xml文件:

select * from user; /*下面的值就会从user中取出来并一一赋值,但是在以前的写的都是values(?,?,?,?) 现在都是这样这是mybatis独有的。 */ insert into user(username,address,sex,birthday) values(#{username},#{address},#{sex},#{birthday}); update user set username=#{username},address=#{address},sex=#{sex},birthday=#{birthday} where id=#{id}; /*#后面的站位符可以随便写的*/ delete from user where id=#{uid};
    /*单个查询一个用户的所有信息*/
    /*后面的那个uid是随便写的*/
    select *from user where id=#{uid};