hibernate学习(六) flush()和clean()区别和使用
Posted lonecloud
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hibernate学习(六) flush()和clean()区别和使用相关的知识,希望对你有一定的参考价值。
session.flush()是强制和数据库同步
session.clean()是清除session中的缓存
对于批量数据插入的时候优化:
减少cpu和内存(缓存)占用量
@Test public void saveAllDo(){ Transaction tx = null; try{ tx = session.beginTransaction();//开启事务 for(int i=0;i<10000;i++){ Customer customer = new Customer(); customer.setCustomerName("fank"+i); session.save(customer); //在50次sql语句的时候强行提交数据 if(i%50==0){ session.flush(); session.clear(); } } tx.commit(); }catch(Exception e){ if(tx!=null){ tx.rollback(); } e.printStackTrace(); }finally{ if(session!=null && session.isOpen()){ session.close(); } } }
2.使用原生jdbc进行数据优化
以上是关于hibernate学习(六) flush()和clean()区别和使用的主要内容,如果未能解决你的问题,请参考以下文章
Hibernate commit() 和flush() 的区别
Hibernate缓存的evictclear和flush方法