同じPreparedStatement
を使用していません 、ファクトリメソッドConnection.prepareStatement
呼び出すたびに新しいインスタンスが返されます。 PreparedStatement.executeQuery
ResultSet
でも同じことをしています 。同じ変数を使用しているだけです。
これは、リソースをリークしていることを意味します-最初のPreparedStatement
およびResultSet
-このメソッドが呼び出されるたびに、閉じられることはありません。
SpringのJdbcTemplate
を使用することをお勧めします これにより、これらのデータベースリソースが正しく処理され、コードが2つのメソッドに分割されます。