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