mybatis循环foreach使用

 

一. 批量插入数据
    dao接口(Mapper)

public interface IVacationDao  extends ISqlDao{    

        //每次插入一个的方法
    public void CreateVacation(Vacation vct) throws Exception;    
        //批量插入的方法
    public void CreateVacationList(List<Vacation> vctList) throws Exception;

}

 

对应的mapper:

 <?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!-- 此处namespace需要指定dao接口 -->
<mapper namespace="com.xreb.vacation.dao.IVacationDao">
    <insert id="CreateVacationList" >
        insert into t_vacation values 
<!-- 注意 insert into t_vacation values 不要写在循环里,其次 #{vacation.em_id} 的方式,其中vacation 是item的值--> <foreach collection="list" item="vacation" index="index" separator=","> (#{vacation.em_id},#{vacation.dp_id},#{vacation.v_year},#{vacation.v_count},#{vacation.ulogin_id},#{vacation.last_update}) </foreach> </insert> </mapper>

 

二. 拼接in

dao接口:

 

//使用注解方式
public List<RestDemoEntity> list(@Param("ids") List<Integer> ids);

mapper配置:      

    <select id="list" resultMap="restDemoEntity" >
        SELECT ID, NAME FROM tb_mdmt_num WHERE ID in 
<!-- 此处 collection的值和注解的参数名一样-->
<foreach collection="ids" separator="," close=")" open="(" item="id">
        #{id}
        </foreach>
        
    </select>

 

  


 

 


 

posted on 2013-06-24 15:35  babyblue  阅读(561)  评论(0)    收藏  举报