Nepoužíváte stejný PreparedStatement
, tovární metoda Connection.prepareStatement
vám vrací novou instanci pokaždé, když ji zavoláte. PreparedStatement.executeQuery
dělá totéž s ResultSet
. Pouze používáte stejné proměnné.
To znamená, že vám unikají zdroje – první PreparedStatement
a ResultSet
- při každém volání této metody, které se nikdy neuzavírají.
Moje doporučení by bylo použít Spring's JdbcTemplate
který za vás bude správně zpracovávat tyto databázové zdroje a rozdělíte svůj kód na dvě metody.