Statement、PreparedStatement关闭问题

Gray_Sky 2011-02-25 01:28:37
最近发现项目中存在未关闭的PreparedStatement,看了下代码,情况是这样的:
我们在f1()方法中声明了PreparedStatement对象,但是由于该方法需要返回ResultSet对象所以在该方法中没有关闭PreparedStatement,当我们在另一个方法f2()中调用f1()的时候这么做:psmt = rs.getStatement();然后调用psmt.close();确发现PreparedStatement并没有关闭,这是什么原因呢?
...全文
280 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cw_tkong 2011-02-25
  • 打赏
  • 举报
回复
用连接池 或者proxool池链接数据库 就不会出现这种情况了

我举个开门的例子:
开门 ->没有关
新开门(不用开,我要抛异常)->

所以获得连接前判断一下 有没有开,如果开了就直接用
小莫M 2011-02-25
  • 打赏
  • 举报
回复
测试过了,可以关闭;请检查你的代码逻辑是否有问题。
Gray_Sky 2011-02-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 runer 的回复:]
在f1()中销毁之
[/Quote]
考虑过在f1()中销毁,但由于f1()需要返回ResultSet,所以不能做的。
runer 2011-02-25
  • 打赏
  • 举报
回复
在f1()中销毁之

62,614

社区成员

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

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