Vous n'utilisez pas le même PreparedStatement
, la méthode d'usine Connection.prepareStatement
vous renvoie une nouvelle instance à chaque fois que vous l'appelez. PreparedStatement.executeQuery
fait la même chose avec ResultSet
. Vous utilisez simplement les mêmes variables.
Cela signifie que vous perdez des ressources - le premier PreparedStatement
et ResultSet
- chaque fois que cette méthode est appelée, qui ne sont jamais fermées.
Ma recommandation serait d'utiliser le JdbcTemplate
de Spring qui gérera ces ressources de base de données correctement pour vous et vous divisez votre code en deux méthodes.