Sie verwenden nicht dasselbe PreparedStatement
, die Factory-Methode Connection.prepareStatement
gibt Ihnen bei jedem Aufruf eine neue Instanz zurück. PreparedStatement.executeQuery
macht dasselbe mit ResultSet
. Sie verwenden nur dieselben Variablen.
Das bedeutet, dass Sie Ressourcen verlieren – das erste PreparedStatement
und ResultSet
- jedes Mal, wenn diese Methode aufgerufen wird, die niemals geschlossen wird.
Meine Empfehlung wäre, Springs JdbcTemplate
zu verwenden die diese Datenbank-Ressourcen korrekt für Sie verarbeitet und Sie Ihren Code in zwei Methoden aufteilen.