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进行数据优化