Du bruger ikke den samme PreparedStatement
, fabriksmetoden Connection.prepareStatement
returnerer dig en ny instans, hver gang du ringer til den. PreparedStatement.executeQuery
gør det samme med ResultSet
. Du bruger bare de samme variabler.
Det betyder, at du lækker ressourcer - det første PreparedStatement
og ResultSet
- hver gang denne metode kaldes, som aldrig bliver lukket.
Min anbefaling ville være at bruge Springs JdbcTemplate
som vil håndtere disse databaseressourcer korrekt for dig, og du deler din kode op i to metoder.