SpringBoot+MyBatis批量插入数据的三种方式

这篇具有很好参考价值的文章主要介绍了SpringBoot+MyBatis批量插入数据的三种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近导入表格数据时需要同时插入修改大量数据,研究了一下有三种实现方式

1、用for循环调用sql插入数据

public void insert(List<HzbsErpBom> bomList){
    for(HzbsErpBom bom : bomList) {
		bomService.insertHzbsErpBom(bom);
	}
}

这种方式插入大量数据时,效率非常底下,不推荐

2、利用mybatis的foreach来实现循环插入

public void insert(List<HzbsErpBom> bomList){
    bomService.insertHzbsErpBomList(bomList);
}
<insert id="insertHzbsErpBomList" parameterType="List">
    insert into hzbs_erp_bom (id,create_user,create_time)
		<foreach collection="list" open="values" item="item" separator=",">
			(
			#{item.id},
			#{item.createUser},
            #{item.createTime}
			)
		</foreach>
</insert>

这种方式插入大量数据时,好处是不用频繁访问数据库,一条sql搞定,效率比较高,缺点是当数据量太大时,会出现拼接的sql语句超长而执行失败,所以当数据量太大时,也不推荐

3、利用批处理的方式,设置手动提交,利用for循环生成sql,生成完毕后,一次性提交sql

    public void insert(List<HzbsErpBom> bomList){
		//设置批量手动提交
	    SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
	    HzbsErpBomMapper hzbsErpBomMapper = sqlSession.getMapper(HzbsErpBomMapper.class);
	    bomList.stream().forEach(bom -> hzbsErpBomMapper.insertHzbsErpBom(bom));
	    //提交数据
	    sqlSession.commit();
	    sqlSession.close();
	}

这种方式可以说是集第一种和第二种方式的优点于一身,既可以提高运行效率,又可以保证大数据量时执行成功,大数据量时推荐使用这种方式。

好了,我知道的就这三种方式了,如果大家知道有更好的方式,欢迎评论区讨论。如果本文章对大家有帮助,希望大家点赞收藏支持一下!文章来源地址https://www.toymoban.com/news/detail-561750.html

到了这里,关于SpringBoot+MyBatis批量插入数据的三种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mybatis批量插入方式有哪些

    MyBatis批量插入有多种写法,最后博主总结一些常见的批量插入写法供大家参考 使用XML配置文件进行批量插入:在XML映射文件中使用 insert 标签,并通过 foreach 标签迭代批量数据,然后在SQL语句中使用 VALUES 。 使用Java注解进行批量插入:在实体类上使用 @Insert 注解,并

    2024年02月11日
    浏览(40)
  • mybatis-plus进行update的三种方式

    2024年02月12日
    浏览(45)
  • Java8 实现批量插入和更新,SpringBoot实现批量插入和更新,Mybatis实现批量插入和更新

    基于mybatis实现的批量插入和更新 由于直接执行批量所有数据可能会出现长度超出报错问题,使用如下方式即可解决 原理还是分配执行,这里的100就是设定每次执行最大数 这里使用插入作为例子,也可以使用批量更新 更新的写法

    2024年02月12日
    浏览(46)
  • MyBatis-plus的批量插入方式对比分析

      【摘要】Mybatis批量插入一直是开发者重点关注的问题,本文列举了Mybatis的五种插入方式进行对比分析,验证了五种批量插入的方式的优先级。   略。 1、编写UserService服务类,测试一万条数据的耗时情况: 2、编写UserMapper接口 3、编写UserMapper.xml文件 4、进行单元测试

    2024年02月07日
    浏览(47)
  • 估计很多人不知道:在PowerPoint中插入图片的三种方式用法和解析

    你知道吗?在我们用PowerPoint制作PPT的时候,往幻灯片中插入本地图片时,除了默认的“插入”按钮,点击插入按钮右边的箭头,还有链接到文件、插入和链接两个选项。 那么,在PowerPoint中插入图片是的插入、链接到文件、插入和链接这三个选项分别是什么含义?有什么作用

    2024年02月04日
    浏览(34)
  • Springboot应用中Mybatis输出SQL日志的三种方法

    目录 一、方法一:指定mybatis日志级别 二、方法二:配置mybatis-config.xml 三、方法三:指定整个mapper包下的日志级别

    2024年01月20日
    浏览(43)
  • MySQL插入数据的三种方法

    insert into:正常的插入数据,插入数据的时候会检查主键或者唯一索引,如果出现重复就会报错。 replace into:替换数据。插入时,如果表中已经存在相同的primary key或者unique索引,则用新数据替换;如果没有相同的primary key或者unique索引,则直接插入。 insert ignore into:插入时

    2023年04月08日
    浏览(30)
  • springboot依赖注入的三种方式

    springboot依赖注入的三种方式 在 Spring Boot 中,使用 XML 配置依赖注入(DI)时,需要使用 bean 元素来定义 bean,并使用 property 元素来为 bean 的属性注入值或依赖对象。 以下是一个简单的示例: 在 src/main/resources 目录下创建 applicationContext.xml 文件。 在该文件中定义一个 testBean

    2023年04月23日
    浏览(41)
  • 【SpringBoot】获取HttpServletRequest的三种方式

    线程安全 缺点: 每个方法都需要写一遍 线程安全 在 Spring 中, DemoRequestController 的 scope 是 singleton (单例),也就是说在整个 web 系统中,只有一个 DemoRequestController ;但是其中注入的 request 却是线程安全的,原因在于:使用这种方式,当 Bean (本例的 DemoRequestController )初始化

    2024年02月12日
    浏览(41)
  • SpringBoot实现分页的三种方式

    一 自己封装Page对象实现 博客链接 二 使用sql实现分页 2.1 场景分析 前段传递给给后台什么参数? 当前页码 currentPage 每页显示条数 pageSize 后台给前端返回什么数据? 当前页数据 List 总记录数 totalCount 2.2 前段代码 2.3 后端代码 PageBean mapper service impl controller 三 使用PageHelper插件

    2024年02月10日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包