Non stai utilizzando lo stesso PreparedStatement
, il metodo di fabbrica Connection.prepareStatement
ti restituisce una nuova istanza ogni volta che la chiami. PreparedStatement.executeQuery
sta facendo lo stesso con ResultSet
. Stai solo usando le stesse variabili.
Ciò significa che stai perdendo risorse:il primo PreparedStatement
e ResultSet
- ogni volta che viene chiamato questo metodo, che non viene mai chiuso.
La mia raccomandazione sarebbe quella di utilizzare JdbcTemplate
di Spring che gestirà correttamente queste risorse di database per te e suddividi il tuo codice in due metodi.