保存之后返回自增的主键值,在进行下一步操作会非常棒。
在MySQL数据库中有这么一个函数 last_insert_id();此方法会查询到最后一次保存的id
mybatis底层使用的就是这个函数
怎么使用呢,最主要就是在映射文件中的设置
<!--id写到接口中方法名 parameterType输入参数类型-->
<!--useGeneratedKeys:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中-->
<insert id="save" keyProperty="id" useGeneratedKeys="true" parameterType="com.oneyi.qingshuoapp.pojo.User">
insert into tb_user(mobile,password) values (
#{mobile},
#{password})
</insert>
主要区别:
useGeneratedKeys:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中
所需要注意的是:
- 返回的值并不是自增的id属性
- MyBatis会把数据库返回的id值自动封装到User实体类对象中
- 想要得到返回的Id属性,只需要通过调用 user.getId()即可
- 主键必须为自增长列,auto_increment