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>

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐