Inserción con JDBC con clave ajena - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Explicación de inserción con conector JDBC en una tabla que tiene clave ajena o foránea
Aquí empiezo vídeo para la consulta de inserción de tablas con relación 1N.
00:00:00
Nos habíamos quedado con una tabla solamente y a partir de aquí vamos a poder insertar datos dentro de una tabla que tiene una relación con clave ajena
00:00:06
y en este caso va a ser de marca y de coches.
00:00:18
En esta primera parte lo que vamos a hacer es crear las tablas, la nueva tabla.
00:00:23
Entonces, teníamos la base de datos de coches, tenemos la base de datos, o sea, la tabla de marcas, vamos a crear una nueva tabla que es la tabla coches.
00:00:28
En esta tabla coches lo único que voy a crear por ahora es un entero del modelo del coche
00:00:37
Que va a ser de tipo barchar
00:00:46
Y luego lo voy a dejar en 100 por ejemplo
00:00:49
Y vamos a crear aquí la clave ajena hacia la marca
00:00:52
Que va a ser, tiene que ser exactamente del mismo tipo que el ID que existe dentro de la tabla marcas
00:00:59
Entonces esto va a ser a su vez también un autoincremento, lo dejo en clave primaria
00:01:08
y esto en vez de coches lo voy a llamar id de coche, que sería mi identificador.
00:01:13
Aquí no tenemos que generar la clave primaria, sino que la creamos en el nombre de la tabla, por supuesto, que es coches.
00:01:23
Y lo guardo así.
00:01:31
Entonces, ahora tenemos una tabla que es coches, que tiene este ID de coche, el modelo y el ID de la marca
00:01:33
Veis que este ID de la marca es el que tiene que ser clave ajena y que apunte a la clave principal
00:01:42
Que es este que es ID de marca, que tiene esta estructura con la clave primaria, este también es autoincremento y la denominación
00:01:49
entonces sobre este
00:01:59
vamos a cambiar la estructura
00:02:01
entonces para poder
00:02:03
hacer que
00:02:05
esto sea clave ajena
00:02:08
aquí en otras bases de datos
00:02:09
no hace falta pero aquí sí que hace falta que esto
00:02:12
sea o bien un campo único
00:02:14
o bien dejarlo como tipo índice
00:02:16
o que el ID de coche sea ese
00:02:18
entonces una vez que lo tenemos
00:02:20
ya marcado
00:02:22
vamos a poder desde aquí decir que
00:02:23
este ID marca
00:02:26
Va a tener una relación con marcas
00:02:27
Pero lo podemos cambiar aquí también
00:02:33
Le digo que esto va a ser una foreign key
00:02:35
Y que va a ir de coches a marcas
00:02:37
Le digo que va a apuntar a la marca que está dentro de la tabla
00:02:42
O sea, dentro de la base de datos de coches
00:02:49
Y en la tabla marcas, con lo cual va a apuntar al ID de la marca
00:02:52
Y esto podríamos tenerlo con restricciones, o sea, de manera que cada vez que se hiciera un delete de una marca, se borraran todos los coches, que en tuyo caso sería esto en Cascade, y siempre que se hiciera una actualización, que sería en el OnUpdate, también esto se modificará en Cascada.
00:02:56
no es el caso, lo que voy a dejar es
00:03:18
en restrict, de manera que
00:03:21
si nosotros queremos borrar
00:03:23
una marca, no nos va a dejar
00:03:25
siempre que haya algún coche
00:03:27
asociado a esa marca, vale
00:03:29
entonces guardo esto
00:03:31
ya tenemos la consulta hecha
00:03:32
y ahora si nos vamos a la base de datos
00:03:35
y nos vamos a ver
00:03:37
el diseño que tiene
00:03:39
pues vemos que tenemos la relación
00:03:40
de las marcas con el coche
00:03:43
vale, de manera que
00:03:45
tenemos la marca
00:03:47
tenemos el ID de marca que va a apuntar a marca
00:03:49
entonces si nosotros queremos
00:03:52
incorporar un coche
00:03:54
inserto
00:03:55
esto puedo dejarlo a cero
00:03:57
puesto que el solo va
00:04:00
a
00:04:02
bueno, pues a incorporarlo
00:04:02
puedo decir que
00:04:06
es un Twingo
00:04:08
que me parece que es de Renault
00:04:10
el ID de la marca
00:04:11
pues no sé cuál es, pero si por ejemplo
00:04:13
le pongo un 7
00:04:15
no me va a dejar en este caso
00:04:17
añadir más que
00:04:19
el valor de las marcas
00:04:23
que ya están incorporadas
00:04:25
lo dejo en este 6
00:04:26
y si desde código
00:04:29
quisiéramos en un momento dado
00:04:31
añadir un código que no existe
00:04:33
me copio este
00:04:35
me voy al SQL
00:04:37
voy a dejar este mismo
00:04:38
y voy a decirle que voy a intentar
00:04:42
meter un código
00:04:45
que sea el 10 por ejemplo
00:04:47
este sabemos que la ID de la marca esta
00:04:48
no existe
00:04:51
intento el insert
00:04:51
dándole a continue
00:04:54
y vemos que esto nos da un error porque
00:04:56
no podemos añadir
00:05:00
algo que
00:05:02
haga
00:05:03
bueno pues que vaya contra
00:05:05
la integridad referencial es decir
00:05:08
que no haya ninguna clave ajena
00:05:10
dentro de marcas asociada
00:05:12
vale o sea que no puedo meter algo
00:05:15
que no esté la marca ya fijada
00:05:16
con lo cual ya tenemos la clave ajena
00:05:18
creada y funcionando sin problemas
00:05:20
vamos a empezar con
00:05:22
viendo que es lo que teníamos hecho
00:05:26
que es dentro del main
00:05:30
dejo esto comentado que eran las inserciones
00:05:31
y si ejecutamos
00:05:34
vemos que tenemos aquí un seleccionar marcas
00:05:36
que va imprimiendo por pantalla
00:05:38
y ahora mismo lo que tengo en la base de datos
00:05:40
es todo esto, Ferrari, Bugatti
00:05:42
Mazda, etc
00:05:44
entonces
00:05:46
Entonces teníamos la parte de la conexión y un marcadao donde tengo las inserciones.
00:05:47
En este caso estoy usando una conexión pero no tengo el tema del enlace.
00:05:56
Sería básicamente igual el hacerlo vosotros con el tema del enlace.
00:06:05
Lo primero que me voy a crear es un elemento que sea coche.
00:06:08
entonces este coche pues va a tener como habíamos visto un ID de coche
00:06:13
que va a ser de tipo privado y va a ser de tipo entero
00:06:19
tal y como tenemos también dentro de la base de datos
00:06:23
aquí el ID va a empezar en minúsculas sin guión bajo
00:06:26
y escrito de acamello como siempre
00:06:31
y va a tener el modelo que sería un string
00:06:34
entonces nos queremos también traer una marca
00:06:37
Y aquí no me voy a traer el ID de marca, sino directamente me voy a traer un objeto de tipo marca que va a conllevar su ID y el nombre que tiene cualquier marca.
00:06:41
Voy a incorporar el constructor vacío, puesto que voy a añadir ahora el constructor con todos los elementos, que va a ser utilizándolo todos los campos.
00:06:54
ahora getters y setters
00:07:13
también selecciono todos y los
00:07:14
incorporo y ahora el toString
00:07:19
que tendría aquí incorporado
00:07:20
este lo tengo sin
00:07:24
el string builder pero no pasa nada
00:07:25
entonces el coche ya lo tengo
00:07:28
generado y tal y como tenemos
00:07:30
un marca.dao pues también voy a necesitar
00:07:32
tener un
00:07:35
una clase que sea
00:07:35
un coche.dao
00:07:39
vamos a tener un dao para cada uno de los elementos
00:07:41
que hayamos generado
00:07:44
dentro de ese coche.dao pues lo que
00:07:45
voy a necesitar es igual que en marcada obtener por ejemplo una inserción de un coche
00:07:47
entonces la conexión la voy a utilizar así podríais utilizar el otro elemento igual que
00:07:55
aquí necesito tener un elemento estático que sea la conexión que voy a usar
00:08:02
entonces la sentencia la tengo aquí lo que voy a hacer una inserción esto ya no me vale de nada
00:08:10
nada, pero en vez de insertar en marcas, lo que voy a necesitar es insertar en coche,
00:08:16
¿vale? Se llama coches. Entonces, lo primero que tengo que mirar antes de insertar en marcas,
00:08:22
o sea, en coches, es comprobar que la marca que tengo, ¿vale? Corresponde con alguna
00:08:30
de las marcas que tengo aquí dentro, si no, me va a dar un error, ¿vale? Y además, la
00:08:37
siguiente derivada sería, si no está la marca, en general lo que voy a querer es que
00:08:44
inserte la marca, ¿vale? O sea, si ya existe, que no la inserte, pero si no existe, que
00:08:49
la inserte, ¿vale? Y me pueden ocurrir dos cosas, que exista la marca con un ID determinado,
00:08:54
porque lógicamente cuando yo vaya a darle un coche, creo que yo voy a lanzarle por aquí,
00:09:02
y realmente todo parámetro va a ser un coche y ahí me va a venir la marca dada, ese coche que importo,
00:09:08
el ID que corresponda a la marca realmente no tiene por qué corresponder, eso para mí es lo de menos,
00:09:19
simplemente es que el nombre esté dentro de la base de datos y realmente no tiene por qué coincidir.
00:09:26
Entonces, esto es lo primero que vamos a hacer
00:09:31
Vamos a preguntar a ver si esa marca está ya dentro de la base de datos que tenemos
00:09:34
Entonces, vamos a hacer una select de marca
00:09:42
En la cual coincida el nombre de la marca con el elemento que yo le estoy pasando
00:09:47
vale, entonces
00:09:54
lo que necesitamos saber es si
00:09:56
de marca
00:09:58
la o
00:10:00
de marca la o, punto
00:10:01
is
00:10:04
marca
00:10:05
en las de datos por ejemplo
00:10:07
y le tengo que pasar
00:10:10
el nombre de la marca
00:10:12
que yo quiero
00:10:13
comprobar, vale, que para
00:10:15
mí sería
00:10:18
get marca punto
00:10:19
get denominación de la marca
00:10:22
que es como habíamos llamado
00:10:24
que ese método no está hecho
00:10:25
esto lo vamos a tener que hacer
00:10:28
entonces si la marca ya está dentro
00:10:29
entonces ya sí que tengo que hacer
00:10:31
todo lo que hay aquí
00:10:34
que sería insertar
00:10:34
en coches
00:10:37
el valor 0
00:10:39
que sería de coche
00:10:40
punto get
00:10:42
no se llama de marca
00:10:44
sino que se llama
00:10:48
.get
00:10:49
modelo
00:10:51
y además tendré que pasarle
00:10:52
después del modelo
00:10:55
aquí
00:10:57
tendré que darle también
00:10:58
el
00:11:01
identificador
00:11:02
que corresponde
00:11:04
a la
00:11:07
esto aquí
00:11:08
que coincida con el más
00:11:11
es el que borra
00:11:13
eso es
00:11:16
y tendría que ser de coche
00:11:18
punto get
00:11:22
el marca
00:11:24
punto
00:11:26
esto no me gusta mucho
00:11:27
el get id de marca
00:11:32
de aquí
00:11:34
porque no necesariamente yo tendría
00:11:34
por qué pasarle un id de la marca
00:11:38
con el coche que le estoy pasando
00:11:39
entonces lo que vamos a hacer es que
00:11:41
desde aquí crearme un entero
00:11:43
que sea el id de marca
00:11:46
que en principio esté a cero
00:11:50
y a ese id de marca
00:11:52
que es al que voy a asignar
00:11:54
¿vale?
00:11:59
this marca en vez de esto
00:12:03
me va a dar un
00:12:05
un boolean
00:12:05
realmente
00:12:08
pero pues le vamos a decir
00:12:09
que
00:12:13
devuelva un número distinto
00:12:13
de cero en el caso
00:12:17
en el que haya encontrado algo, ¿vale? Que devuelva, este lo vamos a hacer que devuelva
00:12:19
un entero mejor. Entonces, si el ID que le voy a asignar a marca, que si este es distinto
00:12:24
de cero, va a ser mi pregunta. Y así solucionamos mejor. Entonces, me faltaría hacer este método,
00:12:33
vale
00:12:41
si eso, pues simplemente
00:12:43
incorporo esto y en vez de darle
00:12:45
este id de marca
00:12:48
mejor
00:12:49
recojo el que he recogido
00:12:50
vale, o sea, simplemente compruebo por nombre
00:12:53
y ya una vez
00:12:56
que lo tenga, pues inserto
00:12:58
entonces lo que me queda es
00:12:59
comprobar si
00:13:01
este id de marca
00:13:03
está o no está
00:13:06
vale, entonces
00:13:07
Vamos a hacer un, si la marca está dentro de la base de datos, tenemos que hacer una select en la cual recojamos después el ID.
00:13:09
Entonces, si voy a llamar a, esto es un public, pues puedo hacer un seleccionar marcas que está dentro del mismo.
00:13:26
No, pero le tendría que pasar el nombre. Tengo que hacer un seleccionar marcas distinto.
00:13:33
vale, pues entonces
00:13:39
vamos a copiarlo y pegarlo tal cual
00:13:41
aunque no haría falta hacer tanto rollo
00:13:43
pero bueno
00:13:46
también devuelvo
00:13:46
un result set, voy a recoger
00:13:50
solamente el
00:13:52
id de la marca
00:13:53
from marcas
00:13:55
y en el cual
00:13:56
la denominación de la marca
00:14:00
sea igual
00:14:02
a el den marca
00:14:04
que yo le he pasado
00:14:06
vale
00:14:07
entonces nos faltaría hacer esto
00:14:08
que aparezca la comilla
00:14:11
ahora le pongo el de enmarca
00:14:13
más
00:14:15
doble y con comilla
00:14:16
dentro, vale, esta sería
00:14:19
mi select, select el id
00:14:21
de marca from marcas, fuerte en
00:14:23
marca, sea esto
00:14:25
ejecutamos el query
00:14:26
entonces le vamos a decir que
00:14:28
si
00:14:33
y
00:14:34
rsnext
00:14:35
que esto yo creo que nos da un true
00:14:37
vale
00:14:40
entonces
00:14:41
no devuelvo nada sino simplemente
00:14:43
no necesito generarme
00:14:46
nada por el estilo que me va a devolver
00:14:49
es un entero
00:14:50
vale
00:14:51
entonces
00:14:52
me voy a crear ese entero
00:14:54
el id de marca
00:14:57
y le digo
00:15:00
que el id de marca
00:15:02
le asigno
00:15:03
rs
00:15:10
get int
00:15:11
de id de marca
00:15:13
o de cero como queráis
00:15:15
¿vale? y devuelvo
00:15:17
el id de marca
00:15:19
este retón cero es el que tenía
00:15:21
de antes ya
00:15:25
vale, entonces esto es lo que me va a devolver
00:15:26
va a devolver un entero
00:15:28
en el caso en el que esta select
00:15:30
devuelva un valor
00:15:33
y si no, pues me tendría que devolver 0
00:15:34
que es con el valor con el que yo inicializo el ID de la marca
00:15:38
y si existe, lo que me va a devolver es el ID
00:15:41
voy a probar a ver si esto está funcionando bien
00:15:45
antes de hacer el insert
00:15:49
como práctica
00:15:51
y entonces
00:15:57
Entonces, para eso lo vamos a probar desde nuestro principal.
00:16:00
Tenía aquí toda la selección de marcas que le voy a dejar tal cual.
00:16:13
Voy a escribir aquí para diferenciar todo lo que tengo a continuación.
00:16:17
Y lo que voy es a crear un nuevo coche, que es el que yo voy a querer insertar, que va a ser un nuevo coche de, pues, teníamos Toyota, ¿no?
00:16:26
Importo el coche y va a ser, voy a poner un número cero porque voy a insertar como cero, eso me da igual.
00:16:49
y va a ser por ejemplo un verso
00:16:55
y la marca
00:16:57
tenemos que hacerlo como una marca
00:17:00
de la marca Toyota
00:17:03
que el ID me va a dar igual
00:17:06
porque podría tener cualquier ID
00:17:09
que en principio no debería depender
00:17:12
del ID que yo tuviera
00:17:14
porque no tengo porque sabes realmente
00:17:16
los IDs que haya
00:17:18
y con ese
00:17:19
Como le he dicho que escribo por el otro lado
00:17:21
Y todavía no voy a insertar nada
00:17:26
Pues simplemente voy a hacer que
00:17:27
De coche he dado
00:17:30
Coche he dado
00:17:31
Punto insertar una
00:17:33
Marca, lo llamo insertar una marca
00:17:35
Es que no lo he cambiado
00:17:38
Insertar un coche
00:17:39
Un coche
00:17:41
Y un coche he dado también
00:17:44
Insertar un coche
00:17:46
Vale
00:17:47
pues vamos a ver si esto
00:17:52
funciona bien, inserto el coche C
00:17:54
vale, entonces
00:17:57
continúo por aquí
00:17:59
esto es lo que está dando un fallo
00:18:00
porque había puesto el ID
00:18:03
de marca que pertenecía al coche
00:18:05
no el ID de marca tal y como está aquí
00:18:06
así que lo voy a sustituir por el 1 que es más fácil
00:18:08
entonces si ejecuto
00:18:11
veis que Toyota corresponde al 6
00:18:12
entonces
00:18:14
desde aquí está encontrando
00:18:15
bien la marca que corresponde
00:18:18
entonces nos faltaría terminar esto
00:18:20
en el momento en el que encuentre una marca
00:18:21
que inserte los valores del coche donde corresponde
00:18:24
y que nos devuelva en un momento dado
00:18:29
el número de filas que ha insertado
00:18:31
que esto podría devolver un boolean
00:18:33
y que nos devuelva desde el retorno
00:18:37
el row inserted
00:18:39
pero tengo esto que declararlo
00:18:43
aquí fuera
00:18:46
para luego poder utilizarlo
00:18:48
¿vale? Y probablemente me dirá que lo inicialice. Return row inserted, que inicialice el valor
00:18:51
y ya está, lo tengo a false. Vale, entonces, el insertar un coche, si existe, o sea, la
00:19:05
marca ya existe, entonces yo no necesito insertar la marca. ¿Qué pasaría con el else? Pues
00:19:15
con el else, quizás sería más sencillo, en el sentido de que solamente hay que insertar,
00:19:21
hay que hacer las dos cosas, hay que insertar en el coche, ¿vale? Con la marca que tenga
00:19:28
y además tengo que, bueno, no sería más sencillo porque tengo que hacer la otra versión
00:19:40
que es insert into marcas. Bueno, esto no me hace falta hacerlo. Realmente podría llamar
00:19:45
a marca.insertar. A ver si me sugiere. No me sugiere. Voy a grabarlo. A ver si así
00:19:54
Vamos a ver qué hay. Insertar una marca y le tengo que pasar la marca que quiero que inserte que va a ser decoche.getmarca, ¿vale?
00:20:10
Y lo malo ahora es que yo no sé cuál es el código con el que ha insertado este getmarca, ¿vale?
00:20:40
Entonces igualmente voy a tener que preguntar cuál es el id que le corresponde a esa marca que acabo de insertar, ¿vale?
00:20:50
Con lo cual otra vez tendría que hacer esto.
00:21:00
Pero ahora ya sé que está insertada porque lo acabo de hacer.
00:21:04
entonces que me devuelva
00:21:06
de aquí
00:21:09
el deadmark
00:21:10
y ya
00:21:13
pues simplemente
00:21:15
haría el insert into coche
00:21:17
entonces como veis que esto se me repite las dos veces
00:21:19
y al final es exactamente igual
00:21:21
porque al final lo que he hecho es
00:21:23
asociar ese id que acabo de insertar
00:21:25
ahí
00:21:28
pues lo que voy a hacer es borrarlo de aquí
00:21:28
y ponerlo fuera del if
00:21:31
y se ha acabado
00:21:33
vale entonces en un caso
00:21:34
O sea, siempre voy a insertar en coches con el ID de marca que tenga, pero en un primer caso he necesitado, o sea, si ya está, no hago nada más que asignárselo, pero si no está, es cuando tengo que insertarla.
00:21:36
entonces
00:21:54
casi lo que vamos a hacer es
00:22:00
simplemente
00:22:02
dejarlo a que si es igual
00:22:03
que lo inserte y que no haya
00:22:06
ese
00:22:08
y aquí yo creo que me falta
00:22:09
que me sobra
00:22:12
dice
00:22:14
vale pues ya tendría el caso
00:22:15
general en el que puedo tener
00:22:20
coches para insertar
00:22:22
que ya esté la marca dentro
00:22:24
y puede haber otros
00:22:28
en el que la marca no esté dentro
00:22:30
entonces ya automáticamente
00:22:31
también va a insertar la marca donde tiene que haber
00:22:34
vamos a hacer
00:22:36
los dos casos, este sería
00:22:37
este primer caso en el que sí
00:22:39
que el coche ya tiene esa marca
00:22:42
y ahora voy a
00:22:44
crear otro más que sea
00:22:46
el uno
00:22:48
y este voy a llamarlo
00:22:51
coche nuevo que marca guía. Y ya con esto tendríamos que insertar este otro coche que
00:22:54
Aquí no me tiene por qué dar ningún mensaje, pero pues voy a actualizar, ¿vale?
00:23:20
Entonces tenemos la nueva marca que he insertado, este de Toyota, aquí en coches, pues tenemos el que había metido antes con la marca, este es Toyota, este no es Toyota, este es Renault, pero bueno, lo había metido así a web.
00:23:35
Y luego el logo que acabo de meter con la marca Toyota, que es la que he insertado el tamaño de la base.
00:23:52
¿Vale?
00:24:01
Bueno, pues esto sería en cuanto a la inserción.
00:24:02
Vamos a hacer ahora la select de cualquiera de los inventos.
00:24:06
Vale, entonces, para hacer la select, pues igual vamos a necesitar aquí dentro de coche DAO
00:24:14
realizar esa selección
00:24:23
nos vamos aquí
00:24:25
a hacer una select
00:24:32
entonces vamos a empezar desde marca
00:24:33
que sería, voy a coger este mismo
00:24:35
de seleccionar que va a ser similar
00:24:39
y desde aquí, desde el coche
00:24:41
vamos a hacer esa selección
00:24:43
pero en vez de seleccionar marcas
00:24:45
vamos a seleccionar coches
00:24:47
y vamos a obtener un listado
00:24:49
de coche
00:24:51
esto va a ser
00:24:52
listado de coche
00:24:55
Arrae list de coche
00:24:57
Y lista
00:25:00
Coches
00:25:02
El result set igual
00:25:03
La conexión igual
00:25:06
Entonces vamos a seleccionar
00:25:07
Vamos a tener que seleccionar
00:25:10
De coches
00:25:13
Y de marcas
00:25:15
Porque van a ser las dos cosas
00:25:16
Lo que vamos a necesitar
00:25:17
Para generar toda la lista
00:25:20
Entonces esto
00:25:21
En vez de un new marca
00:25:24
Lo voy a quitar
00:25:25
Y vamos a ir añadiendo a lista coches lo que vayamos necesitando
00:25:27
Entonces lo primero, la select vamos a realizar
00:25:33
Si queréis la hacemos aquí primero y así veis que funciona como debe ser
00:25:37
Entonces tendríamos aquí estos tres elementos
00:25:42
Si queréis no hace falta realmente punarlo
00:25:47
Tendríamos el coche, el modelo
00:25:50
voy a hacer primero con los dos
00:25:53
y vamos a recuperar
00:25:55
tanto de coches como de marcas
00:25:58
de marcas
00:26:00
y desde aquí vamos a seleccionar
00:26:08
de marcas
00:26:13
el ID ya lo tenemos
00:26:13
y va a ser
00:26:15
la denominación
00:26:18
de la marca
00:26:19
Entonces, si ponemos el ID de marca así, necesitamos decirle que como está en dos tablas distintas, pues podría ser de coches o puede ser de marcas
00:26:21
Entonces hay que definir de qué tabla vamos a recuperar los datos
00:26:33
Podéis establecer alias o no establecer alias, no da igual
00:26:39
Pero aquí tendremos que decirle que el ID de la marca tiene que coincidir exactamente con el de marcas, punto, el ID de marca, ¿vale? Para que filtre sobre el join que hace de las dos tablas.
00:26:45
al hacer el join haría la mezcla
00:27:02
de todos los campos de unos con otros
00:27:04
y nos daría información
00:27:06
que no es la que queremos
00:27:08
entonces con esto
00:27:09
pues ya veis que estamos, lo que vamos a querer
00:27:11
obtener al final es el ID del coche, el ID
00:27:14
de la marca y la denominación
00:27:15
y que corresponde
00:27:17
todos los datos
00:27:19
solamente aquellos coches
00:27:21
que están dentro de la tabla y con las
00:27:23
marcas y el nombre de la marca que le corresponde
00:27:25
entonces
00:27:28
con esto ya tendríamos
00:27:29
select montada
00:27:31
que podéis
00:27:32
casi poner aquí
00:27:35
directamente
00:27:37
no hace falta ni ponerle
00:27:38
tanto el modelo
00:27:43
vale, esto es de
00:27:46
marcas, de coches
00:27:47
en el que
00:27:50
esto corresponde a eso
00:27:51
vale, ejecutaría la query
00:27:53
pero ahora
00:27:55
tendría que ir recuperando
00:27:56
todos los datos
00:28:00
y para eso pues tendré que hacer un new coche en el que recupero el id del coche que sería lo primero
00:28:00
rs.getint de 1, empieza en 1 siempre, luego el modelo va a ser el getString con la segunda columna que es la 2
00:28:08
el tercer elemento
00:28:26
realmente va a ser
00:28:29
la marca en el
00:28:31
constructor de coche
00:28:33
si os acordáis dentro del constructor de coche
00:28:34
tenemos el ID
00:28:37
el modelo y ahora la marca
00:28:39
con el cual me voy a tener que generar
00:28:41
mi marca
00:28:43
con el cuarto elemento
00:28:43
que para mí es
00:28:46
rs.getin
00:28:48
de este
00:28:50
que es el tercero
00:28:53
Y a continuación vendría el GetString del cuarto elemento.
00:28:55
Ya tendría mi lista de coches, en el que está una marca dentro del coche que me he generado.
00:29:05
Desde el principal, ¿qué voy a hacer?
00:29:13
Pues llamar a coche.seleccionar coches.
00:29:14
esto me va a devolver una lista
00:29:24
pues igual que tenía aquí
00:29:26
voy a hacer con la lista
00:29:28
debería de comentar esto
00:29:30
o insertar
00:29:37
a lo mejor
00:29:39
un par de coches más
00:29:40
que podría ser
00:29:42
DMV
00:29:44
no sé si es un X5
00:29:52
y si queréis
00:30:00
pues ponemos
00:30:05
un Q5
00:30:06
de Audi
00:30:08
la nueva marca ya la teníamos
00:30:10
bueno pues fenomenal
00:30:16
inserta uno y otro y ahora
00:30:17
que nos seleccion
00:30:20
y con esto pues tendríamos ya
00:30:21
los cinco coches que tenemos ya
00:30:26
los dos que acabamos de insertar con la denominación de la marca y el ID de la marca que tiene
00:30:30
el coche. Y así es como vamos a trabajar en Java, o sea, con la lista de todos los
00:30:36
elementos que ya hacen la relación aquí dentro de un dato y otro. Es como habéis
00:30:42
estado trabajando hasta ahora en Java, ¿vale? Pero realmente dentro de la base de datos
00:30:47
no corresponde con la forma que tienen en las tablas. Pero con el resto sería igual,
00:30:51
Vale, dejo este momentín. Y aquí esto es lo que os paso. También lo dejo el archivo en los ejercicios de clase. Vale, pues hasta luego.
00:30:58
- Idioma/s:
- Autor/es:
- Leticia Riaza
- Subido por:
- Maria Leticia R.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 5
- Fecha:
- 21 de mayo de 2024 - 12:39
- Visibilidad:
- Clave
- Centro:
- IES TETUAN DE LAS VICTORIAS
- Duración:
- 31′ 15″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 106.46 MBytes