mybatis批量操作

1.批量插入:

user.xml

<insert id="bacthinsert" useGeneratedKeys="true" parameterType="java.util.List">
		insert into t_user(username,password,email,nickname,isactive)
		value
		<foreach collection="list" item="item" index="index"
			separator=",">
			(#{item.username},#{item.password},#{item.email},#{item.nickname},#{item.isactive})
		</foreach>
	</insert>


test:

        @Test
	public void testBatchInsert(){
		User u1 = new User();
		u1.setUsername("六六六");
		User u2 = new User();
		u2.setUsername("建军节");
		List<User> users = new ArrayList<User>();
		users.add(u1);
		users.add(u2);
		ud.bacthinsert(users);	
	}
2.批量删除:

<delete id="bacthdelete" parameterType="java.util.List">
		delete from t_user where id in
		<foreach collection="list" index="index" item="item" open="("
			separator="," close=")">
			(#{item})
                </foreach>
</delete>
test:

        @Test
	public void testBatchDelete(){
		int id1 = 60;
		int id2 = 62;
		int id3 = 63;
		List<Integer> ids = new ArrayList<Integer>();
		ids.add(id1);ids.add(id2);ids.add(id3);
		ud.bacthdelete(ids);
	}
3.批量更新:

前提在application.xml的数据源中添加:allowMultiQueries=true;

<property name="url">
	<value>jdbc:mysql://localhost:3306/myproject?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
	</value>
/property>
<update id="batchupdate"  parameterType="java.util.List">  
    <foreach collection="list" item="item" index="index" separator=";">
       update t_user
       <set >
          <if test="item.username != null" >
            username = #{item.username,jdbcType=VARCHAR},
          </if>
        </set>
        where id = #{item.id,jdbcType=INTEGER}
    </foreach>       
</update> 
test:

@Test
	public void testBatchUpdates(){
		 		List<User> users=new ArrayList<User>();  
	        	User u=new User();  
	        	u.setUsername("111");  
	        	u.setId(1);  
	        	
	        	User u2 = new User();
	        	u2.setId(2);
	        	u2.setUsername("222");
	        	users.add(u);    
	        	ud.batchupdate(users);  
	}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值