MySQL如何自动获取主键(MyBatis执行Insert操作返回自增主键)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL如何自动获取主键(MyBatis执行Insert操作返回自增主键),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1878字,纯文字阅读大概需要3分钟。
内容图文
你好我是辰兮,很高兴你能来阅读。本篇整理了项目实战遇到的问题,解决如何获取数据库中自增的主键问题。
文章目录
一、项目案例
比如现在一个学生Student表 有三个字段 id(主键自增) name age;
你增加一个学生,你只是添加了name 和 age 但是你想获取新增学生的主键。应该如何获取呢?
/**
* 添加学生信息
* @param student 学生实例
* @return 成功操作的记录数目
*/
int add(Student student);
正常Mybatis操作
<insert id="add" parameterType="Student">
insert into Student(name, age) values(#{name}, #{age})
</insert
执行Insert(插入)操作后获取记录主键
解决方法一
<insert id="add" parameterType="Student" useGeneratedKeys="true" keyProperty="id">
insert into Student(name, age) values(#{name}, #{age})
</insert>
解决方法二
<insert id="add" parameterType="Student">
// 下面是SQLServer获取最近一次插入记录的主键值的方式
<selectKey resultType="java.lang.Long" keyProperty="id" order="AFTER">
SELECT LAST_INSERT_ID() AS id
</selectKey>
insert into Student(name, age) values(#{name}, #{age})
</insert>
由于方法二获取主键的方式依赖数据库本身,因此推荐使用方法一。
keyProperty ,默认值unset,用于设置getGeneratedKeys方法或selectKey子元素返回值将赋值到领域模型的哪个属性中。
useGeneratedKeys ,取值范围true|false(默认值),设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中。
二、实战分享
分享一下我项目实战中遇到的相关问题:只展示postman的测试部分。
场景:像CSDN博客评论一样,评论完后还要返回评论。
问题是:评论表的评论id是自动增长的,你传的时候不用传评论id,点赞数,用户头像,用户姓名等等,但是你返回的时候这些东西都是要有的,所以你要自己封装进去。
正常Mybatis操作:postman的测试传评论
我们可以发现传入的什么返回的就是什么 如id为null
在Mybatis中进行配置:postman的测试传评论
我们发现我们可以获取到评论的id,这个评论id是数据库自增的,但是通过配置可以自动装配并返回过来。
Hope that we can grow and progress as soon as possible and become an excellent Java Development Engineer.
内容总结
以上是互联网集市为您收集整理的MySQL如何自动获取主键(MyBatis执行Insert操作返回自增主键)全部内容,希望文章能够帮你解决MySQL如何自动获取主键(MyBatis执行Insert操作返回自增主键)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。