mybatis insert 返回主键 的before 和after的区别

 我来答
tb之小莲
2017-11-03 · 超过21用户采纳过TA的回答
知道答主
回答量:92
采纳率:50%
帮助的人:14.9万
展开全部
如果设置为 BEFORE,那么它会首先选择主键,设置 keyProperty 然后执行插入语句。如果设置为 AFTER,那么先执行插入语句,然后是 selectKey 元素-这和如 Oracle 数据库相似,可以在插入语句中嵌入序列调用。
林子爱爱爱
2017-01-04 · TA获得超过1828个赞
知道小有建树答主
回答量:2163
采纳率:56%
帮助的人:691万
展开全部
期望结果:插入用户并获得插入后的主键ID
下面是配置信息:想要insert 后 返回ID

1、mybatis userMapper.xml

2、打印影响行,和返回主键ID

3、

结果却很出乎意料, ID是null, 影响行:是负值

换了各种方式测试, 比如
(1)order="BEFORE" selectKey= select last_insert_id(), 结果 id=0, r=-2147482646
(2)order="BEFORE" selectKey= select 23 ,结果id=23 , r=-2147482646
(3) order = "AFTER" selectkey = select 23 , 结果id=null r=同上
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式