hibernate學習(六) flush()和clean()區別和使用

lonecloud發表於2016-10-16

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

相關文章