Java学习-054-Mybatis IN查询,通过 foreach 获取列表数据


通过如下语句查询商品订单信息:

SELECT * FROM goods_order WHERE del = 0 AND id IN (1004,1094,1120,1409)

 

在 Mapper.java 中定义如下接口:

List<GoodsOrder> findGoodsOrderByIds(String ids);

 

在 Mybatis 对应的 Mapper.xml 中进行如下配置:

<select id="findGoodsOrderByIds" resultType="com.fanfengping.GoodsOrder">
    SELECT * FROM goods_order WHERE del = 0 AND id IN (#{ids})
</select>

 

在执行请求时,发现接口总是返回一条数据,无法返回所有的数据信息。

 

 

解决方法:

在 Mapper.java 中定义如下接口:

List<GoodsOrder> findGoodsOrderByIds(List<String> ids);

 

在 Mybatis 对应的 Mapper.xml 中进行如下配置:

<select id="findGoodsOrderByIds" parameterType="java.util.List" resultType="com.fanfengping.GoodsOrder">
    SELECT * FROM goods_order WHERE del = 0 AND id IN
    <foreach collection="list" index="index" item="item" open="("
            separator="," close=")">
        #{item}
    </foreach>
</select>

 

 

重新请求后,接口可正确返回列表数据。

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM