zoukankan      html  css  js  c++  java
  • 如何在mybatis 中使用In操作

    如何在mybatis 中使用In操作

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

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

    下面将使用一个简单的过程来演示这个操作
    下面这个是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;
    }
    

    下面我们对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 什么时候结束

  • 相关阅读:
    COGS 14. [网络流24题] 搭配飞行员
    洛谷 P3376 【模板】网络最大流
    洛谷 P2936 [USACO09JAN]全流Total Flow
    codevs 2038 香甜的黄油 USACO
    codevs 1993 草地排水 USACO
    Openjudge 2.5 6264:走出迷宫
    洛谷 P1744 采购特价商品
    HDU
    中国剩余定理
    bzoj2157: 旅游
  • 原文地址:https://www.cnblogs.com/wangshouchang/p/7515193.html
Copyright © 2011-2022 走看看