Anda harus menghapus query argumen dari executeQuery . Anda panggilan. Jika Anda memberikan parameter, kueri akan dieksekusi tanpa mengikat nilai apa pun (lihat Pernyataan
untuk detailnya) - inilah mengapa sintaksnya (yaitu ? ) tidak valid.
Jalankan kueri seperti ini:
ResultSet rst = st.executeQuery();
Sebagai catatan tambahan:Anda harus selalu membungkus Connection , PreparedStatement dan ResultSet dengan coba-dengan-sumber daya blok, mis.
try (ResultSet rst = st.executeQuery()) {
// read the results
}
Dengan cara ini Anda dapat memastikan ResultSet akan ditutup apa pun yang terjadi.