No estás usando el mismo PreparedStatement
, el método de fábrica Connection.prepareStatement
te está devolviendo una nueva instancia cada vez que lo llamas. PreparedStatement.executeQuery
está haciendo lo mismo con ResultSet
. Solo estás usando las mismas variables.
Esto significa que está perdiendo recursos:la primera PreparedStatement
y ResultSet
- cada vez que se llama a este método, que nunca se cierra.
Mi recomendación sería usar JdbcTemplate
de Spring que manejará estos recursos de la base de datos correctamente para usted y dividirá su código en dos métodos.