hibernate学习(六) flush()和clean()区别和使用

时间:2022-02-26 21:26:30

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