mybatis如何对mysql数据库进行批量插入呢?

转自:

mybatis如何对mysql数据库进行批量插入呢?

下文笔者讲述MySQL数据库批量插入数据的方法分享,如下所示

MySQL批量插入的应用场景

在一些数据导入的操作时
 通常是多条数据一次性插入至数据库中,那么如何实现这类需求呢?
 下文笔者将一一道来,如下所示

例:
Excel导入数据至数据库

Controller层接收导入的Excel数据

    @PostMapping("/importUser")
    public AjaxResult importUser(MultipartFile file) throws Exception{
        GeneralListener<User> generalListener = new GeneralListener<>();
        EasyExcel.read(file.getInputStream(),User.class,generalListener).sheet().doRead();
        List<User> courseInfoList = generalListener.getList();
        userService.insertCourseByBatch(userList);
        return AjaxResult.success();
    }
 

mapper.xml的SQL语句 及service、domain层

mapper.java

@Mapper
public interface UserInfoMapper {
    void insertUserByBatch(@Param("list") List<CourseInfo> list);
}
 
mapper.xml代码如下:
  <insert id="insertUserByBatch" parameterType="java.util.List">
    insert into User_info (id,userno,userName)
    values
    <foreach collection="list" item="item" index="index" separator=",">
      (#{item.id,jdbcType=BIGINT},#{item.userno,jdbcType=VARCHAR},#{item.username,jdbcType=VARCHAR})
    </foreach>
  </insert>
 
注意事项:
     数据类型后面需加上jdbcType
	 否则会产生相应的错误信息
 

批量插入优点

   批量插入效率比单次插入要高很多
    能节省大约2/3的时间
     批量插入的优点:
	    1.减少Mysql日志
		2.减少mysql的解析次数
		3.减少网络IO传输
		4.减少事务的开启次数
		5.注意max_allowed_packet值,最大数据包的值 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值