Mybatis + Mysql插入后获取主键id

  |   MyBatis Mysql

我尝试刚才插入就获取主键id变成了null,因为是自动自增id。使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增id。

mysql插入:

insert into user (username,password) VALUES ('zyl','123');  
select last_insert_id();

先看插入的配置文件:
在insert的标签里加两个属性:useGeneratedKeys="true"和keyProperty="id",这个keyProperty的id就是我们要返回的主键id

<insert id="addUser" useGeneratedKeys="true" keyProperty="id" parameterType="User">
        INSERT INTO user_member (username,password,email) VALUE (
        #{username},
        #{password}
</insert>

domain实体类:

public class User {

    private Long id;                 //用户ID
    private String username;         //用户名
    private String password;         //密码
    
    //略getter和setter方法
}

mapper层接口:

public void addUser(User user);  

service层对于插入语句的调用:

public void addUser (User user) {  
          
        userMapper.addUser(user);  
          
        System.out.println(user.getId());  
}   

参考地址:Mybatis + Mysql插入后获取主键id