???hibernate批量入库问题?????谢谢大家

大黄鸭在发光 2011-03-17 11:39:06
大家好,小弟临时客串一下java,要求必须用hibernate导入一些数据。
我定义好数据库表对应的类person,并且把需要入库的person放到一个list中
list中大致有1万多个person对象!
然后
for(int i = 0;i<list.size();i++)
{
person tj = list.get(i);
person_dao tjd = new person_dao();
tjd.insert(tj);
}
insert是我的入库函数
public void insert(person p)
{
// 开始事务
Transaction tran = this.session.beginTransaction() ;
// 执行语句
this.session.saveOrUpdate(p) ;
// 提交事务
tran.commit() ;
// 关闭Session
this.session.close() ;
}

这样做大概执行到第100多个person 时会卡死,oracle数据库也看不了。
观察了一下cpu貌似也很高,重启后再打开数据库只有那100多条数据。
请问我如何才能实现批量导入,总不能在for循环中加sleep吧
谢谢大家了,帮忙给看看
...全文
175 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
emon123 2011-03-17
  • 打赏
  • 举报
回复
写个循环,到了第100条数据的时候提交一次!~
xf_taoran 2011-03-17
  • 打赏
  • 举报
回复
// 提交事务
tran.commit() ;
// 关闭Session
this.session.close()

放到循环外面试试

58,452

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧