Mybatis中多个selectKey的使用

发布于 2021-11-25 02:24:48 字数 1094 浏览 768 评论 3

<insert id="addDBtask" parameterType="task" keyProperty="id"  useGeneratedKeys="true">
       <selectKey keyProperty="id"  order="AFTER" resultType="int">
            SELECT LAST_INSERT_ID() AS ID

       </selectKey>

     <selectKey keyColumn="taskno" order="BEFORE" resultType="String">
       select max(taskno+1) from task
       </selectKey>

      insert into task(taskid,taskno,taskmode,topic,contents,endtime,price,mobile,memberid,addtime,status)
             values(#{taskid},#{taskno},#{taskmode},#{title},#{contents},#{endtime},#{price},#{mobile},#{memberid},#{addtime},#{status})

    </insert>

为什么会报错呢?望大神指教(Id为主键,task是任务编号,但数据库没设递增,只能自己处理。)


 org.xml.sax.SAXParseException; lineNumber: 10; columnNumber: 73; 必须为元素类型 "selectKey" 声明属性 "keyColumn"。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

奢望 2021-11-29 15:16:51

我用的是MyBatis 3.2.2的版本,就是说insert语句中不能有多个selectkey标签,必须额外处理?

虐人心 2021-11-28 20:07:47

回复
是的

冬天旳寂寞 2021-11-25 08:38:24

楼主可以给出所使用mybatis的版本,

在版本3.2.7中 

同一个insert只能有一个SelectKeyGenerator,

selectKey 标签中要有keyProperty属性 ,

insert中含有 selectKey 后 ,useGeneratedKeys="true",没什么用了

我的回答可能有问题,

楼主可以自己去阅读mybatis源码,找到答案

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文