Tendrás que eliminar la query
argumento de su executeQuery
llamar. Si proporciona el parámetro, la consulta se ejecutará sin vincular ningún valor (consulte Declaración
para más detalles) - esta es la razón por la que la sintaxis (es decir, el ?
) no es válido.
Ejecute la consulta de esta manera:
ResultSet rst = st.executeQuery();
Como nota al margen:siempre debe envolver Connection
, PreparedStatement
y ResultSet
con un probar-con-recursos bloque, por ej.
try (ResultSet rst = st.executeQuery()) {
// read the results
}
De esta manera puede estar seguro de que el ResultSet
se cerrará pase lo que pase.