Hibernate中批量保存数据

摘要:
尝试{tx=session.beginTransaction();session.flush();session.clear();}session.flusch();=null)session.close();}}returnnull;对于(inti=0;i<session.save(st);

第一种方式

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

  

免责声明:文章转载自《Hibernate中批量保存数据》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇linux系统上nginx配置按天生成日志文件小萝卜控机大师录制脚本(手机app自动化)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

PHP 垃圾回收机制(转)

转载自 liweixixihaha 最终编辑 liweixixihaha 每一种计算机语言都有自己的自动垃圾回收机制,让程序员不必过分关心程序内存分配,php也不例外,但是在面向对象编程(OOP)编程中,有些对象需要显式的销毁;防止程序执行内存溢出。 一、PHP 垃圾回收机制(Garbage Collector 简称GC) 在PHP中,没有任何变量指...

[Android测试] Appium的一些坑问题错误解决 与 技巧集锦

转:https://blog.csdn.net/niubitianping/article/details/52624417 1. error: Failed to start an Appium session, err was: Error: Requested a new session but one was in progress 之前的会话没有...

Hibernate的批量处理

  Hibernate完全以面向对象的方式操作数据库,当程序员以面向对象的方式操作持久化对象时,将自动转换为对数据的操作。例如我们Session的delete()方法,来删除持久化对象,Hibernate将负责删除对应的数据记录;当我们执行持久化对象的setter方法时,Hibernate将自动转换为底层的update语句,修改数据库的对应记录。   问题...

WPF 获取DataGridRow有时为NULL的解决办法

使用 DataGridRow dr = (DataGridRow)ListGrid.ItemContainerGenerator.ContainerFromItem(item); 有时获取 DataGridRow 为NULL 需要在DataGrid上加属性 VirtualizingStackPanel.IsVirtualizing="False"...

阿里人脸识别接口

最近研究了一下阿里的人脸识别功能,只是调用阿里提供的接口返回数据给我们就OK了。详细文档可参考阿里的api  阿里人脸识别api 人脸比对的方法 直接上代码吧: 1 package com.guoxin.common.test; 2 3 import sun.misc.BASE64Encoder; 4 import javax.cryp...

javascript 九宫格图片随机打乱位置

  今天就做个九宫格的简易拼图,最让我头疼的就是点击开始打乱图片位置。一开始在百度查看相关博客,走了很多弯路。最后看了众多的例子,自己写了个方法。 1 <script> 2 //打乱图片方法 3 function fun(){ 4 var x = []; 5 var y ; 6...