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>

 

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

 

 

 

猜你喜欢

转载自www.cnblogs.com/fengpingfan/p/10863520.html
今日推荐