流世幻羽

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

第一种方式

	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();

  

 

posted on 2018-03-22 16:14  流世幻羽  阅读(7598)  评论(0编辑  收藏  举报