关于 useGeneratedKeys和keyProperty

关于 useGeneratedKeys和keyProperty

http://img1.sycdn.imooc.com//climg/5bfe984f0001795b07480509.jpg

http://img1.sycdn.imooc.com//climg/5bfe9850000103de13290641.jpg

我对于useGeneratedKeys和keyProperty 这两个属性的理解还是有点懵。。

第一张图说 使用useGeneratedKeys 让id自增  然后keyProperty 大概意思是返回新增的id?

然后第二张图说 就写这样就可以了 因为后面用不上id

  1. 根据第一和第二种写法 是不是不设置useGeneratedKeys也可以让id自增的呢?那么useGeneratedKeys有什么用呢?

  2. 既然第二种写法是可以的   keyProperty返回的id到底有什么用呢?直接用第二种方法插入数据不就行了吗?是因为我们后面需要用到id这个值吗?但是这个是插入语句  用第二种方法直接插入之后 id也会自增 然后我们需要用到的时候 调用的是 select标签  不是会读取id值吗?为什么在insert需要返回id值呢?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

感觉同学学的有点模糊,你可以这么理解,在MyBatis中,你如果在sql语句中插入了相关表的主键,就不需要配置useGeneratedKeys属性了,如下图所示,

http://img1.sycdn.imooc.com//climg/5bff64fa0001b2ee09760155.jpg

如果你配置了useGeneratedKeys属性,也就是设置强制使用自动生成主键,在sql语句中就不需要在添加主键字段数据了了,下图sql中就没有插入id值。

http://img1.sycdn.imooc.com//climg/5bff654200019bae06660078.jpg

不是必要获取id的,如果你不需要,也可以不用,祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
SSM主流框架入门与综合项目实战2018版
  • 参与学习           人
  • 提交作业       205    份
  • 解答问题       4317    个

Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师