Foros del Web » Programación para mayores de 30 ;) » Java »

Correr esta sentencia sql en codigo java??

Estas en el tema de Correr esta sentencia sql en codigo java?? en el foro de Java en Foros del Web. Creo que el problema es de java pero no se si sea de postgresql asi que lo posteo aki tambien. Hago todo como dice arriba ...
  #1 (permalink)  
Antiguo 26/11/2009, 00:53
Avatar de TyrantRC  
Fecha de Ingreso: noviembre-2009
Mensajes: 55
Antigüedad: 14 años, 5 meses
Puntos: 1
Correr esta sentencia sql en codigo java??

Creo que el problema es de java pero no se si sea de postgresql asi que lo posteo aki tambien.

Hago todo como dice arriba pero cuando voy a ejecutar un query que llame a un campo de la tabla, por ejemplo:

select * from alumno where "primerNombreAlumno"='luis';

no me da error en postgresql pero si en java porke al meterlo en el metodo:
stm.executeQuery("select * from alumno where "primerNombreAlumno"='luis';");

el string se cierra en:
"select * from alumno where "

y no llega a la parte de:
primerNombreAlumno"='luis';" porke rebota con un error

Mi pregunta es como hago ese query que me funcione de otra forma? sin esas comillas dobles. o como hago para poner comillas dobles dentro de un string en java???
  #2 (permalink)  
Antiguo 26/11/2009, 02:07
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Correr esta sentencia sql en codigo java??

xD lo que pasa es deberias poner esto para que te funcione.

String sentenciaSQL = "select * from alumno where " +
"primerNombreAlumno='luis'";

Si le pasas luis como parámetro, p. ej nombreAlumno, quedaría:

String sentenciaSQL = "select * from alumno where " +
"primerNombreAlumno=" +nombreAlumno;

Siempre y cuando alumno sea la tabla de la BD donde estés buscando y primerNombreAlumno sea el nombre exacto la columna dentro de esa tabla en la que estés buscando.
  #3 (permalink)  
Antiguo 26/11/2009, 03:18
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Correr esta sentencia sql en codigo java??

Perdón, la segunda sentencia sería así.

String sentenciaSQL = "select * from alumno where " +
"primerNombreAlumno=' " +nombreAlumno +" ' ";
  #4 (permalink)  
Antiguo 26/11/2009, 04:26
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 2 meses
Puntos: 10
Respuesta: Correr esta sentencia sql en codigo java??

Wenas

PreparedStatement y te olvidas de comillas y zarandajas.

Saludos.
  #5 (permalink)  
Antiguo 26/11/2009, 05:17
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Correr esta sentencia sql en codigo java??

Aparte de que dudo que las comillas sean necesarias, ya que los nombres de columnas en SQL no suelen necesitarlas.

Aun así, una busqueda rápida devolvería que las " en Java se "escapan" con \".

S!

PD: Y como dice ElAntonie, lo mejor es PreparedStament para no tener que preocuparse de SQLInjection, "escapar" los parametros etc.
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #6 (permalink)  
Antiguo 26/11/2009, 16:54
Avatar de TyrantRC  
Fecha de Ingreso: noviembre-2009
Mensajes: 55
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Correr esta sentencia sql en codigo java??

Muchas gracias por su respuestas. Me sirvio lo de la /". Lo de el PreparedStament lo investigue y se ve bastante productivo. Lo voy a usar.

NOTA: no se porke el postgresql que tengo me esta pidiendo las comillas dobles en los elementos de las tablas. Yo antes usaba mysql y no me pasaba eso xD, que raro eso
  #7 (permalink)  
Antiguo 26/11/2009, 18:17
Avatar de xdrtas  
Fecha de Ingreso: junio-2008
Ubicación: Venezuela
Mensajes: 97
Antigüedad: 15 años, 10 meses
Puntos: 13
Respuesta: Correr esta sentencia sql en codigo java??

Cita:
Iniciado por TyrantRC Ver Mensaje
NOTA: no se porke el postgresql que tengo me esta pidiendo las comillas dobles en los elementos de las tablas. Yo antes usaba mysql y no me pasaba eso xD, que raro eso
Es porque el postgreSQL almacena todos los nombres de tablas y de campos en minúsculas. Cuando se quiere usar mayúsculas como en tu caso, ("primerNombreAlumno"), tienes que colocarlo entre comillas, si quieres evitar el uso de comillas tienes que escribir el nombre de la tabla y de los campos en minúsculas cuando se crea la tabla.

En este link en el último punto te detallan un poco, no mucho, pero algo:
wiki.postgresql.org/wiki/FAQ/es --> ¿Por qué mis tablas y nombres de columna no son reconocidos en mi consulta? ¿Por qué no es preservada la capitalización?

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:00.