xml映射文件:
<select id="selectImages" resultType="org.jeecg.modules.supervise.device.entity.DataCollector">
SELECT
t1.*
FROM
data_collector t1
WHERE
t1.collector_id in
<foreach item="id" collection="deviceCollectorIds" index="index" open="(" separator=","
close=")">
#{id}
</foreach>
<if test="startTime != null and startTime != ''">
AND t1.collector_time between #{startTime} and #{endTime}
</if>
order by t1.collector_time desc
</select>
mapper文件:
List<DataCollector> selectImages(List<String> deviceCollectorIds,
String startTime,
String endTime);
测试:
SELECT
t1.*
FROM
data_collector t1
WHERE
t1.collector_id IN (
'100001172',
'100001023',
'100000711')
使用navicat 能够顺利查出数据:
还有一种情况就是,传过来的id 集合有可能为空集,这时候可以结合动态sql:
<select id="selectImages" resultType="org.jeecg.modules.supervise.device.entity.DataCollector">
SELECT
t1.*
FROM
data_collector t1
<if test="deviceCollectorIds !=null">
WHERE
t1.collector_id in
<foreach item="id" collection="deviceCollectorIds" index="index" open="(" separator=","
close=")">
#{id}
</foreach>
</if>
<if test="startTime != null and startTime != ''">
AND t1.collector_time between #{startTime} and #{endTime}
</if>
order by t1.collector_time desc
</select>