Mybatis返回自增id的值

QQ截图20180202133246.jpg

在开发中常常会用到自增id,正常的插入语句返回是插入成功的条数,而有时候我们会需要插入的id值。

怎么获取插入的id值?

常见获取方法

1.先取出最大id值,在程序中加1
2.调用数据库api取得最大id值,然后插入
...

Mybatis的解决方案

<insert id="insertSelective" parameterType="me.forxx.model.user" useGeneratedKeys="true" keyProperty="user_id">
  select * from user
</insert>

只需要在插入的mapper中加上useGeneratedKeys="true" keyProperty="user_id"即可,useGeneratedKeys是否使用生成的主键,keyProperty主键字段名

用法:

User user = new User();
user.setName("name");
//其他属性
userDao.insertSelective(user);

//获取自增的user_id
Long userId = user.getUserId();

Mybatis会直接返回到插入的对象的主键字段上,直接get即可