java代码向数据库插入数据报错

longyuan2801 2010-01-09 02:44:32
当我写了一段简单的插入程序 向orcale中插入数据,当数据量小的时候没有问题,当超过5000条的时候就会报数据库连接出错,导致有些数据插入出现问题。
...全文
148 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yong_hu2010 2012-10-16
  • 打赏
  • 举报
回复
连接数过多。
TTOS3302041 2010-01-14
  • 打赏
  • 举报
回复
你配的连接数不够
1。可以增大连接数(不建议这么做,试验用可以)

2。既然每次insert量这么多,可以考虑分匹提交,每100条执行一次提交试试
SambaGao 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 palm_civet 的回复:]
贴出详细报错信息,估计是connection被耗光了或者out of memory
[/Quote]

...
很有可能
palm_civet 2010-01-09
  • 打赏
  • 举报
回复
贴出详细报错信息,估计是connection被耗光了或者out of memory
wuyisky84 2010-01-09
  • 打赏
  • 举报
回复
如果每insert 一次都进行申请,连接,关闭的话,
资源也肯定不够

还是用3楼的方法试试
fuyou001 2010-01-09
  • 打赏
  • 举报
回复
楼主,会不会不是连接不够不了
你忘了关connection stmatment 之类的吧
每次用完后,你都要关掉
crazylaa 2010-01-09
  • 打赏
  • 举报
回复
用excuteBatch。简单的例子:


String s = "";
File f = new File(fileName);
if (!f.exists()) {
throw new Exception("file doesn't exist....");
}
BufferedReader br = null;
PreparedStatement pstmt = null;
try {
br = new BufferedReader(new InputStreamReader(
new FileInputStream(f)));
String sql = "insert into tbl_report(a,b,c,d)"
+ "values(?,?,?,'2009-12-07')";
pstmt = con.prepareStatement(sql);
// 循环外部准备好prepareStatement;
while ((s = br.readLine()) != null) {
if (s.indexOf("合计") > 0) {
continue;
}
String[] c = s.split("\t");
printArray(c);
if (c.length == 3) {
// 加入批量参数
pstmt.setString(1, c[0]);
pstmt.setString(2, c[1]);
pstmt.setString(3, c[2]);
pstmt.addBatch();
}
}
// 一次执行。
pstmt.executeBatch();
System.out.println("file write back finished");
} catch (Exception e) {
throw e;
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}


huangyunzeng2008 2010-01-09
  • 打赏
  • 举报
回复
不会有这种问题的吧!你说的也不是很具体,这个问题恐怕不好给你解决的!你还是提供比较详细的代码或者是异常信息!
duqiangcise 2010-01-09
  • 打赏
  • 举报
回复
请提供完成的异常信息。

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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