请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

selectKey为自增id时,为何要使用主库?

老师能详细解释一下吗,select 不是读操作吗,不太理解。

正在回答 回答被采纳积分+3

插入代码

1回答

翔仔 2018-05-25 21:56:06

同学好,当使用

SELECT LAST_INSERT_ID()

也就意味着是我们在做插入操作的时候,mybatis会自动调用上面方法去获取最新的id返回,这就是为什么我们要遇到这个方法被调用的时候,使用主库的原因。

1 回复 有任何疑惑可以回复我~
  • 老师您错了 MySQL数据库支持主键自增。会在返回结果中带有新增主键的值。并且我打开数据库的查询日志发现 插入数据时只有一条insert into语句并未见到select语句 而对于Oracle数据库执行的也不是这句话 而是查询一个虚拟表得到下一个主键
    回复 有任何疑惑可以回复我~ 2020-09-17 00:13:25
  • 感谢同学的指正,这里确实说错了,经查看,当generatedkey设置为True的时候,会调用ResultSet rs=ps.getGeneratedKeys()
    来获取id,而不是SELECT LAST_INSERT_ID(),同学说的是对的
    原理可以看看同学发的文章
    http://coding.imooc.com/learn/questiondetail/205580.html
    回复 有任何疑惑可以回复我~ 2020-09-17 01:04:40
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号