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

书欣 MyBatis 2022-08-01 16:05:41 602 1
下文笔者讲述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值,最大数据包的值 
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: http://www.Java265.com/JavaFramework/MyBatis/202208/4117.html

最近发表

热门文章

好文推荐

Java265.com

//www.java265.com

站长统计|USA-001

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

Honor accompaniments