mybatis批量操作

来源:互联网 发布:网络言论自由的利弊 编辑:程序博客网 时间:2024/05/17 04:43

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:

        @Testpublic 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:

        @Testpublic 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:

@Testpublic 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);  }



0 0
原创粉丝点击