根据Hibernate文档,批量插入的最佳方法是:
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();
}
}
tx.commit();
session.close();
实际上,我正在使用Hibernate和Spring(@Transactional
),因此我不会使用Session
和方法flush()
和clear()
。< / p>
我遇到了性能方面的主要问题:插入7400行1小时......
我认为Spring对会话管理不善,并且在调用DAO类的方法之间断开了与数据库的连接。
如何检查?