mybatis标签提供了useGeneratedKeys="true" keyProperty="id"的方式来获取insert完成后的主键
但是对于update语句,这个方法不好用
可以用如下方法:
<update id="editCategory" parameterType="com.yuntai.plat.export.model.dto.medicalorder.MedicalOrderCategoryDto">
<selectKey keyProperty='itemId' resultType='java.lang.Long' order='BEFORE'>
select item_id FROM student
WHERE
stuNo=#{stuNo}
</selectKey>
update student
set name=#{Name}
where stuNo=#{stuNo}
</update>
-- <selectKey>中的条件与sql执行的where中条件相同
其中order可以设置为BEFORE和AFTER两种。
BEFORE:先查询主键,再执行update或者insert语句。
AFTER:先执行update或者insert语句,再查询主键。
对于update语句执行的效果相同,对于insert语句,使用BEFORE,执行完成查询到的主键id是0