警惕Mybatis的Foreach的的副作用
来源:互联网 发布:apache maven怎么安装 编辑:程序博客网 时间:2024/05/05 03:38
对于如下SQL:
假设有如下的mapper:
当我们传入的IDArr时,最后产生的SQL为:
Select * from student where ID = ‘998’ AND ID IN ( ‘123’, ’234’,…..,’998’)
解决办法:
解决办法有
1) 将红色的ID 换成别的名称,比如“item”。
2) 这两个if 是对同一个字段判断,改为choose… when 结构
假设有如下的mapper:
<select id=”testForeach” parameterType=”map” resultType=”Student”> Select * from student <where> <choose> <when test=”ID != null and ID != ‘’ ”> ID = #{ID} </when> <when test=” IDArr != null and IDArr.size()>0”> And ID IN <foreach collection="IDArr" open="(" separator="," close=")" item="ID"> ${ID} </foreach> </when></choose></where>
当我们传入的IDArr时,最后产生的SQL为:
Select * from student where ID = ‘998’ AND ID IN ( ‘123’, ’234’,…..,’998’)
解决办法:
解决办法有
1) 将红色的ID 换成别的名称,比如“item”。
2) 这两个if 是对同一个字段判断,改为choose… when 结构
<select id=”testForeach” parameterType=”map” resultType=”Student”> Select * from student <where> <choose> <when test=”ID != null and ID != ‘’ ”> ID = #{ID} </when> <when test=” IDArr != null and IDArr.size()>0”> And ID IN <foreach collection="IDArr" open="(" separator="," close=")" item="ID"> ${ID} </foreach> </when></choose></where>
0 0
- 警惕Mybatis的Foreach的的副作用
- Mybatis的foreach使用
- MyBatis的foreach语句
- mybatis的foreach标签。
- mybatis的foreach标签
- MyBatis的foreach语句
- mybatis的foreach
- Mybatis的foreach详解
- Mybatis 的 foreach 的使用
- MyBatis的foreach语句详解
- mybatis的foreach简单使用
- MyBatis的foreach语句详解
- MyBatis的foreach语句详解
- MyBatis的foreach语句详解
- MyBatis的foreach语句详解
- MyBatis的foreach语句详解
- MyBatis的foreach语句详解
- MyBatis的foreach语句详解
- 进程保活
- 超稳定Expandablelistview,带优化,带联网
- VisualVM通过jstatd方式远程监控远程主机
- webstorm 下载并设置jade、less
- Graphviz#基本用法
- 警惕Mybatis的Foreach的的副作用
- js实现的LRU缓存function
- 360度民主评估反馈系统可以使用啦
- quartz定时任务框架
- 开启mysql 远程链接
- 单点登录,简单实现
- 数据类型之整型
- python安装paramiko
- Opencv实现盲水印技术(三)——傅里叶变换算法及盲水印实现