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>
重新请求后,接口可正确返回列表数据。
欢迎 【 留言 || 关注 || 打赏 】 。您的每一份心意都是对我的鼓励和支持!非常感谢!欢迎互加,相互交流学习!
作者:范丰平,本文链接:https://www.cnblogs.com/fengpingfan/p/10863520.html
Copyright @范丰平 版权所有,如需转载请标明本文原始链接出处,严禁商业用途! 我的个人博客链接地址:http://www.cnblogs.com/fengpingfan