Anda tidak menggunakan PreparedStatement
yang sama , metode pabrik Connection.prepareStatement
mengembalikan Anda contoh baru setiap kali Anda menyebutnya. PreparedStatement.executeQuery
melakukan hal yang sama dengan ResultSet
. Anda hanya menggunakan variabel yang sama.
Ini berarti Anda membocorkan sumber daya - PreparedStatement
pertama dan ResultSet
- setiap kali metode ini dipanggil, yang tidak pernah ditutup.
Rekomendasi saya adalah menggunakan JdbcTemplate
Spring's yang akan menangani sumber daya database ini dengan benar untuk Anda dan Anda memecah kode menjadi dua metode.