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

insertar datos en 2 tablas diferentes jdbc

Estas en el tema de insertar datos en 2 tablas diferentes jdbc en el foro de Java en Foros del Web. Buenas gente... ando programando para un proyecto de la U... y pues me tope con cientos de problemas y uno de esos es este que ...
  #1 (permalink)  
Antiguo 09/11/2015, 10:09
 
Fecha de Ingreso: noviembre-2015
Mensajes: 13
Antigüedad: 9 años
Puntos: 0
insertar datos en 2 tablas diferentes jdbc

Buenas gente...
ando programando para un proyecto de la U... y pues me tope con cientos de problemas y uno de esos es este que planteo...

Estoy haciendo 2 consultas de insertar datos dentro de una clase y pues me lanza error... y mi problema creo que esta al no saber como rescatar o usar las variables de cada consulta...

tengo esto...

Código Java:
Ver original
  1. public int adicionarPer(String x nombre, String xap, String xam,, String xgen, String xtipo, String xci){
  2.  String xsql=" INSERT INTO PERSONAS (CODPER, NOMBRE, AP, AM, GENERO, TIPOPER)"+
  3.  " VALUES((SELECT MAX(CODPER)+111 FROM PERSONAS),?,?,?,?,?)";
  4.  
  5.  String xsql2=" INSERT INTO DATOS (CI,CODPER)"+
  6.  " VALUES(?,(SELECT MAX(CODPER)+111 FROM PERSONAS))";
  7.  
  8.  return this.jdbcTemplate.update(xsql, new Object [] {xnombre.toUpperCase(), xap.toUpperCase(), xam.toUpperCase(), xgen.toUpperCase(), xtipo.toUpperCase()});
  9.  }


nose como retornar el valor de la segunda consulta...

intente hacer la primera consulta y la segunda x separado y si funciona... si guarda la información en la base de datos...
pero cuando pongo las 2 consultas me lanza error...

que me faltaría añadir ahi en el return gente???...
intente añadir la segunda consulta pero igual sigue el error... no tengo conocimiento de como añadir tampoco una segunda variable de una segunda consulta...

y si se preguntan que estoy haciendo con el select dentro de un insert... es para insertar un incremento para una columna... pero no le tomen interés... funciona bien eso...
mi problema está en la segunda consulta...

Gracias x tomarse un tiempo para leer... si tienen dudas... puedo explicarme mejor...
un saludo

Última edición por gnzsoloyo; 09/11/2015 a las 10:22
  #2 (permalink)  
Antiguo 09/11/2015, 10:24
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: insertar datos en 2 tablas diferentes jdbc

OFF TOPIC en PostgreSQL.

Movido a Java.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 10/11/2015, 01:34
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: insertar datos en 2 tablas diferentes jdbc

Buenas,

Yo veo que lanzas la primera consulta con JDBCTemplate. No veo donde lanzas la segunda. No puedes lanzar las dos de golpe en un solo update.

Tampoco pones detalle alguno de los errores que tienes.

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #4 (permalink)  
Antiguo 11/11/2015, 00:24
 
Fecha de Ingreso: noviembre-2015
Mensajes: 13
Antigüedad: 9 años
Puntos: 0
Respuesta: insertar datos en 2 tablas diferentes jdbc

Buenas Profesor_Falken... y si exacto... nose como lanzar la segunda consulta (xsql2)...
Y si dices que no se puede lanzar 2 consultas en un update...
Como puedo hacer...
Como seria la manera correcta de lanzar la segunda consulta???...

Y sobre el error... pues en la consola me lanza el error en la consulta... xq estoy seguro que estoy haciendo algo mal al mandar la segunda consulta xsql2...

Gracias x responder...
  #5 (permalink)  
Antiguo 11/11/2015, 12:46
 
Fecha de Ingreso: noviembre-2015
Ubicación: Con Alicia, en el país de las maravillas
Mensajes: 11
Antigüedad: 9 años
Puntos: 0
Respuesta: insertar datos en 2 tablas diferentes jdbc

Cita:
Iniciado por Shaco0492 Ver Mensaje
Buenas Profesor_Falken... y si exacto... nose como lanzar la segunda consulta (xsql2)...
Y si dices que no se puede lanzar 2 consultas en un update...
Como puedo hacer...
Como seria la manera correcta de lanzar la segunda consulta???...

Y sobre el error... pues en la consola me lanza el error en la consulta... xq estoy seguro que estoy haciendo algo mal al mandar la segunda consulta xsql2...

Gracias x responder...
La segunda consulta la podes hacer en un método aparte, aportandole los mismo parametros y listo. Que retorne el resultado de esa consulta.

PD: Fijate que nunca ejecutas la segunda consulta.
PD2: No estoy seguro, pero me parece que la 2da consulta está mal escrita en cuanto al formato MySql.
  #6 (permalink)  
Antiguo 11/11/2015, 12:54
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: insertar datos en 2 tablas diferentes jdbc

Técnicamente, las dos consultas están mal escritas.
Como em concentré en el problema programático no lo vi pero eso:
Código MySQL:
Ver original
  1. INSERT INTO PERSONAS (CODPER, NOMBRE, AP, AM, GENERO, TIPOPER)
  2. VALUES((SELECT MAX(CODPER)+111 FROM PERSONAS),?,?,?,?,?)
Es ilegal en MySQL, porque no admite que se consulte y se inserte o modifiquen registros de la misma tabla en la misma sentencia, y MySQL tampoco admite subconsultas en un VALUE.

y esto:
Código MySQL:
Ver original
  1. INSERT INTO DATOS (CI,CODPER)
  2. VALUES(?,(SELECT MAX(CODPER)+111 FROM PERSONAS))
está mal, por la misma razon indicada antes al final.

Necesitas entender que SQL y Java no son el mismo lenguaje. Cada uno tiene sus reglas y si vas a embeber SQL en Java, el SQL tiene que estar correctamente escrito para la base de datos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 12/11/2015, 00:43
 
Fecha de Ingreso: noviembre-2015
Mensajes: 13
Antigüedad: 9 años
Puntos: 0
Respuesta: insertar datos en 2 tablas diferentes jdbc

Si tjjow intentare hacer x separado las consultas...
Creo que será mejor...

Gracias...
  #8 (permalink)  
Antiguo 12/11/2015, 00:47
 
Fecha de Ingreso: noviembre-2015
Mensajes: 13
Antigüedad: 9 años
Puntos: 0
Respuesta: insertar datos en 2 tablas diferentes jdbc

Y gnzsoloyo... estoy usando Postgres... y pues no me dio problemas con el select dentro del value...
Hice la primera consulta x separado y adiciona los datos perfectamente en la BD...

Solo que al juntar las 2 consultas me lanza el error...
Gracias...
Mañana haré las consultas x separado y comento como me fue...

Etiquetas: jdbc, postgresql, tablas
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:08.