错误写法1
<select id="queryCode" parameterType="java.lang.String" resultType="java.lang.String">
SELECT D.CODE
FROM T_CODE_PUB_CASCADE_DICTDATA D
where D.IS_DEL=0 AND D.TYPE_ID='1031'
<if test="typeList!=null and typeList.size > 0">
and
<foreach collection="typeList" item="type" index="index" open="(" close=")" separator="OR">
D.CODE like concat('%', #{type}, '%')
</foreach>
</if>
</select>
错误写法2
<select id="queryCode" parameterType="java.lang.String" resultType="java.lang.String">
SELECT D.CODE
FROM T_CODE_PUB_CASCADE_DICTDATA D
where D.IS_DEL=0 AND D.TYPE_ID='1031'
<if test="typeList!=null and typeList.size > 0">
and
<foreach collection="typeList" item="type" index="index" open="(" close=")" separator="OR">
<bind name="code" value="'%' + type + '%'"/>
D.CODE like #{code}
</foreach>
</if>
</select>
正确写法
<select id="queryCode" parameterType="java.lang.String" resultType="java.lang.String">
SELECT D.CODE
FROM T_CODE_PUB_CASCADE_DICTDATA D
where D.IS_DEL=0 AND D.TYPE_ID='1031'
<if test="typeList!=null and typeList.size > 0">
and
<foreach collection="typeList" item="type" index="index" open="(" close=")" separator="OR">
D.CODE like concat(concat('%', #{type}), '%')
</foreach>
</if>
</select>
mybatis_plus-foreach中实现like查询报错SQLSyntaxErrorException: ORA-00909: 参数个数无效
最新推荐文章于 2024-03-22 09:57:15 发布
本文探讨了在MyBatis中进行复杂条件查询时的常见错误及其修正方法,特别是使用foreach进行IN条件拼接时的注意事项。通过对比错误写法与正确写法,帮助开发者避免SQL注入风险并提高查询效率。
8150

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



