首页 > 代码库 > MyBatis insert操作返回主键
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操作返回主键
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。