zoukankan      html  css  js  c++  java
  • Hibernate中批量保存数据

    第一种方式

    	public void saveCus(final List<Cus> cuss) {
    		this.getHibernateTemplate().execute(new HibernateCallback() {
    
    			@Override
    			public Object doInHibernate(Session session) throws HibernateException, SQLException {
    				if (CollectionUtils.isNotEmpty(cuss)) {
    					Transaction tx = null;
    					try {
    						tx = session.beginTransaction();
    						int i = 0;
    						for (Cus c : cuss) {
    							session.save(c);
    							i++;
    							if (i % 100 == 0) {
    								logger.warn("第" + (i / 100) + "次刷新");
    								session.flush();
    								session.clear();
    							}
    							session.flush();
    						}
    					} catch (Exception e) {
    						logger.warn("批量插入出现异常:" + e);
    					} finally {
    						if (session != null)
    							session.close();
    					}
    				}
    				return null;
    			}
    		});
    
    	}
    

    第二种方式:

    Transatcion tx=session.beginTransaction();
    for(int i=0;i<10000;i++)
    {
    Student st=new Student();
    st.setName("feifei");
    session.save(st);
    if(i%50==0) //以每50个数据作为一个处理单元
    {
    session.flush(); //保持与数据库数据的同步
    session.clear(); //清除内部缓存的全部数据,及时释放出占用的内存
    }
    }
    tx.commit();
    

      

  • 相关阅读:
    简单伪类
    购物网页css
    「WC2020T2」猜数
    ARC 103
    Codeforces 1198F
    ZJOI2019二试游记
    ZJOI2019一试游记
    「WC2015」未来程序
    「CodeForces Round #545 Div2」划水记
    「CF1116」Microsoft Q# Coding Contest
  • 原文地址:https://www.cnblogs.com/liushisaonian/p/8624554.html
Copyright © 2011-2022 走看看