如何在mybatis 中使用In操作

  1. SELECT
  2. *
  3. FROM
  4. product_db.productinfo pi
  5. WHERE pi.isvalid = 1
  6. AND pi.id IN (22, 60)

下面将使用一个简单的过程来演示这个操作

下面这个是mybatis的映射文件


  1. <select id="queryAllOpenProduct" parameterType="com.tims.open.domain.OpenProductQueryCondition"
  2. resultType="com.tims.open.domain.OpenProduct">
  3. SELECT
  4. *
  5. FROM
  6. product_db.product p
  7. WHERE
  8. p.isvalid = 1
  9. <if test="list != null">
  10. <foreach collection="list" index="index" item="item" separator="," open="AND p.id IN (" close=")">
  11. #{item}
  12. </foreach>
  13. </if>
  14. </select>
  15. 下面是我们的查询condition类
  16. Public OpenProductQueryCondition{
  17. private Integer productId;
  18. private List<Integer> list;
  19. }

下面我们对IN操作进行分析


  1. <foreach collection="list" index="index" item="item" separator="," open="AND p.id IN (" close=")">
  2. #{item}
  3. </foreach>

list 就是传入的condition中的list,mybatis将会遍历中集合中的元素

index 可以添加也可以不添加

item 你将要遍历出元素的别名

open 开始的位置

close 什么时候结束

原文地址:https://www.cnblogs.com/zhuyeshen/p/11981707.html