Hibernate 批量操作数据可以使用两种方法实现
1、分批更新,每一小批同步一次数据:
public void saveEmployee2(){ Session s=HibernateSessionFactory.getSession(); Transaction tran=s.beginTransaction(); for(int i=1;i<=1000;i++){ Employee e=new Employee(); e.setName("张"+i); e.setAddTime(new Date()); s.save(e); // 每20条同步一次,并释放一次Session if(i%20==0){ s.flush(); s.clear(); } } tran.commit(); }
2、使用Hibernate3.0以后提供的功能:
public void updateEmployee2(){ try{ Session s=HibernateSessionFactory.getSession(); Transaction tran=s.beginTransaction(); // 使用update delete 的功能是从Hibernate3.0以后开始支持; // 使用完update delete后,Hiberante会将所有的Session缓存全部清理掉 Query q=s.createQuery("update Employee set name=:name"); q.setString("name", "新名字"); q.executeUpdate(); tran.commit(); }catch(Exception e){ e.printStackTrace(); } }
详细注解:http://blog.csdn.net/z69183787/article/details/38403367