MyBatis insert操作返回主键
Posted 燕麦酸奶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis insert操作返回主键相关的知识,希望对你有一定的参考价值。
在写毕业设计的时候总是发现有一些小的细节问题,比如说......
MyBatis insert操作后怎么返回主键?
原来不懂的时候是调用一个select语句,将刚刚insert的对象再传入进去查出主键,但是这么写主键就没有意义了,什么都可以放到数据库里面去查。
在说,这样也会引起很多其他的问题。比如说你要查一下post表,在你不知道post_id的情况下你利用了post_name去查询post对象。
万一post_name有重复的呢?怎么办?所以有了这篇博客。
网上有很多大神写了很多mybatis的insert返回主键的操作,但是这对我一个初学者来说,有点难了,所以我就对mysql主键自动递增这一种情况进行总结
看代码:注意useGeneratedKeys="true" keyProperty="replyId" 这句话。
1 <!-- 发布回复,insert语句(传入一个reply对象),myBatis的insert自动返回主键--> 2 <insert id="replyInsert" parameterType="com.basketball.entity.Reply" useGeneratedKeys="true" keyProperty="replyId" > 3 INSERT INTO reply ( 4 reply_userid, 5 reply_username, 6 reply_postid, 7 reply_postname, 8 reply_postusername, 9 reply_menuname, 10 reply_text, 11 reply_time, 12 reply_like, 13 reply_review 14 ) 15 VALUES 16 (#{replyUserid},#{replyUsername},#{replyPostid},#{replyPostname},#{replyPostusername},#{replyMenuname},#{replyText},#{replyTime},#{replyLike},#{replyReview}) 17 </insert>
keyProperty="replyId" 是你要返回的主键,添加了上面的黄色代码后,在你存入时调用的对象里mybatis就会自动将主键注入进去
1 replyMapper.replyInsert(reply); 2 int replyId = reply.getReplyId(); 3 int trueOrFalse = profanityService.checkProfanityReply(replyId);
这两个黄色部分的reply是一个reply(mybatis自动返回了该条reply的主键)。
以上是关于MyBatis insert操作返回主键的主要内容,如果未能解决你的问题,请参考以下文章