20260226 Repaso_1 - 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:
Vale, entonces la arquitectura
00:00:00
estándar para nosotros
00:00:05
para practicar JDBC
00:00:07
pues ya está, simplemente nuestro modelo
00:00:08
de toda la vida, en este caso es el que nos
00:00:11
dio ChagPT
00:00:13
Sí, sí, sí, en este caso
00:00:15
es el que nos dio ChagPT que era más
00:00:19
feo que yo que sé
00:00:21
feísimo
00:00:22
pero daba igual porque
00:00:24
lo que queríamos era practicar
00:00:27
sentencias JDBC
00:00:28
y ya está, entonces nos adaptamos a este modelo
00:00:31
que era más feo que yo que sé, pero bueno
00:00:33
da igual, y de hecho
00:00:35
vale, entonces luego ya
00:00:36
hicimos un
00:00:39
DAO pataterillo, ni implementación ni nada
00:00:41
que nos sirvió pues un poco
00:00:43
para recordar que
00:00:47
DAO fuera de mis
00:00:49
casos de uso
00:00:51
acceso a base de datos puro y duro
00:00:52
casos de uso en servicio
00:00:55
Entonces el dao este
00:00:57
Pataterillo
00:00:59
Pues lo
00:01:01
El dao este pataterillo
00:01:03
¿Qué?
00:01:08
Sí, ¿verdad?
00:01:12
Pero este
00:01:14
Esta
00:01:16
Esta selet
00:01:16
Ya, pero dijimos
00:01:18
Esta sentencia
00:01:21
De hecho se la pedimos a CharGPT
00:01:23
¿Vale?
00:01:25
Claro, porque
00:01:26
A ver
00:01:29
Ayer, por ejemplo
00:01:30
Me escribe, empieza la historia de la abuela cebolleta
00:01:33
Vale, pero va a ser muy breve
00:01:36
Ayer me escribe
00:01:37
Un alumno de hace
00:01:40
Tres años
00:01:41
Que está trabajando en este
00:01:43
Mabel
00:01:45
Sí, Mabel
00:01:46
Y me dice
00:01:47
Creo que tenéis que empezar a usar la IA en clase
00:01:51
Porque
00:01:53
nosotros tenemos, ya nos han dado ya los protocolos
00:01:56
de arriba y abajo, y la tenemos que usar
00:01:58
continuamente, para todo
00:02:00
entonces yo creo que tenéis que empezar
00:02:02
a dejar de hacer las consultas vosotros
00:02:04
tenéis que empezar a dejar de hacer eso, porque eso no se hace
00:02:06
conclusión, lo que llevamos
00:02:09
haciendo todo el curso
00:02:11
ya sabéis chicos, que no usáis la IA, usadla
00:02:12
si alguno se haya planteado
00:02:14
no usarla, que la use
00:02:16
¿qué quiero decir con esto?
00:02:19
que para el examen va buena
00:02:21
vale, pero entonces os pongo un proyecto
00:02:23
real. Y nos estamos aquí
00:02:25
siete horas.
00:02:27
No, no es tan sencillo.
00:02:30
Si estuviéramos hablando con bases de datos reales,
00:02:33
con modelos de negocio reales que te ponen un montón
00:02:35
de restricciones.
00:02:37
Ya, pero es que entonces si quisiéramos
00:02:39
evaluar así con el uso de ChagPT, tendríamos
00:02:41
que ver un modelo, o sea, tenemos que poner
00:02:43
un proyecto de esa envergadura.
00:02:45
Lo podríamos, usaríamos SIA y sería la mejor
00:02:47
forma de evaluar. Necesitaríamos diez horas
00:02:49
y ya está y sería la mejor manera, pero no podemos.
00:02:50
Entonces, algo sencillito no usaría
00:02:53
para ver si las destrezas están más o menos cogidas
00:02:55
y ya está, y nos vamos todos a casa.
00:02:57
Es la idea. Vale.
00:02:59
Entonces, ¿qué quería decir yo con esta historia?
00:03:01
Que esta se la pedimos a HGPT.
00:03:03
¿Por qué? Porque a mí no me interesa
00:03:05
ni a vosotros os interesa
00:03:07
tener un dominio del SQL.
00:03:08
Os interesa saber de qué va, que eso ya lo sabéis.
00:03:11
¿Vale? Pues entonces
00:03:13
le pedimos la consulta y como somos
00:03:15
tan listos, en cuanto la vemos,
00:03:17
pues ya está, entendemos lo que
00:03:20
hace. ¿Vale?
00:03:21
O bueno, no sé si en cuanto la vemos,
00:03:22
Pero a lo mejor al minuto
00:03:24
Más o menos al minuto
00:03:25
Yo lo mismo me tiro
00:03:27
Para entender esa tendencia
00:03:30
15-20 minutos fácil
00:03:31
Bueno, sí, yo también lo digo
00:03:33
También
00:03:35
Pero bueno, otro debate sería
00:03:38
¿Dónde ponemos la frontera?
00:03:40
Porque si se nos mueren las neuronas
00:03:42
Tenemos un problema
00:03:45
Mira, te voy a traer la ficha
00:03:46
Que le llevo a mi padre para el deterioro cognitivo
00:03:50
que no nos vendría nada mal hacer
00:03:52
de vez en cuando todos
00:03:54
literalmente somos la generación
00:03:55
esta generación nueva tiene menos
00:03:58
inteligencia que la anterior
00:04:00
no, eso no es verdad
00:04:01
eso dicen, el cociente bruto
00:04:04
la medida del cociente bruto
00:04:06
es la primera que ha bajado en muchísimos años
00:04:07
bueno, pues tendréis que suplirlo con otras cosas
00:04:09
no hay otra
00:04:17
vale, bueno, pues entonces
00:04:18
esta sentencia era
00:04:20
exclusivamente para hacer un
00:04:22
find all, que es
00:04:24
sácame la sede
00:04:27
con todos sus proyectos
00:04:28
asociados, pues para hacer un find all
00:04:30
sede con todos los proyectos
00:04:33
esta sentencia de aquí
00:04:35
en el examen
00:04:36
muy bueno
00:04:38
sentencias más sencillas, vale
00:04:40
o a lo mejor sentencias que ya están
00:04:42
hechas, pero por alguna razón algo no funciona
00:04:44
y tendréis que ver por qué no funciona
00:04:46
eso me suele gustar más
00:04:49
algo que hago
00:04:50
Cambio las cosas
00:04:52
Las quito, las pongo
00:04:55
Cambio alguna cosa mal, no muy a pillar
00:04:56
Y decir, arreglámelo, encuéntramelo
00:04:58
Eso me gusta más
00:05:01
¿Vale? Pero ya veremos, no lo he puesto todavía
00:05:02
Bueno, pues
00:05:05
El problema, aquí no era
00:05:06
Tanto la sentencia
00:05:08
Porque la sentencia se la pide uno a HGPT
00:05:09
Y ya está sabiendo lo que tiene que pedir, claro
00:05:12
Sino ahora, hacer el mapeo
00:05:14
Que es la parte
00:05:17
Que nos hace Hibernate
00:05:19
pues hacer el mapeo del result set
00:05:20
pues nada, aquí es donde nos estuvimos
00:05:23
un ratito, porque es que estos no paraban
00:05:25
de decir, así no, así no, así no
00:05:27
y nos estuvimos dos horas
00:05:29
bueno, pues estuvimos creando
00:05:30
las sedes, añadiendo los proyectos
00:05:33
a las sedes, etcétera
00:05:35
y así creamos nuestra colección de sedes y devolvimos
00:05:36
y ya está, y luego nos
00:05:39
hicimos un caso de uso y se acabó
00:05:41
bueno, antes de nada
00:05:43
lógicamente la conexión
00:05:45
la sentencia y la conexión
00:05:47
la metimos en un singleton por aquí
00:05:49
y ya está
00:05:51
que sacábamos las propiedades y ya está
00:05:52
que esa va a ser la arquitectura del examen
00:05:55
también, va a ser esa
00:05:58
y
00:05:59
exacto
00:06:01
y aquí el caso de uso que hicimos
00:06:04
pues es usar ese find all
00:06:06
para ver la sede con más proyectos
00:06:10
entonces nos sacamos
00:06:11
todas las sedes
00:06:13
Aquí sacamos primero
00:06:17
El máximo
00:06:20
De esta colección
00:06:21
Y luego ya nos
00:06:24
Buscamos
00:06:25
La sede
00:06:27
Con este filter, buscamos la sede
00:06:30
Que tenía este máximo, muy retorcido
00:06:32
Porque aquí podíamos haber metido
00:06:34
Ya un comparador
00:06:36
Vale, entonces, que era lo único
00:06:37
Lo único que había que cambiar para que esto
00:06:39
Funcionara, lo único
00:06:42
Que yo aquí, como estábamos escribiendo así muy rápido
00:06:43
puse un null
00:06:46
directamente porque pensaba en el sort
00:06:48
de colecciones, que ya sabéis que el sort
00:06:49
si no le das un comparador
00:06:52
te usa el orden natural que está establecido
00:06:53
en el comparable, te usa el orden natural
00:06:56
y no max, no, max no es como el sort
00:06:57
te exige un comparador, entonces el comparador
00:07:00
se lo puedes dar de muchas maneras, pero siempre
00:07:02
tienes la clase
00:07:04
comparator, donde
00:07:05
tú puedes de aquí, ¿vale?
00:07:08
sacar comparadores
00:07:10
tuyos específicos que has creado
00:07:11
O comparadores que ya están hechos
00:07:14
Como este
00:07:16
Entonces
00:07:17
Este es el comparador natural
00:07:19
Claro
00:07:22
El orden natural que tenga esa entidad
00:07:27
Que tiene que tenerlo
00:07:30
Si no lo tiene pues
00:07:31
Aquí lo único es que nos complicamos mucho la vida
00:07:32
Porque si le hubiéramos dado ya
00:07:35
Un comparador específico
00:07:37
Adaptado a nuestro criterio de orden
00:07:40
Que nuestro criterio de orden
00:07:42
Era el tamaño de la colección
00:07:44
Pues ya está
00:07:46
Nos hubiéramos ahorrado luego hacer esta segunda parte
00:07:47
¿Vale?
00:07:49
Eso lo podríamos haber hecho
00:07:56
Con este
00:07:58
El comparador que yo quiero es de enteros
00:08:01
Porque queríamos comparar
00:08:03
Este de aquí
00:08:05
Queríamos comparar
00:08:06
Este, queríamos comparar
00:08:08
Pues
00:08:13
x.get
00:08:16
No, ¿dónde estamos aquí?
00:08:21
Aquí le tenemos que meter
00:08:24
el criterio de comparación
00:08:25
A ver, ¿cómo era esto?
00:08:27
Aquí hay un nuevo comparador
00:08:30
No, porque le tengo que
00:08:31
pasar el tamaño de
00:08:41
Ah, no, espérate, es que este map
00:08:43
es el que me sobraría. Vale, en este caso
00:08:45
Espera, vamos a ponerlo en otro sitio
00:08:47
Es que el map de arriba es el que me sobraría
00:08:49
A ver, este
00:08:51
Esta sería
00:08:53
Una opción
00:08:55
Y la otra sería
00:08:57
Irmax igual a
00:08:58
Dao.
00:09:01
Dao.findall
00:09:04
Dime
00:09:05
Tiene guardia
00:09:06
Y creo que está en el aula de segundo de SMRB
00:09:11
Guardando
00:09:13
Sí
00:09:14
Sí, está justo enfrente
00:09:15
Un poquito a la izquierda
00:09:18
Vale, entonces
00:09:19
Aquí
00:09:21
Esto sería
00:09:22
Vamos a hacer un comparador
00:09:26
Me falta el string, jolines
00:09:29
FindAll.String
00:09:31
Este max fuera
00:09:33
Este de aquí
00:09:37
FindAll.String
00:09:39
Vale
00:09:44
Y ahora ya
00:09:45
esta cadena es una cadena de sedes
00:09:46
y yo tengo que fijar
00:09:50
un comparador
00:09:51
entre las sedes
00:09:53
pero basado en una transformación
00:09:55
de esas sedes a entero
00:09:58
que es el tamaño de su
00:09:59
colección de proyectos
00:10:01
entonces esa transformación a enteros
00:10:04
me la daría el comparing int
00:10:06
y aquí
00:10:08
tengo que poner, entiendo que
00:10:10
esta función
00:10:12
Exacto, .size
00:10:13
X.get
00:10:15
Proyectos
00:10:17
.size
00:10:19
¿Vale?
00:10:20
Entonces, esto
00:10:23
Pero lo voy a bajar aquí abajo
00:10:25
Me extraería ya directamente
00:10:26
El máximo de este stream
00:10:29
El máximo basado
00:10:31
En este criterio de comparación
00:10:33
Creo
00:10:35
El proyecto con esa colección
00:10:37
Más larga
00:10:40
claro, y ahora yo ya de este
00:10:40
pues yo saco el
00:10:43
el
00:10:45
o con get directamente
00:10:47
si soy cutre
00:10:49
o si es null
00:10:50
lanza una excepción
00:10:53
aquí lo único, cuidado, porque si
00:10:53
fuera null, me saldría un no pointer
00:10:57
excepción, pero como yo ya lo tengo instanciado
00:10:59
para que no pueda ser null nunca
00:11:01
yo creo que te lanzará una excepción
00:11:02
de
00:11:07
un runtime genérico
00:11:07
supongo, no lo sé, pero bueno
00:11:11
al menos te avisa, si no
00:11:13
lo ideal sería crear nosotros una nuestra
00:11:14
y aquí ponerle un new
00:11:17
porque este método está sobrecargado
00:11:19
pero el comparín te saca el mayor
00:11:20
no, esto en la clase comparator
00:11:22
en general es para crear criterios de comparación
00:11:25
tú puedes hacer tus propios comparator
00:11:27
o puedes directamente
00:11:29
mediante los métodos que te ofrece comparator
00:11:30
pasándole ya la
00:11:33
implementación
00:11:34
del comparator directamente o interfaz funcional
00:11:36
entonces aquí
00:11:39
nuestro criterio de comparación va a ser
00:11:40
este momento porque es
00:11:43
entre una transformación entero
00:11:45
de cada esto, pero bueno tampoco quiero que nos perdamos mucho aquí
00:11:47
porque no vamos a meternos en cosas
00:11:49
estas en el examen
00:11:51
pero bueno la idea es entenderlo
00:11:52
y si nos lo ofrece
00:11:55
cuando le pedimos
00:11:56
hombre claro
00:11:58
pues si yo entenderlo
00:12:00
uy no me hagas preguntas
00:12:02
No, no voy
00:12:05
O sea, no voy
00:12:08
Es decir, esto es lo que está
00:12:09
Esto sobraría ahora
00:12:10
Claro, es que este
00:12:12
Claro, es que este también sobraría
00:12:14
O sea, es que esto era para el modelo anterior
00:12:16
Ahora nos quedaríamos solamente con esto
00:12:19
Es decir
00:12:21
O todo esto
00:12:23
Que es una forma muy larga
00:12:25
De llegar
00:12:27
Que sería una forma muy larga
00:12:28
¿Vale?
00:12:30
Pero que fue la que nos salió de corrido el otro día
00:12:32
porque era de corrido
00:12:35
sin consultar nada y sin mirar nada, no salió esta
00:12:37
y ya está, ¿vale? y esta hubiera sido
00:12:39
una forma más cortita
00:12:41
y
00:12:42
se me ha quedado una barra, vale
00:12:44
y entonces, pues
00:12:46
con este proyecto, que podría ser
00:12:49
pues un proyecto como el examen
00:12:51
o el del examen, pues podríamos aquí
00:12:53
pedir
00:12:55
más
00:12:56
métodos de DAO o más métodos de estos
00:12:58
o pedir un DAO relacionado
00:13:01
con alguna de estas cosas, etcétera
00:13:03
y ya está, esa es la idea
00:13:05
poner cual
00:13:06
el modelo son todas
00:13:08
estas, este proyecto
00:13:12
lo voy a subir ahora después a hola virtual
00:13:16
lo que pasa es que no quería subirlo hasta que no
00:13:18
volviéramos a mirar, pero le pedimos
00:13:20
el modelo a chat GPT y no nos dio
00:13:22
un modelo JPA
00:13:24
like, no porque nos puso
00:13:26
que la sede, bueno esto es
00:13:28
que se lo cambiamos nosotros, pero
00:13:30
por ejemplo el empleado en lugar
00:13:32
de tener un departamento, un objeto
00:13:34
departamento, tenía el entero, o sea esto
00:13:35
es muy feo, esto no es un
00:13:38
modelo JPA
00:13:39
claro
00:13:41
y no, para mapearlo, no, porque tú
00:13:43
de la consulta ya sacas el link
00:13:46
para luego trabajar con él, para hacer
00:13:47
luego ya los casos de uso, ahí es donde se complica
00:13:49
porque quiero sacar el empleado
00:13:51
del departamento de propiedad de empleado
00:13:54
me saco primero
00:13:56
esto, de aquí tengo que ir al otro lado
00:13:58
entonces, claro, el DAO
00:14:00
en realidad es casi más sencillo
00:14:02
porque de consultas vas
00:14:04
a objetos directamente
00:14:06
y luego el servicio es el más
00:14:07
frioso
00:14:09
vale pues
00:14:10
de
00:14:13
si pues eso que el modelo no es
00:14:13
JPA like quería decir
00:14:17
porque las clases
00:14:19
en realidad no representan
00:14:21
correctamente las claves
00:14:23
ajenas, no representan las relaciones
00:14:25
son como una especie de foto de la
00:14:27
base de datos que no es la idea
00:14:29
vale
00:14:30
bueno de JDBC y de lo que va a entrar
00:14:31
etcétera alguna duda
00:14:35
Claro, en este
00:14:36
Pues, a ver, aquí por ejemplo
00:14:52
Si hiciéramos
00:14:54
Vale
00:14:55
Imaginaos
00:15:07
Que hacemos
00:15:10
Recuperar sede
00:15:11
Por el find by
00:15:14
Así no nos detenemos mucho
00:15:16
Que sería el más sencillo
00:15:19
Entonces, vamos a ver cómo era la base de datos
00:15:21
La base de datos
00:15:23
Era esta
00:15:25
Sé de dónde está
00:15:27
Esta
00:15:41
Bueno, pues
00:15:45
Antes de responder a tu pregunta
00:16:06
Haciendo un ejemplito sencillo
00:16:08
¿Cómo estudiaría yo?
00:16:10
Eso
00:16:13
Pues yo estudiaría
00:16:14
Fatal
00:16:16
Pues, por ejemplo
00:16:19
¿Puedes ir al baño?
00:16:24
Sí, joder, con el baño
00:16:26
Una fe, ¿eh?
00:16:27
Vale
00:16:30
Vale, pero vamos
00:16:30
Tampoco necesitábamos todos los detalles
00:16:43
No, hombre, ha dicho algo decente
00:16:45
¿Cómo estudiaría yo?
00:16:49
Pues por ejemplo
00:16:52
Me cogería este proyecto
00:16:53
Que ya está con una base de datos
00:16:55
Complicada
00:16:56
Y haría un dado
00:16:58
Pues por ejemplo
00:17:00
De empleados
00:17:04
Y diría, pues venga
00:17:05
Que un método de empleado
00:17:08
Es recuperar empleados por categoría
00:17:10
Ese sería un buen método de dado
00:17:13
Recuperar
00:17:15
Todos un find de empleado
00:17:17
by categoría
00:17:19
entonces ahí pues hay que pasarle
00:17:20
un parámetro, hay que
00:17:23
hacer el select que sea
00:17:25
luego un caso
00:17:27
de servicio pues
00:17:29
ya el que, pues ese mismo podría ser
00:17:30
dada una categoría, dame todos los
00:17:33
empleados o
00:17:35
lo que sea, o dame una categoría
00:17:36
o un caso de uso podría ser
00:17:38
dame una categoría en la que no haya empleados
00:17:40
en la que no haya, por ejemplo
00:17:43
entonces el caso de uso ya se les apaña para usar el método
00:17:44
de DAO como quiera
00:17:47
Para conseguir esa funcionalidad
00:17:48
¿Vale? Pues por ejemplo, estudiaría así
00:17:51
Inventándome
00:17:52
DAOs y métodos
00:17:54
De base de datos
00:17:57
Plantando ahí las consultas y luego probándolo
00:17:57
Desde el otro sitio
00:18:00
Uno a priori se cree que se ha puesto cosas fáciles
00:18:01
O que va a ser fácil
00:18:05
Y luego en cuanto te pones a hacer las cosas
00:18:06
De cualquier cosa sale un error
00:18:08
Prácticamente de cualquiera
00:18:10
Entonces es bueno ponerse a hacerlo
00:18:11
Si uno no se pone a hacerlo
00:18:14
¿Cuánto tiempo le he completado?
00:18:15
Pues
00:18:18
Pues yo qué sé
00:18:21
Tres horas a cada cosa, cuatro horas
00:18:24
No sé
00:18:26
Adrián, dos
00:18:28
No lo sé
00:18:30
Lo que sí que os digo es que lógicamente
00:18:35
No vais a hacer un proyecto de cero
00:18:37
Qué parte esté hecha, qué parte no
00:18:39
Qué pido, qué no pido, eso no lo sé
00:18:41
Vale, pues así es como estudiaría
00:18:43
Ahora en particular esto
00:18:47
Pues me podría coger este proyecto de base y ya está
00:18:48
que no, igual me arriesgaría
00:18:51
no lo sé, como no estamos en modo
00:18:53
aprender ahora mismo, sino que estamos
00:18:55
en modo examen ahora mismo
00:18:57
pues no sé si me arriesgaría a pedirle
00:18:58
a chat GPT que me ponga cosas
00:19:01
porque igual se va a ir un poco
00:19:03
aunque no, aprenderíamos mucho
00:19:04
igual se va un poco
00:19:07
del contexto
00:19:08
exacto, el scope en el que
00:19:11
estamos nosotros para el examen, entonces pues yo
00:19:13
tiraría con algo más así y ya está
00:19:15
¿vale?
00:19:16
En los modelos de bases de datos
00:19:21
Que he usado la virtual
00:19:23
Para
00:19:24
Esto lo he borrado
00:19:25
Había otro ejemplo de bases de datos
00:19:28
Complicada que también la podía usar para estudiar
00:19:33
Bueno
00:19:36
Y lo que decías tú
00:19:37
Luis Fernando
00:19:39
Pues yo que sé, imagínate que hacemos aquí
00:19:40
Otro método de DAO de sede
00:19:44
Este, muy fácil
00:19:45
Public sede
00:19:47
Bueno, muy fácil
00:19:49
Pero luego uno se atasca
00:19:51
Vale, pues este va a necesitar
00:19:52
Efectivamente una select con interrogación
00:20:00
Entonces aquí
00:20:01
Esto
00:20:02
Bueno, que esta va a ser
00:20:05
Nuestra sede
00:20:09
Y ahora aquí, pues ahora ya
00:20:10
Tú te harías la sentencia
00:20:15
¿No se llamaba así la clase?
00:20:17
Ah, conexión
00:20:29
Se llamaba
00:20:30
Ese
00:20:30
Y ahora ya
00:20:35
Pues te haces tu sentencia
00:20:42
Aunque estamos en el examen basándonos en muy pocas cosas
00:20:44
En realidad a lo largo de las semanas hemos mencionado muchas
00:20:51
Y hemos visto muchas en realidad
00:20:55
Aunque luego nos hemos quedado un poco con las más básicas para el examen
00:20:57
Entonces a mí me gustaría que ninguna de todas ellas
00:21:00
Haya pasado por vuestro cerebro como un avión que aborta el aterrizaje
00:21:03
Algo se habrá quedado
00:21:09
Sí, JDBC, JPA puro
00:21:10
Spring Data JPA
00:21:20
Y Spring Data MongoDB
00:21:22
Bueno, a usar tu Lendity Manager
00:21:24
Directamente
00:21:29
Y gestionar tú las transacciones
00:21:30
Claro
00:21:34
Vale, y ahora aquí en este que nos haríamos
00:21:36
Esta SELEN sabemos hasta hacerla nosotros
00:21:39
incluso, aunque bueno, jose de tiempo
00:21:41
que no sepamos hacer ni esta
00:21:43
aquí tenemos que seleccionar
00:21:44
bueno, si la queremos con proyectos
00:21:47
sería la de arriba
00:21:54
la de arriba, lo que pasa es que aquí sí quedaría
00:21:55
un where, es decir, sería toda esta
00:21:57
claro, porque
00:22:00
si yo la quiero con todas las cosas
00:22:05
que le cuelgan, tengo que hacer todos los join
00:22:07
otra cosa es que yo quiera la sede
00:22:09
Solo con lo que hay en la tabla
00:22:11
Que es su ID y su nombre
00:22:13
Que sí, hombre, que sí
00:22:15
Que sí, hombre, que sí
00:22:20
Entonces
00:22:22
Aquí, pues pondríamos
00:22:24
Esta misma
00:22:31
Pero, ojo, eh
00:22:34
Pero aquí nos
00:22:35
Está el multi
00:22:38
Este habría sido más bonito, ¿verdad?
00:22:40
Que no entiendes
00:22:58
Y luego en los vídeos sale una tabla
00:22:59
De JVC
00:23:06
Una base de datos de una tabla
00:23:07
Claro, pero eso es para aprender
00:23:10
Sí, pero
00:23:13
Ay, qué malos estamos
00:23:15
Bueno, a ver
00:23:26
La voy a copiar entera otra vez porque se ha copiado tan fea
00:23:33
Que arreglar esto es casi más complicado que otra cosa
00:23:35
Entonces
00:23:37
Ana, deja de llorar
00:23:39
No hay razón para que llores tanto
00:23:42
Vale, entonces
00:23:45
Tenemos aquí el preparé statement
00:23:55
Ala, ya está
00:24:02
Y copiadita
00:24:03
Y es que el copiar y pegar
00:24:04
Hace muchas tontunas
00:24:06
Sí, va a ser lo mejor, que copie todo
00:24:08
Porque es que si no
00:24:22
A ver
00:24:23
A ver si ahora me la copia
00:24:28
Bien
00:24:34
Vale, voy a ver si ya es el Throws. Vale, pues entonces, aquí, ¿qué nos faltaría en esta consulta? Nos faltaría el web, ¿verdad? Aquí sacamos la sede con todos sus datos, todos los proyectos que tiene asociados, con todos sus platatín, de proyectos, sede, todo en platatín, patatón, pero aquí no los queremos todos.
00:24:40
queremos solamente
00:25:05
la sede cuyo id
00:25:07
pues aquí es donde podrías
00:25:08
pondrías
00:25:10
where
00:25:11
el campo sede punto id sede
00:25:12
igual
00:25:19
y aquí plantarías la interrogación
00:25:25
y podría haber más interrogaciones
00:25:26
pues donde haya
00:25:29
un dato de entrada, un parámetro, todas las interrogaciones
00:25:30
que quieras
00:25:33
y ahora ya aquí, pues ahora ya sí que aquí haríamos
00:25:34
en nuestra
00:25:37
ps de aquí
00:25:39
le diríamos, oye tú
00:25:40
la primera de las interrogaciones
00:25:43
ah, es un entero, la id debe ser un entero
00:25:45
¿verdad?
00:25:47
pues entonces le diríamos, oye tú
00:25:49
la primera de las interrogaciones
00:25:51
es un entero
00:25:53
¿y cuál va a ser? pues
00:25:55
este parámetro de aquí
00:25:57
id, este, y ya está
00:25:59
¿qué tienes más? pues la 2
00:26:06
la 3, la 4
00:26:08
¿vale? y ahora ya
00:26:10
una vez que esto está aquí, pues
00:26:12
El resto otra vez es un copia y pega
00:26:14
Aquí este while result set
00:26:17
Se va a ejecutar o una o ninguna
00:26:19
Depende de si
00:26:21
Esa set existe o no
00:26:23
Pero el código lo puedo reutilizar
00:26:24
Tal cual
00:26:26
Porque
00:26:27
Me estoy trayendo
00:26:28
Todo lo que tiene asociado
00:26:33
No solamente estos dos campos
00:26:35
Los proyectos
00:26:36
Me estoy trayendo todos los proyectos
00:26:37
Entonces
00:26:41
Lo que hicimos ayer
00:26:42
Entonces, como el mapeo sería igual
00:26:43
Todo sería igual
00:26:47
Lo que pasa es que aquí
00:26:48
Solo tengo una sed, esto se va a ejecutar una vez solamente
00:26:49
Una o ninguna
00:26:53
¿Vale? Entonces lo podríamos copiar todo
00:26:54
Tal cual
00:26:57
Todo el código
00:26:58
Todo tal cual
00:26:59
Y ya está
00:27:02
Claro, esto es el parámetro
00:27:12
¿Esto dices?
00:27:20
Bueno, esta es la cláusula de búsqueda
00:27:21
De la query
00:27:24
Estás buscando sede por id
00:27:25
La s es por la s de arriba
00:27:28
Sí, porque tiene un alias
00:27:30
Sede s
00:27:31
Tiene este alias
00:27:33
¿Vale?
00:27:34
Tiene el alias
00:27:37
Sí, sí, sí
00:27:38
Aquí lo que pasa es que este tenía una colección
00:27:43
Y devolvíamos la colección
00:27:46
Aquí solo tiene uno
00:27:47
Entonces bueno
00:27:48
Ah, vale, vale, vale, sí
00:27:49
La apuesta final de todo
00:27:59
Sí, unos crack
00:28:00
A ver
00:28:07
Vale, entonces esto
00:28:10
Se trata de
00:28:22
Retocar esto para que no me devuelva
00:28:24
Una colección, sino solo un elemento
00:28:27
Porque este while va a entrar
00:28:29
Una o ninguna, si no entra ninguna es porque
00:28:31
No existe, que devuelva null
00:28:33
Y si entra una vez
00:28:34
Porque la sede existe, entra una vez
00:28:37
Pues aquí en lugar de ir añadiendo
00:28:39
Claro, en lugar de ir añadiendo
00:28:40
Es esa única sede la que me devuelve
00:28:43
Y ya está, este código ya
00:28:45
Lo podéis retocar vosotros para que devuelva
00:28:46
La única sede y se acabó
00:28:49
Lo demás está igual
00:28:51
Bueno, de JDBC
00:28:51
¿Dudas de algo más de lo que pueda entrar o alguna cosa?
00:28:54
¿A qué te refieres con la clase de configuración?
00:29:00
Es que en JDBC es la conexión sin más
00:29:05
Porque parámetros de configuración como
00:29:08
Sí, nosotros usábamos esta
00:29:10
¿Vale? La clase conexión
00:29:21
Que esta en particular
00:29:23
Cogía las únicas tres propiedades
00:29:24
Que usaba, porque no usábamos parámetros
00:29:27
Como UTC, ni como Security, ni nada
00:29:29
Las cogía en particular de un properties
00:29:31
Pero, ¿podríais vosotros
00:29:33
También cascarlas
00:29:35
Aquí?
00:29:37
Si tú la tienes en tus proyectos
00:29:43
La puedes coger
00:29:45
Este es el proyecto modelo que usamos nosotros
00:29:46
La usábamos, entonces entiendo que
00:29:49
vosotros tenéis eso
00:29:51
de hecho, en el que hicimos
00:29:52
nosotros el otro día, dijimos
00:29:58
vamos a reutilizar
00:30:00
como nos es cómodo, vamos a reutilizarla
00:30:02
y la reutilizamos tal cual
00:30:04
del proyecto que vimos de ejemplo en su momento
00:30:06
entonces, pues si vosotros tenéis
00:30:08
que hacer eso desde cero, pues
00:30:10
os lo hacéis de otra manera, o reutilizáis
00:30:12
lo reutilizáis así, como más os guste
00:30:14
vale
00:30:16
pues entonces
00:30:17
JPA, vale
00:30:21
Voy a subir
00:30:23
Ahora mismo el mismo
00:30:26
Con esta misma base de datos
00:30:27
El proyectito
00:30:29
Con las entidades JPA hechas
00:30:32
Esta vez ya bien hechas
00:30:34
Y para ver un poquito
00:30:35
El repaso de JPA
00:30:37
¿Vale?
00:30:40
Porque si empezamos a hacerlo nosotros ahora
00:30:42
Pues no, nos estamos dos horas
00:30:44
Entonces
00:30:46
- Materias:
- Programación
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado superior
- Segundo Curso
- Subido por:
- Raquel G.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 1
- Fecha:
- 3 de marzo de 2026 - 17:07
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 30′ 48″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 148.01 MBytes