循环连续开闭数据库连接有什么限制么?

循环连续开闭数据库连接有什么限制么?

问题描述:

在程序里 执行了一段
for (BeanList beanlist : list){
数据库更新
}

这样循环作业,每更新一次就建立一次db的 开启 和关闭。

问题是,当循环到10几次后,页面进度走到一半就不走了,eclipse 里的 console下边 也没有报 任何异常。

这是什么问题呢?难道是在循环里反复开启关闭数据库这样不行么?

我的数据库用 tomcat的 jndi 连接postgre

stmt.executeUpdate(sql);
con.commit();
stmt.close();

[code="java"]con.close();[/code] 加上关闭连接看看

为什么要这么来做了,建立一次连接,批量处理完以后进行更新并且关闭连接。这样性能更好。

也没有没有反应的原因可能是数据库连接池被用光了,可以确认一下。

[quote]for (BeanList beanlist : list){
数据库更新
}

这样循环作业,每更新一次就建立一次db的 开启 和关闭。 [/quote]

反复开关 没什么不行!主要看你的 jdbc 或者连接池 设置 最大连接数或者其他参数! 最后不要一条 跑一次! 不效率! 优化下! :arrow:

try catch一下,看看有没有异常抛出。

建议采用我说的那种方式,建立一次连接,操作完成以后,关闭连接。

[quote]enet_java 写道
try catch一下,看看有没有异常抛出。

建议采用我说的那种方式,建立一次连接,操作完成以后,关闭连接。

try {
dbkdd.updateKeidata(kdd.getKeidata_key(),
kdd.getPolicy_name(), kdd.getSearch_word(),
search_word, seiritu_cnd, kdd.getTenpu_cnd(),
kdd.getKeikoku_mthd(), kdd.getKaijo_cd(),
kdd.getPolicy_msg());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("updateKeidata Exception ");
}

没见到异常啊 如果异常应该 报updateKeidata Exception 吧 没有。。。

页面效果就是进度条走到一半停了 eclipse console 里也没有异常 就是不动了的感觉 [/quote]

:( ,换种实现思路看看吧。