问题描述
在程序里 执行了一段for (BeanList beanlist : list){ 数据库更新}这样循环作业,每更新一次就建立一次db的 开启 和关闭。问题是,当循环到10几次后,页面进度走到一半就不走了,eclipse 里的 console下边 也没有报 任何异常。这是什么问题呢?难道是在循环里反复开启关闭数据库这样不行么?我的数据库用 tomcat的 jndi 连接postgre 问题补充:enet_java 写道
解决方案
stmt.executeUpdate(sql); con.commit(); stmt.close(); con.close(); 加上关闭连接看看
解决方案二:
引用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 里也没有异常 就是不动了的感觉 ,换种实现思路看看吧。
解决方案三:
try catch一下,看看有没有异常抛出。建议采用我说的那种方式,建立一次连接,操作完成以后,关闭连接。
解决方案四:
引用for (BeanList beanlist : list){ 数据库更新 } 这样循环作业,每更新一次就建立一次db的 开启 和关闭。 反复开关 没什么不行!主要看你的 jdbc 或者连接池 设置 最大连接数或者其他参数! 最后不要一条 跑一次! 不效率! 优化下!
解决方案五:
为什么要这么来做了,建立一次连接,批量处理完以后进行更新并且关闭连接。这样性能更好。也没有没有反应的原因可能是数据库连接池被用光了,可以确认一下。