Java - Ayuda! Necesito ayuda con el Botón modificar!!

 
Vista:
sin imagen de perfil
Val: 6
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Ayuda! Necesito ayuda con el Botón modificar!!

Publicado por Elvin (2 intervenciones) el 18/11/2019 22:32:13
Buenas y disculpe las molestias, soy una persona bastante que no tiene mucha experiencia, no logro hacer que el boton midificar funcione pues tengo dos tablas relacionadas entonces la llave foranea no me permite modificar ninguna de las tablas que debo hacer, he estado indagando y es algo relacionado con el on cascade pero nada, absolutamente nada e internet aparece que me sea util! necesito ayuda como puedo modificar en cascada??? osea como lo implemento en java pues uso mysql workbench y alli declare las variables en cascada y bien pero en java no necesito ayuda!! urgente.

asasa

sas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Billy Joel
Val: 1.826
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda! Necesito ayuda con el Botón modificar!!

Publicado por Billy Joel (475 intervenciones) el 18/11/2019 23:17:24
Lo que pasa es que no puedes poner cualquier valor en el campo padre de la tabla Hijo.
Para poder insertar un valor en la tabla Hijo primero debes tener registros en la tabla Padre y las llaves que tienes de ésta son los que podrían estar en la tabla Hijo.

A nivel de Java lo que intriga es como dejan las conexiones abiertas sin cerrarlas...

En la línea 206 debes colocar un id que esté registrado en la tabla Padre.

Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 6
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Ayuda! Necesito ayuda con el Botón modificar!!

Publicado por Elvin (2 intervenciones) el 19/11/2019 02:42:33
Entiendo señor, pero no hay una forma mas directa? vi un codigo de un profesor que decia on cascade por que tener un id, es una solución no tan practica cuando hay que llenar dos formularios separados! con el cascade es mas sencillo por que lo haria en cascada en mysql lo hace pero no tengo idea de como implementarlo en java, tiene alguna idea?

por que supongamos que tengo dos formularios uno represenante y otro alumno, cuando llenemos el formulario alumno no podremos introducir la cedula del representante por que no es su id! y para conectarla lo que se me ocurre es que cuando ingrese la cedula haga una mini consulta donde me traiga el id asociado a esa cedula y agregue al campo foraneo pero es muy tedioso y poco pratico.... Y para traer a un representante por la cedula de el alumno mas aun

tiene alguna otra solucion que no sea usando id?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lawliet
Val: 885
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda! Necesito ayuda con el Botón modificar!!

Publicado por Lawliet (302 intervenciones) el 19/11/2019 04:47:20
Hola!

Es correcto lo que mencionas del CASCADE pero no es la función que tiene realmente; es decir, que el hecho de que este CASCADE significa que se actualizaría toda la información con pasar un único ID.

Captura

En la tabla padre tienes el campo_uno el cual lo puedes actualizar pasando como condición el id_padre de ese registro para actualizar la información.
En la tabla hija tienes el campo_dos y el estado el cual lo puedes actualizar de dos formas:
1.- Si el campo a actualizar no es por registro; es decir, necesitas afectar a todos los registros que estén relacionados a ese padre, entonces puedes pasar en la condición el id_padre para afectar todos los registros relacionados a ese padre.
2.- Si el campo a actualizar si es necesario que sea por registro; es decir, si tienes dos registros hijos del padre 1 y necesitas actualizar solamente el registro 1 sin afectar la información del registro 2 aun cuando son del mismo padre, entonces pasar en la condición el id_hijo solamente para afectar a ese registro.

El CASCADE tiene como principal objetivo borrar los registros de la tabla dependiente cuando se borra el registro de la tabla principal (en una sentencia DELETE), o actualiza el valor de la clave secundaria cuando se actualiza el valor de la clave referenciada (en una sentencia UPDATE), no obstante, no actualiza la información de los campos que componen a dichas tablas; es decir, si tu haces un UPDATE sobre la tabla hija para actualizar el campo_dos pasando como condición un id_padre el cual no exista en la tabla padre obviamente te va a mandar error, eso ya sea en Java o cualquier otro lenguaje incluso en el mismo gestor de base de datos te mandará un error, incluso si quieres actualizar un campo de tu tabla padre con un id el cual no existe, igualmente te mandará un error.

Si lo que deseas es evitarte un UPDATE doble por así decirlo; es decir, un UPDATE para la tabla padre y otro UPDATE para la tabla hija, te recomiendo que trabajes bajo un Framework de persistencia como lo es Hibernate. Con dicho Framework lo que haces es no ejecutar consultas directamente en base de datos, sino más bien métodos que te permiten actualizar una tabla mediante un objeto, en el caso de las tablas relacionadas lo que haces es pasar un objeto padre con su objeto hijo lleno y eso se actualiza en base de datos.

Sin más que comentar, quedo al pendiente de cualquier duda y/o comentario.

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar