Mybatis批量添加、批量修改


Mybatis批量添加、批量修改

  • Mybatias中批量添加功能实现
  • Mybatias中批量修改功能实现
  • 总结:仰天大笑出门去,我辈岂是蓬蒿人


Mybatias中批量添加功能实现


提示:以下是本篇文章正文内容,下面案例可供参考

  1. Mapper层
    /**
    * @Description: 新增人员信息
    * @Param:
    * @return:
    * @Author: 杨永卓
    * @Date: 2022/7/7 20:21
    */
    boolean insertUser(@Param("users") List<User> users);
  1. Mapper.xml中
    <insert id="insertUser" parameterType="List">
        insert into t_user
        (
        id,
		user_name,
		password,
		age
		)
        values
        <foreach collection="users" item="user" separator=",">
            (
            #{user.id},
            #{user.userName},
            #{user.password},
            #{user.age}
            )
        </foreach>
    </insert>

Mybatias中批量修改功能实现

批量修改分为两种,一种需要在application.yml的jdbc配置后面拼接allowMultiQueries=true,第二种不需要。
下面是示例

Mybatis批量添加、批量修改_第1张图片

批量处理的时候需要在jdbc连接后面加上:allowMultiQueries=true,因为默认是不支持批处理的。
第一种

  1. Mapper层
    /**
     * 修改人员信息
     * 
     * @param updateList
     *            更新集合
     * @return {@code Integer}
     */
    boolean updateUsers(@Param("list") List<User> updateList);
  1. Mapper.xml中
<update id="updateUsers" parameterType="java.util.List"> 
      <foreach collection="list" item="item" index="index" open="" close="" separator=";"> 
       update t_user
          <set> 
	 			<if test="item.userName!= null and item.userName!= ''">user_name=#{item.userName},
	 			<if test="item.password!= null and item.password!= ''">password=#{item.password},
	 			<if test="item.age!= null and item.age!= ''">age=#{item.age}
	 			create_date= sysdate()			
          </set> 
          where id= #{item.id} 
      </foreach> 
</update>

第二种

  1. Mapper层
    /**
     * 修改人员信息为删除状态
     * 里面的is_del为要修改的表字段
     * 
     * @param updateList
     *            更新集合
     * @return {@code Integer}
     */
    boolean updateUsers(List<User> updateList);
  1. Mapper.xml中
<update id="updateUsers" parameterType="java.util.List"> 
        update t_user set
        <foreach collection="list" item="item" open="is_del= case id" close="end">
            when #{item.id} then 1
        </foreach>
        where id in
        <foreach collection="list" item="item" open="(" close=")" separator=",">
            #{item.id}
        </foreach>
</update>

总结:仰天大笑出门去,我辈岂是蓬蒿人

你可能感兴趣的:(#,Mybatis,mybatis,数据库,java)