LiangYongrui's Studio.

Mysql + MyBatis插入后得到自增主键

2018/08/13 Share

需求

使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值。

方法

在mapper中指定keyProperty属性,示例如下:

1
2
3
4
<insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="id" parameterType="com.liangyongrui.model.User">  
insert into user(username,password)
values(#{username},#{password})
</insert>

如上所示,我们在insert中指定了keyProperty=”id”,其中id代表插入的User对象的主键属性。

User.java

1
2
3
4
5
6
public class User {  
private int id;
private String username;
private String password;
//setter and getter
}

UserDao.java

1
2
3
public interface UserDao {  
int insertAndGetId(User user);
}

测试

1
2
3
4
5
6
7
User user = new User();  
user.setUsername("xxxx");
user.setPassword("xxxx");

System.out.println("插入前主键为:" + user.getId());
userDao.insertAndGetId(user);//插入操作
System.out.println("插入后主键为:" + user.getId());

输出:

1
2
插入前主键为:0  
插入后主键为:10

结论

利用keyProperty直接向转入的模型中写入了想要的值,方便与之关联的表调用

CATALOG
  1. 1. 需求
  2. 2. 方法
  3. 3. 测试
  4. 4. 结论