请稍等 ...
×

采纳答案成功!

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

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下载
官方微信