如何在mybatis 中使用In操作

假如我们想使用这样一个sql 语句,但是这样的sql语句有IN这样的操作。在我们的mybatis中有相对应的操作

SELECT
*
FROM
	product_db.productinfo pi
WHERE pi.isvalid = 1
	AND pi.id IN (22, 60)	

下面将使用一个简单的过程来演示这个操作
下面这个是mybatis的映射文件

<select 
	resultType="com.tims.open.domain.OpenProduct">
	SELECT
		 *
	FROM
		product_db.product p
	WHERE
		p.isvalid = 1
	<if test="list != null">
		<foreach collection="list" index="index" item="item" separator="," open="AND p.id IN (" close=")">
               #{item}       
        </foreach>
    </if>
</select>

下面是我们的查询condition类
Public OpenProductQueryCondition{
	private Integer productId;  
	
	private List<Integer> list;
}

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

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

list 就是传入的condition中的list,mybatis将会遍历中集合中的元素
index 可以添加也可以不添加
item 你将要遍历出元素的别名
**open ** 开始的位置
close 什么时候结束

相关文章:

  • 2022-01-11
  • 2022-12-23
  • 2022-12-23
  • 2022-03-05
猜你喜欢
  • 2021-10-03
  • 2021-08-16
  • 2022-01-24
  • 2021-05-27
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案