在Hibernate中使用本机SQL批量插入

在Hibernate中使用本机SQL批量插入,第1张

在Hibernate中使用本机SQL批量插入

Hibernate具有批处理功能。但是在以上情况下,我使用的是Native SQL,根据我的观察,hibernate批处理对于Native
SQL并不是很有效。是的,可以肯定的是它可以避免内存不足错误,但不会提高性能。因此,我退缩到在Hibernate中实现JDBC
Batch.Hibernate提供了

doWork()
从Hibernate Session获取连接的方法。

Session session = sessionFactory.openSession();Transaction tx = session.beginTransaction();//get Connction from Sessionsession.doWork(new Work() {       @Override       public void execute(Connection conn) throws SQLException {          PreparedStatement pstmt = null;          try{String sqlInsert = "insert into sampletbl (name) values (?) ";pstmt = conn.prepareStatement(sqlInsert );int i=0;for(String name : list){    pstmt .setString(1, name);    pstmt .addBatch();    //20 : JDBC batch size  if ( i % 20 == 0 ) {      pstmt .executeBatch();   }   i++;}pstmt .executeBatch();         }         finally{pstmt .close();         }    }});tx.commit();session.close();


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5442565.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存