错误写法
<delete id="deleteEntityAll" parameterType="java.lang.reflect.Array">
<foreach collection="array" item="item" index="index" separator=";">
delete from GKCP_TC_JL where JH = #{item.jh} and to_char(TCRQ,'YYYY-MM-DD') = #{item.tcrq}
</foreach>
</delete>
这样写生成的SQL语句用;隔开,在sql工具中可以识别,但是mybatis不识别
在foreach中增加节点操作符可以解决
正确写法:
<delete id="deleteEntityAll" parameterType="java.lang.reflect.Array">
<foreach collection="array" item="item" index="index" open="begin" close=";end;" separator=";">
delete from GKCP_TC_JL where JH = #{item.jh} and to_char(TCRQ,'YYYY-MM-DD') = #{item.tcrq}
</foreach>
</delete>
本文介绍了一种在MyBatis中使用foreach标签进行批量删除的正确配置方法,解决了使用分号作为语句分隔符导致的问题。通过添加open、close属性,确保了SQL语句的正确生成。

789

被折叠的 条评论
为什么被折叠?



