zoukankan      html  css  js  c++  java
  • Mybatis批量插入,批量更新

    批量插入

    • xml如下:
    <insert id ="batchInsert" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
            insert into t_person(name, age, height, weight, update_date) values
            <foreach collection="list" item="item" index="index" separator="," >
                (
                #{item.name},
                #{item.age},
                #{item.height},
                #{item.weight},
                now()
                )
            </foreach>
        </insert >
    

    useGeneratedKeys="true"表示自动产生主键id,而keyProperty="id"表示主键对应的对象属性为id。

    而且主键对应的这个Person对象的属性"id" (也可以是别的命名,比如personId之类的), 最好设置成String类型的,不然可能会出错。

    • Mapper如下:
    void batchInsert(List<Person> personList);
    

    这里不使用 @Param注解,那么在xml文件中的collection就默认为 "list"。

    • Service如下:
    public void batchInsert(List<Person> personList) {
            if (CollectionUtils.isNotEmpty(personList)) {
              personMapper.batchInsert(personList);
            }
        }
    

    在批量插入前,需要先做判空处理。

    批量更新

    • xml如下:
    <update id="batchUpdate" parameterType="java.util.List" >
    	<foreach collection="list" item="item" index="index" open="" close="" separator=";">
    		update t_person
    		<set >
    			<if test="item.name != null" >
    				fbq_code = #{item.name,jdbcType=VARCHAR},
    			</if>
    			<if test="item.age != null" >
    				dept_code = #{item.age,jdbcType=VARCHAR},
    			</if>
    			<if test="item.height != null" >
    				emp_id = #{item.height,jdbcType=VARCHAR},
    			</if>
    			<if test="item.weight != null" >
    				update_user = #{item.weight,jdbcType=VARCHAR },
    			</if>
    			update_date = now()
    		</set>
    		where id = #{item.id,jdbcType=INTEGER}
    	</foreach>
    </update>
    
    • Mapper如下:
    void batchUpdate(List<Person> personList);
    
    • Service如下:
    public void batchUpdate(List<Person> personList) {
            if (CollectionUtils.isNotEmpty(personList)) {
              personMapper.batchInsert(personList);
            }
        }
    
  • 相关阅读:
    .NET Core CSharp初级篇 1-1 基础类型介绍
    ASP.NET Core 基于JWT的认证(二)
    ASP.NET Core 基于JWT的认证(一)
    HOJ 1096 Divided Product (DFS)
    HDU1698 Just a Hook (区间更新)
    独立写作(A or B)
    HDU1394 Minimum Inversion Number(线段树OR归并排序)
    HDU5441 Travel (离线操作+并查集)
    学生管理系统(list)
    HDU5437 Alisha’s Party (优先队列 + 模拟)
  • 原文地址:https://www.cnblogs.com/expiator/p/14417061.html
Copyright © 2011-2022 走看看