1 votos

La cadena de consulta de la sentencia preparada JDBC de PostgreSQL con comillas simples da error

Estoy tratando de ejecutar una consulta usando JDBC pero estoy teniendo dificultades para inyectar valores en la sentencia preparada. Aquí está una muestra de lo que estaba haciendo:

String queryString = "... WHERE location <@ box '((?, ?),(?, ?))' ..."
PreparedStatement ps = this.connection.prepareStatement(queryString);
ps.setDouble(1, x1);
ps.setDouble(2, y1);
ps.setDouble(3, x2);
ps.setDouble(4, y2);
ps.executeUpdate();

Lo que me da este error:

org.postgresql.util.PSQLException: The column index is out of range: 1, number of columns: 0

Creo que piensa que los valores entre las comillas simples son literales de cadena y por eso no ve los ? como parámetros a inyectar. He probado con otros

¿Alguien sabe cómo puedo arreglar esto? O más bien, ¿qué otra cosa debería hacer?

0voto

Mikaveli Puntos 126

Puede utilizar funciones de conversión de tipos geométricos para construir una caja sin tener que pasar por una cadena:

... WHERE location <@ box(point(?, ?), point(?, ?)) ...

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X