Mybatis中的in操作

如果有以下sql 语句,这条sql语句有in操作。

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

如果要在Mybatis中使用这条sql语句,那么应该如何操作呢?
下面就来简单的演示一下这个操作。
Mybatis映射文件如下。

<select id="queryAllOpenProduct" parameterType="com.tims.open.domain.OpenProductQueryCondition"
    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;
}

可以看到,在Mybatis中对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:表示以什么结束。
  • separator:表示在每次进行迭代之间以什么符号作为分隔符。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 11,236评论 0 4
  • mybatis 1.如何批量插入数据 SQL层面 先复习一下单条/批量插入数据的sql语句怎么写: 1. 单条插入...
    vincent519阅读 4,605评论 0 0
  • 1、什么是Mybatis? Mybatis是一个半ORM框架,封装了JDBC,开发时只要关注SQL语句本身,不需要...
    落地生涯阅读 8,723评论 0 1
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 13,233评论 0 13
  • 使用MyBatis实现条件查询 1.SQL映射文件: MyBatis真正的强大之处就在于SQL映射语句,MyBat...
    Java小生阅读 5,800评论 0 0

友情链接更多精彩内容