当前位置: 首页 > 知识库问答 >
问题:

如何使用hibernate和springDAO模式在数据库中插入批量数据

吴腾
2023-03-14

我正在开发一个应用程序,它使用SpringDAO hibernate结构来处理数据库。

我想使用hibernate在oracle数据库中插入大量行(大约20000行),但是使用。save()非常慢。

我了解到使用无状态会话可以做到这一点,但因为所有会话都是通过BaseDaoImp类管理的,所以我不知道如何在这种设计模式中创建无状态会话。

如果有人知道如何实现这一点,请提供帮助。

共有2个答案

濮波
2023-03-14

试试这个代码片段,它类似于我们在JDBC批处理中使用的方法..

public Long save(HttpServletRequest request) {

**//Further business logic here....**
for ( int i=0; i<count; i++ ) {
                     getEntityManager().persist((ABC) model);

            if ( i > 0 && i % 2500== 0 ) {
                               getEntityManager().flush();
                               getEntityManager().clear();
                          }
                  }
                     tx.commit();
                   ((EntityManager) session).close();
    }
华英睿
2023-03-14

添加entityManager。flush()entityManager。在每次对save()方法进行第n次调用后,清除()。如果使用hibernate,则添加hibernate.jdbc。batch_size并将其设置为等于n。100可能就足够了,但这是您的选择。

请参阅:使用JPA Hibernate进行大规模插入或http://spring anic . com/software-development/JPA-batch-inserts/

答案很古老,但似乎很管用。

 类似资料:
  • 问题内容: 我有一些每月的天气数据,我想插入到Oracle数据库表中,但是我想成批插入相应的记录,以提高效率。谁能建议我如何用Python做到这一点? 例如,假设我的表有四个字段:工作站ID,日期和两个值字段。记录由工作站ID和日期字段(复合键)唯一标识。我将为每个站点插入的值将保存在一个列表中,其中包含X整整年的数据值,因此,例如,如果有两年的值,则值列表将包含24个值。 如果我想一次插入一条记

  • 本文向大家介绍使用JDBC在MySQL数据库中如何快速批量插入数据,包括了使用JDBC在MySQL数据库中如何快速批量插入数据的使用技巧和注意事项,需要的朋友参考一下 使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(10W+),如何提高效率呢? 在JDBC编程接口中Statement 有两个方法特别值得注意: Adds a set of parameters to t

  • 我创建了一个向MySql数据库插入数百万个值的程序。我读到过有关批插入的文章,它将优化我的程序并使其更快,但当我尝试这样做时,它以同样的方式工作。我没有将每个值插入数据库,而是每次将500个值保存在一个列表中,然后将它们插入一个大循环中,如下所示: 然后我删除列表中的所有值,并再次开始收集500个值。它不应该工作得更好吗? 我的插入代码是: 我有一些问题: 1。为什么当我批量插入时它不能更快地工作

  • 问题内容: 使用hibernate时,当我尝试使用以下方式启用批量插入时 我得到以下输出: 然后这个: 基本上没有。 我是否缺少设置? 问题答案: 原来在这种情况下缺少的是: 现在我明白了 频繁得多(任何大于1的值基本上都意味着它成功完成了批量插入)。 hibernate.jdbc.batch_versioned_data也可能有用。 jdbc:mysql:// localhost:3306 /

  • 问题内容: 我正在循环列表并将其插入数据库中,但它得到的更新记录一个接一个。最后我只在列表中的数据库最后一条记录中看到。 输入名称:Linux,Windows,Mac hibernate.cfg.xml: 这里有3次获得循环并插入数据库。但是以某种方式覆盖了这些值。因为我看到sql插入和更新在控制台中运行。 请帮助我将多个行插入数据库。 问题答案: Hibernate文档中有一章非常好的关于批处理

  • 我使用Spring Data、Spring Boot和Hibernate作为JPA提供程序,我想提高批量插入的性能。 我引用这个链接来使用批处理: http://docs.jboss.org/hibernate/orm/4.1/manual/en-US/html/ch15.html 这是我的代码和应用程序。插入分批实验的属性。 我的服务: 与批处理相关的部分application.properti