最近发现项目中存在未关闭的PreparedStatement,看了下代码,情况是这样的:
  我们在f1()方法中声明了PreparedStatement对象,但是由于该方法需要返回ResultSet对象所以在该方法中没有关闭PreparedStatement,当我们在另一个方法f2()中调用f1()的时候这么做:psmt = rs.getStatement();然后调用psmt.close();确发现PreparedStatement并没有关闭,这是什么原因呢?