Anda perlu menggunakan:
preparedStatement.executeQuery();
bukannya
preparedStatement.executeQuery(login);
saat Anda memasukkan string ke executeQuery()
itu kueri dieksekusi secara harfiah dan dengan demikian ?
dikirim ke database yang kemudian membuat kesalahan. Dengan meneruskan string kueri, Anda tidak mengeksekusi pernyataan yang disiapkan "cache" yang nilainya telah Anda berikan.