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方法

Hibernate 中 session.flush() 有啥用

hibernate学习 六 Hibernate缓存

在 JPA/Hibernate 中正确使用 flush()

休眠:flush()和commit()