hibernate批量插入collection,同一类实体,不通实例

http://stackoverflow.com/questions/20458401/how-to-insert-multiple-rows-into-database-using-hibernate


accepted


There‘s a very nice chapter about batch processing in the Hibernate docs.

Set the property

hibernate.jdbc.batch_size 20

Then use this code

Session session = sessionFactory.openSession();Transaction tx = session.beginTransaction();for ( int i=0; i<100000; i++ ) {
    Customer customer = new Customer(.....);
    session.save(customer);
    if ( i % 20 == 0 ) { //20, same as the JDBC batch size
        //flush a batch of inserts and release memory:
        session.flush();
        session.clear();
    }}
时间: 2024-08-06 16:00:54

hibernate批量插入collection,同一类实体,不通实例的相关文章

hibernate 批量插入

Session session = sessionFactoryUpLowLimit.openSession(); session.beginTransaction(); for(int i=0 ;i< xx;i++) { session.save(upperLowerLimitDataBean); if(i%2==0){ try{ session.flush(); session.clear(); session.getTransaction().commit();  //一定要加   如果不

JPA中以HibernatePersistence为provider的批量插入问题

为什么要批量插入 要插入10000条数据,如果不批量插入的话,那么我们执行的sql语句将是10000条insert insert into member (group_id, user_id, role, extend) values (101, 100, 3, NULL)insert into member (group_id, user_id, role, extend) values (101, 101, 3, NULL)insert into member (group_id, user

增加批量插入方法

近期工作中发现批量插入的方法需求越来越大.所以在ORM中增加了MYSQL的批量插入方法.由三个方法组成,可以使用在不同情况下. 1.根据传入的实体集合生成批量插入的SQL语名 GetInsertSqlBatch() 2.在方法1的基础上增加一个执行并返回是否成功的功能 ExecuteInsertModelBatch(). 3.上面两个方法都没有控制每次批量插入的最大数量.只适用于小量批量插入情况.如果实体集合一次性传入1万,10万也做一次提交的话好像不太合适吧.所以就有了第三个方法.第三个方法是

【框架】[Hibernate]构架知识点详解入门与测试实例

转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] Hibernate介绍: Hibernate是一个开放源码的.非常优秀.成熟的O/R Mapping框架.它提供了强大.高性能的Java对象和关系数据的持久化和查询功能. O/R Mapping 对象关系映射(Object Relational Mapping,简称ORM)技术,是通过使用描述对象和数据库之间映射的元数据,将Java程序中的对象自动持久化到关系数据库中. 对象和关系

Hibernate的批量插入(&amp;&amp;JDBC)

一.批量插入(两种方式) 1,通过hibernate缓存 如果这样写代码进行批量插入(初始设想): package com.anlw.util; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import or

批量插入实体类转化DataTable

/// <summary> /// 根据实体类得到表结构 /// </summary> /// <param name="model">实体类</param> /// <returns></returns> private DataTable CreateData<T>(T model) { DataTable dataTable = new DataTable(typeof(T).Name); for

Hibernate批处理操作优化 (批量插入、更新与删除)

问题描述 我开发的网站加了个新功能:需要在线上处理表数据的批量合并和更新,昨天下午发布上线,执行该功能后,服务器的load突然增高,变化曲线异常,SA教育了我一番,让我尽快处理,将CPU负载降低. 工作所需,我经常要写些程序批量处理数据,每次执行几十万数据处理的时候,我机子的CPU都会飙高,而且数据处理速度会越来越慢.比如第一个1W条要5分钟,第二个1W条就要10分钟,要干其他事情的时候机子也卡的不行,只能等着处理完数据. 其实我一直认为是数据量太大,从来不认为是程序问题,所以一直没怎么关注过.

MyBatis批量插入数据(MySql)

由于项目需要生成多条数据,并保存到数据库当中,在程序中封装了一个List集合对象,然后需要把该集合中的实体插入到数据库中,项目使用了Spring+MyBatis,所以打算使用MyBatis批量插入,应该要比循环插入的效果更好,由于之前没用过批量插入,在网上找了一些资料后最终实现了,把详细过程贴出来.供以后查阅和学习. java代码: 注意:这里循环的时候需new 出来新的对象,而不能通过循环改变属性的值就认为这是一个新的对象了,通俗的说就是new ReddemCode()要放在for循环的里面.

MyBatis批量插入数据

在程序中封装了一个List集合对象,然后需要把该集合中的实体插入到数据库中,由于项目使用了Spring+MyBatis的配置,所以打算使用MyBatis批量插入,由于之前没用过批量插入,在网上找了一些资料后最终实现了,把详细过程贴出来. 实体类TrainRecord结构如下: public class TrainRecord implements Serializable { private static final long serialVersionUID = -12069604621179