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);
            }
        }
    
  • 相关阅读:
    BZOJ4944 泳池 解题报告
    简短的开始
    树链剖分的一种妙用与一类树链修改单点查询问题的时间复杂度优化——2018ACM陕西邀请赛J题
    三月月考暨省队选拔
    Luogu P1245 电话号码
    JXOJ(基于UOJ)部署日志
    入学考试总结_20190310
    十二月月考之生物总结
    寒假作业完成进度
    discuz在windows下的环境配置遇到的问题总结
  • 原文地址:https://www.cnblogs.com/expiator/p/14417061.html
Copyright © 2011-2022 走看看