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進行資料優化