1、mybatis中,selectKey不能多个使用,否则会报错。
Mapped Statements collection already contains XXXX insert!selectKey
2、selectKey是为了解决自增的ID,然后直接返回插入的结果的。 (我的个人理解)
在befor之前,可以封装一些数据进sql
那么问题来了:
有这么业务场景:
1、ID不自增,使用UUID
2、还要返回insert的结果
于是,开始是这样写的:
<insert id="insert">
<selectKey resultType="string" keyProperty="announceId" order="BEFORE">
<![CDATA[ SELECT UPPER(REPLACE(UUID(),'-','')) AS announceId]]>
</selectKey>
<selectKey keyProperty="announceId" order="AFTER" resultType="String">
select last_insert_id()
</selectKey>
<![CDATA[
INSERT INTO tbl_notify_announce (
announce_id ,
notify_id ,