Du använder inte samma PreparedStatement
, fabriksmetoden Connection.prepareStatement
returnerar dig en ny instans varje gång du ringer den. PreparedStatement.executeQuery
gör samma sak med ResultSet
. Du använder bara samma variabler.
Det betyder att du läcker resurser - den första PreparedStatement
och ResultSet
- varje gång den här metoden anropas, som aldrig stängs.
Min rekommendation skulle vara att använda Springs JdbcTemplate
som kommer att hantera dessa databasresurser korrekt åt dig och du delar upp din kod i två metoder.