mybaits十七:使用foreach标签

34 篇文章 0 订阅

foreach标签查询

    主要用于构建in条件,他可以在sql中对集合进行迭代

<select id="getEmpsByConditionForeach" resultType="com.atChina.bean.Employee">
        select * from emptest 
        <!-- collection:指定遍历的集合
        	       item:将当前遍历出的元素赋值指定的变量
        	       separator:每个元素之间的分隔符
        	       open:遍历出所有结果拼接一个开始的字符
        	       close: 遍历出所有结果拼接一个结束的字符
        	       
        	       index:遍历list的时候,index就是索引,item就是当前值
        	                          遍历map的时候index表示的就是map的key,item就是map的值   
        	                          
        	 #{变量名}就是取出变量的值也就是当前遍历出的元素.	
         -->
        <foreach collection="list" item="item_no" separator=","
        		open="where empno in(" close=")">
        	#{item_no}
        </foreach>
    </select>

foreach标签插入:(oracle数据库)

  方式一:使用union all, 中间表dual

<insert id="addEmps">
    insert into emptest(empno, ename, job, mgr,hiredate,sal)
    	<foreach collection="list" item="emp" separator="union all">
    	  (select #{emp.empno}, #{emp.ename}, #{emp.job}, #{emp.mgr}, #{emp.hiredate}, #{emp.sal} from dual)
    	</foreach>
    </insert>

 方式二: 使用insert all into, 中间表dual

<insert id="addEmps">
    	INSERT ALL
    	<foreach collection="list" index="index" item="emp">
    	   into emptest(empno, ename, job, mgr,hiredate,sal) values
    	  ( #{emp.empno}, #{emp.ename}, #{emp.job}, #{emp.mgr}, #{emp.hiredate}, #{emp.sal} )
    	</foreach>
    	select 1 from dual
    </insert> 

方式三: 使用begin..end; 

<insert id="addEmps">
    	<foreach collection="list" item="emp" open="begin" close="end;">
    	  insert into emptest(empno, ename, job, mgr,hiredate,sal) values
    	  ( #{emp.empno}, #{emp.ename}, #{emp.job}, #{emp.mgr}, #{emp.hiredate}, #{emp.sal} );
    	</foreach>
    </insert>  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值