Hibernate的方法:
如果采用如下方法(注意这中方法不行);
Session session=SessionFactory.openSession();
Transaction tx=session.beginTransaction();
for(int i=0;i<100000;i++){
User u= new User(......);
session.save(u);
}
tx.commit();
session.close;
随着程序进行会出现内存溢出的错误 OutOfMemoryException 这是用为hibernate的session持有一个一级缓存,所有的User对象将都在session级别进行了缓存;
解决:
Session session=HibernateUtil.currentSession();
Transaction tx=session.beginTransaction();
for(int i=0;i<100000;i++){
User u= new User();
u.setName("*******"+i);
u.setAge(i);
session.save(u);
if(i%20 == 0){
session.flush();
session.clear();
}
tx.commit();
sHibernateUtil.closeSession();
}
在上程序中,手动将Session处的缓存数据写入数据库;并且清空session;
除了要对Session级别的缓存进行处理外;还应该通过配置来关闭SessionFactory的二级缓存:
hibernate.cache.use.second_level_cache false;
二级缓存也有可能引发异常;
分享到:
相关推荐
主要给大家介绍C#.net中如何批量插入大量数据到数据库中,本文涉及到C#.net中批量插入数据到数据库中方面的内容,对C#.net批量插入数据到数据库中感兴趣的朋友可以参考下本
此代码使用C#编码,可以批量的把读取的数据插入数据库,常见于批量导入数据等。
批量插入数据库
数据库复制批量插入数据命令
Java向数据库中插入大量数据时的优化
spring jdbc Templatetest 访问mysql数据库,批量插入数据
模拟批量数据插入Oracle数据库
C#编写,大数据量数据进行批量插入数据库Access的程序
本文将介绍三种批量插入数据的方法。第一种方法是使用循环语句逐个将数据项插入到数据库中;第二种方法使用的是SqlBulkCopy,使您可以用其他源的数据有效批量加载 SQL Server 表;第三种使用的方法是sql server中的...
这个我感觉挺有用处吧,一般情况下,我们录入都是一条一条的,但信息量较大的时候,就需要批量插入数据了,我们可以先读取外部指定格式的文件,然后将数据转换为可插入的格式,然后使用insert批量向数据库中插入数据...
Delphi批量插入数据库数据..rar
在oracle数据据库中批量插入数据的java方法
使用odbc批量插入10W条数据,与update作对比,速度明显提升,将近10倍。
源码包含有不同方法的添加,第一种逐条添加,第二种批量加入,其批量加实现原理其实就是把数据存入内存表(DataTable)中使用Backcopy一次性加入数据库。添加dll引用即可调用(无脑操作,何况源码里有)添加此对应dll...
只要学我一样编写这么一个工具类便可以实现批量插入多条数据,百条,千条,万条,后期还会继续优化增加数据时的速度!有点代码基础的保证能看懂,此项目已经有了前端界面你可以直接的导入然后运行测试既可以了,表...
使用java向mongodb中插入数据 一、Linux安装mongodb 二、MongoDB客户端工具(MongoVUE)访问mongodb 三、通过Java操作MongoDB
当获取过来的是值往数据库插入的时候有相同的就不插入,将不同的插入到数据库中
批量导入数据库中数据,可以更快的导入数据库中大量的数据,节省自己的时间
EasyExcel 并发读取文件字段并进行校验,数据写入到新文件,批量插入数据到数据库 demo
考虑到当Excel数据量较大时,循环Insert语句效率太低,故采用批量插入的方法。在插入操作运行时,会造成系统短暂的“卡死”现象。为了让用户知道插入的状态,需要制作一个进度条来显示插入的进度。 批量插入 项目中...