1 00:00:00,000 --> 00:00:05,139 Vale, entonces la arquitectura 2 00:00:05,139 --> 00:00:07,179 estándar para nosotros 3 00:00:07,179 --> 00:00:08,660 para practicar JDBC 4 00:00:08,660 --> 00:00:11,419 pues ya está, simplemente nuestro modelo 5 00:00:11,419 --> 00:00:13,580 de toda la vida, en este caso es el que nos 6 00:00:13,580 --> 00:00:15,060 dio ChagPT 7 00:00:15,060 --> 00:00:19,320 Sí, sí, sí, en este caso 8 00:00:19,320 --> 00:00:21,280 es el que nos dio ChagPT que era más 9 00:00:21,280 --> 00:00:22,420 feo que yo que sé 10 00:00:22,420 --> 00:00:24,440 feísimo 11 00:00:24,440 --> 00:00:27,199 pero daba igual porque 12 00:00:27,199 --> 00:00:28,780 lo que queríamos era practicar 13 00:00:28,780 --> 00:00:31,339 sentencias JDBC 14 00:00:31,339 --> 00:00:33,579 y ya está, entonces nos adaptamos a este modelo 15 00:00:33,579 --> 00:00:35,359 que era más feo que yo que sé, pero bueno 16 00:00:35,359 --> 00:00:36,600 da igual, y de hecho 17 00:00:36,600 --> 00:00:39,359 vale, entonces luego ya 18 00:00:39,359 --> 00:00:41,560 hicimos un 19 00:00:41,560 --> 00:00:43,740 DAO pataterillo, ni implementación ni nada 20 00:00:43,740 --> 00:00:47,539 que nos sirvió pues un poco 21 00:00:47,539 --> 00:00:49,000 para recordar que 22 00:00:49,000 --> 00:00:51,740 DAO fuera de mis 23 00:00:51,740 --> 00:00:52,840 casos de uso 24 00:00:52,840 --> 00:00:55,240 acceso a base de datos puro y duro 25 00:00:55,240 --> 00:00:57,100 casos de uso en servicio 26 00:00:57,100 --> 00:00:59,719 Entonces el dao este 27 00:00:59,719 --> 00:01:01,520 Pataterillo 28 00:01:01,520 --> 00:01:03,520 Pues lo 29 00:01:03,520 --> 00:01:08,359 El dao este pataterillo 30 00:01:08,359 --> 00:01:10,640 ¿Qué? 31 00:01:12,640 --> 00:01:13,739 Sí, ¿verdad? 32 00:01:14,980 --> 00:01:16,140 Pero este 33 00:01:16,140 --> 00:01:16,840 Esta 34 00:01:16,840 --> 00:01:18,519 Esta selet 35 00:01:18,519 --> 00:01:21,719 Ya, pero dijimos 36 00:01:21,719 --> 00:01:23,180 Esta sentencia 37 00:01:23,180 --> 00:01:25,920 De hecho se la pedimos a CharGPT 38 00:01:25,920 --> 00:01:26,719 ¿Vale? 39 00:01:26,719 --> 00:01:29,319 Claro, porque 40 00:01:29,319 --> 00:01:30,260 A ver 41 00:01:30,260 --> 00:01:33,420 Ayer, por ejemplo 42 00:01:33,420 --> 00:01:36,079 Me escribe, empieza la historia de la abuela cebolleta 43 00:01:36,079 --> 00:01:37,099 Vale, pero va a ser muy breve 44 00:01:37,099 --> 00:01:40,040 Ayer me escribe 45 00:01:40,040 --> 00:01:41,000 Un alumno de hace 46 00:01:41,000 --> 00:01:43,120 Tres años 47 00:01:43,120 --> 00:01:45,760 Que está trabajando en este 48 00:01:45,760 --> 00:01:46,939 Mabel 49 00:01:46,939 --> 00:01:47,739 Sí, Mabel 50 00:01:47,739 --> 00:01:51,340 Y me dice 51 00:01:51,340 --> 00:01:53,799 Creo que tenéis que empezar a usar la IA en clase 52 00:01:53,799 --> 00:01:56,079 Porque 53 00:01:56,079 --> 00:01:58,879 nosotros tenemos, ya nos han dado ya los protocolos 54 00:01:58,879 --> 00:02:00,939 de arriba y abajo, y la tenemos que usar 55 00:02:00,939 --> 00:02:02,640 continuamente, para todo 56 00:02:02,640 --> 00:02:04,900 entonces yo creo que tenéis que empezar 57 00:02:04,900 --> 00:02:06,760 a dejar de hacer las consultas vosotros 58 00:02:06,760 --> 00:02:09,099 tenéis que empezar a dejar de hacer eso, porque eso no se hace 59 00:02:09,099 --> 00:02:11,020 conclusión, lo que llevamos 60 00:02:11,020 --> 00:02:12,060 haciendo todo el curso 61 00:02:12,060 --> 00:02:14,560 ya sabéis chicos, que no usáis la IA, usadla 62 00:02:14,560 --> 00:02:16,939 si alguno se haya planteado 63 00:02:16,939 --> 00:02:19,060 no usarla, que la use 64 00:02:19,060 --> 00:02:21,400 ¿qué quiero decir con esto? 65 00:02:21,400 --> 00:02:23,020 que para el examen va buena 66 00:02:23,020 --> 00:02:25,300 vale, pero entonces os pongo un proyecto 67 00:02:25,300 --> 00:02:27,400 real. Y nos estamos aquí 68 00:02:27,400 --> 00:02:28,400 siete horas. 69 00:02:30,139 --> 00:02:32,860 No, no es tan sencillo. 70 00:02:33,139 --> 00:02:35,039 Si estuviéramos hablando con bases de datos reales, 71 00:02:35,120 --> 00:02:37,199 con modelos de negocio reales que te ponen un montón 72 00:02:37,199 --> 00:02:38,139 de restricciones. 73 00:02:39,639 --> 00:02:41,099 Ya, pero es que entonces si quisiéramos 74 00:02:41,099 --> 00:02:43,159 evaluar así con el uso de ChagPT, tendríamos 75 00:02:43,159 --> 00:02:45,120 que ver un modelo, o sea, tenemos que poner 76 00:02:45,120 --> 00:02:46,599 un proyecto de esa envergadura. 77 00:02:47,139 --> 00:02:49,199 Lo podríamos, usaríamos SIA y sería la mejor 78 00:02:49,199 --> 00:02:50,699 forma de evaluar. Necesitaríamos diez horas 79 00:02:50,699 --> 00:02:53,060 y ya está y sería la mejor manera, pero no podemos. 80 00:02:53,360 --> 00:02:55,240 Entonces, algo sencillito no usaría 81 00:02:55,240 --> 00:02:57,280 para ver si las destrezas están más o menos cogidas 82 00:02:57,280 --> 00:02:58,539 y ya está, y nos vamos todos a casa. 83 00:02:59,539 --> 00:03:00,680 Es la idea. Vale. 84 00:03:01,180 --> 00:03:02,960 Entonces, ¿qué quería decir yo con esta historia? 85 00:03:03,680 --> 00:03:05,259 Que esta se la pedimos a HGPT. 86 00:03:05,400 --> 00:03:07,319 ¿Por qué? Porque a mí no me interesa 87 00:03:07,319 --> 00:03:08,639 ni a vosotros os interesa 88 00:03:08,639 --> 00:03:10,819 tener un dominio del SQL. 89 00:03:11,120 --> 00:03:13,400 Os interesa saber de qué va, que eso ya lo sabéis. 90 00:03:13,900 --> 00:03:15,280 ¿Vale? Pues entonces 91 00:03:15,280 --> 00:03:17,159 le pedimos la consulta y como somos 92 00:03:17,159 --> 00:03:19,219 tan listos, en cuanto la vemos, 93 00:03:20,000 --> 00:03:21,340 pues ya está, entendemos lo que 94 00:03:21,340 --> 00:03:22,419 hace. ¿Vale? 95 00:03:22,840 --> 00:03:24,659 O bueno, no sé si en cuanto la vemos, 96 00:03:24,659 --> 00:03:25,979 Pero a lo mejor al minuto 97 00:03:25,979 --> 00:03:27,580 Más o menos al minuto 98 00:03:27,580 --> 00:03:30,319 Yo lo mismo me tiro 99 00:03:30,319 --> 00:03:31,439 Para entender esa tendencia 100 00:03:31,439 --> 00:03:33,319 15-20 minutos fácil 101 00:03:33,319 --> 00:03:35,860 Bueno, sí, yo también lo digo 102 00:03:35,860 --> 00:03:38,460 También 103 00:03:38,460 --> 00:03:40,759 Pero bueno, otro debate sería 104 00:03:40,759 --> 00:03:41,919 ¿Dónde ponemos la frontera? 105 00:03:42,360 --> 00:03:45,379 Porque si se nos mueren las neuronas 106 00:03:45,379 --> 00:03:46,099 Tenemos un problema 107 00:03:46,099 --> 00:03:50,879 Mira, te voy a traer la ficha 108 00:03:50,879 --> 00:03:52,840 Que le llevo a mi padre para el deterioro cognitivo 109 00:03:52,840 --> 00:03:54,939 que no nos vendría nada mal hacer 110 00:03:54,939 --> 00:03:55,860 de vez en cuando todos 111 00:03:55,860 --> 00:03:58,659 literalmente somos la generación 112 00:03:58,659 --> 00:04:00,479 esta generación nueva tiene menos 113 00:04:00,479 --> 00:04:01,879 inteligencia que la anterior 114 00:04:01,879 --> 00:04:04,840 no, eso no es verdad 115 00:04:04,840 --> 00:04:06,860 eso dicen, el cociente bruto 116 00:04:06,860 --> 00:04:07,960 la medida del cociente bruto 117 00:04:07,960 --> 00:04:09,340 es la primera que ha bajado en muchísimos años 118 00:04:09,340 --> 00:04:17,300 bueno, pues tendréis que suplirlo con otras cosas 119 00:04:17,300 --> 00:04:18,660 no hay otra 120 00:04:18,660 --> 00:04:20,439 vale, bueno, pues entonces 121 00:04:20,439 --> 00:04:22,639 esta sentencia era 122 00:04:22,639 --> 00:04:24,860 exclusivamente para hacer un 123 00:04:24,860 --> 00:04:27,160 find all, que es 124 00:04:27,160 --> 00:04:28,779 sácame la sede 125 00:04:28,779 --> 00:04:30,800 con todos sus proyectos 126 00:04:30,800 --> 00:04:33,040 asociados, pues para hacer un find all 127 00:04:33,040 --> 00:04:35,120 sede con todos los proyectos 128 00:04:35,120 --> 00:04:36,639 esta sentencia de aquí 129 00:04:36,639 --> 00:04:38,420 en el examen 130 00:04:38,420 --> 00:04:40,579 muy bueno 131 00:04:40,579 --> 00:04:42,639 sentencias más sencillas, vale 132 00:04:42,639 --> 00:04:44,819 o a lo mejor sentencias que ya están 133 00:04:44,819 --> 00:04:46,920 hechas, pero por alguna razón algo no funciona 134 00:04:46,920 --> 00:04:49,079 y tendréis que ver por qué no funciona 135 00:04:49,079 --> 00:04:50,600 eso me suele gustar más 136 00:04:50,600 --> 00:04:52,540 algo que hago 137 00:04:52,540 --> 00:04:55,199 Cambio las cosas 138 00:04:55,199 --> 00:04:56,480 Las quito, las pongo 139 00:04:56,480 --> 00:04:58,560 Cambio alguna cosa mal, no muy a pillar 140 00:04:58,560 --> 00:05:01,139 Y decir, arreglámelo, encuéntramelo 141 00:05:01,139 --> 00:05:02,639 Eso me gusta más 142 00:05:02,639 --> 00:05:05,240 ¿Vale? Pero ya veremos, no lo he puesto todavía 143 00:05:05,240 --> 00:05:06,420 Bueno, pues 144 00:05:06,420 --> 00:05:08,839 El problema, aquí no era 145 00:05:08,839 --> 00:05:09,899 Tanto la sentencia 146 00:05:09,899 --> 00:05:12,480 Porque la sentencia se la pide uno a HGPT 147 00:05:12,480 --> 00:05:14,259 Y ya está sabiendo lo que tiene que pedir, claro 148 00:05:14,259 --> 00:05:17,220 Sino ahora, hacer el mapeo 149 00:05:17,220 --> 00:05:19,040 Que es la parte 150 00:05:19,040 --> 00:05:20,699 Que nos hace Hibernate 151 00:05:20,699 --> 00:05:23,360 pues hacer el mapeo del result set 152 00:05:23,360 --> 00:05:25,220 pues nada, aquí es donde nos estuvimos 153 00:05:25,220 --> 00:05:27,180 un ratito, porque es que estos no paraban 154 00:05:27,180 --> 00:05:29,180 de decir, así no, así no, así no 155 00:05:29,180 --> 00:05:30,579 y nos estuvimos dos horas 156 00:05:30,579 --> 00:05:33,199 bueno, pues estuvimos creando 157 00:05:33,199 --> 00:05:35,439 las sedes, añadiendo los proyectos 158 00:05:35,439 --> 00:05:36,819 a las sedes, etcétera 159 00:05:36,819 --> 00:05:39,639 y así creamos nuestra colección de sedes y devolvimos 160 00:05:39,639 --> 00:05:41,360 y ya está, y luego nos 161 00:05:41,360 --> 00:05:43,600 hicimos un caso de uso y se acabó 162 00:05:43,600 --> 00:05:45,379 bueno, antes de nada 163 00:05:45,379 --> 00:05:47,360 lógicamente la conexión 164 00:05:47,360 --> 00:05:49,420 la sentencia y la conexión 165 00:05:49,420 --> 00:05:51,579 la metimos en un singleton por aquí 166 00:05:51,579 --> 00:05:52,959 y ya está 167 00:05:52,959 --> 00:05:55,759 que sacábamos las propiedades y ya está 168 00:05:55,759 --> 00:05:58,139 que esa va a ser la arquitectura del examen 169 00:05:58,139 --> 00:05:59,779 también, va a ser esa 170 00:05:59,779 --> 00:06:01,079 y 171 00:06:01,079 --> 00:06:04,360 exacto 172 00:06:04,360 --> 00:06:06,319 y aquí el caso de uso que hicimos 173 00:06:06,319 --> 00:06:10,079 pues es usar ese find all 174 00:06:10,079 --> 00:06:11,639 para ver la sede con más proyectos 175 00:06:11,639 --> 00:06:13,920 entonces nos sacamos 176 00:06:13,920 --> 00:06:17,959 todas las sedes 177 00:06:17,959 --> 00:06:20,079 Aquí sacamos primero 178 00:06:20,079 --> 00:06:21,180 El máximo 179 00:06:21,180 --> 00:06:24,459 De esta colección 180 00:06:24,459 --> 00:06:25,860 Y luego ya nos 181 00:06:25,860 --> 00:06:27,160 Buscamos 182 00:06:27,160 --> 00:06:30,279 La sede 183 00:06:30,279 --> 00:06:32,180 Con este filter, buscamos la sede 184 00:06:32,180 --> 00:06:34,180 Que tenía este máximo, muy retorcido 185 00:06:34,180 --> 00:06:36,500 Porque aquí podíamos haber metido 186 00:06:36,500 --> 00:06:37,579 Ya un comparador 187 00:06:37,579 --> 00:06:39,560 Vale, entonces, que era lo único 188 00:06:39,560 --> 00:06:42,160 Lo único que había que cambiar para que esto 189 00:06:42,160 --> 00:06:43,300 Funcionara, lo único 190 00:06:43,300 --> 00:06:46,300 Que yo aquí, como estábamos escribiendo así muy rápido 191 00:06:46,300 --> 00:06:48,220 puse un null 192 00:06:48,220 --> 00:06:49,879 directamente porque pensaba en el sort 193 00:06:49,879 --> 00:06:52,160 de colecciones, que ya sabéis que el sort 194 00:06:52,160 --> 00:06:53,540 si no le das un comparador 195 00:06:53,540 --> 00:06:56,040 te usa el orden natural que está establecido 196 00:06:56,040 --> 00:06:57,540 en el comparable, te usa el orden natural 197 00:06:57,540 --> 00:07:00,040 y no max, no, max no es como el sort 198 00:07:00,040 --> 00:07:02,319 te exige un comparador, entonces el comparador 199 00:07:02,319 --> 00:07:04,079 se lo puedes dar de muchas maneras, pero siempre 200 00:07:04,079 --> 00:07:05,600 tienes la clase 201 00:07:05,600 --> 00:07:08,060 comparator, donde 202 00:07:08,060 --> 00:07:09,740 tú puedes de aquí, ¿vale? 203 00:07:10,079 --> 00:07:11,519 sacar comparadores 204 00:07:11,519 --> 00:07:14,339 tuyos específicos que has creado 205 00:07:14,339 --> 00:07:16,339 O comparadores que ya están hechos 206 00:07:16,339 --> 00:07:17,000 Como este 207 00:07:17,000 --> 00:07:19,019 Entonces 208 00:07:19,019 --> 00:07:22,839 Este es el comparador natural 209 00:07:22,839 --> 00:07:27,019 Claro 210 00:07:27,019 --> 00:07:30,379 El orden natural que tenga esa entidad 211 00:07:30,379 --> 00:07:31,279 Que tiene que tenerlo 212 00:07:31,279 --> 00:07:32,360 Si no lo tiene pues 213 00:07:32,360 --> 00:07:35,860 Aquí lo único es que nos complicamos mucho la vida 214 00:07:35,860 --> 00:07:37,560 Porque si le hubiéramos dado ya 215 00:07:37,560 --> 00:07:40,639 Un comparador específico 216 00:07:40,639 --> 00:07:42,819 Adaptado a nuestro criterio de orden 217 00:07:42,819 --> 00:07:44,019 Que nuestro criterio de orden 218 00:07:44,019 --> 00:07:46,079 Era el tamaño de la colección 219 00:07:46,079 --> 00:07:47,259 Pues ya está 220 00:07:47,259 --> 00:07:49,920 Nos hubiéramos ahorrado luego hacer esta segunda parte 221 00:07:49,920 --> 00:07:51,319 ¿Vale? 222 00:07:56,759 --> 00:07:58,759 Eso lo podríamos haber hecho 223 00:07:58,759 --> 00:08:01,279 Con este 224 00:08:01,279 --> 00:08:03,839 El comparador que yo quiero es de enteros 225 00:08:03,839 --> 00:08:05,399 Porque queríamos comparar 226 00:08:05,399 --> 00:08:06,319 Este de aquí 227 00:08:06,319 --> 00:08:08,899 Queríamos comparar 228 00:08:08,899 --> 00:08:13,839 Este, queríamos comparar 229 00:08:13,839 --> 00:08:16,879 Pues 230 00:08:16,879 --> 00:08:21,319 x.get 231 00:08:21,319 --> 00:08:23,399 No, ¿dónde estamos aquí? 232 00:08:24,399 --> 00:08:25,579 Aquí le tenemos que meter 233 00:08:25,579 --> 00:08:27,060 el criterio de comparación 234 00:08:27,060 --> 00:08:30,139 A ver, ¿cómo era esto? 235 00:08:30,139 --> 00:08:31,439 Aquí hay un nuevo comparador 236 00:08:31,439 --> 00:08:41,559 No, porque le tengo que 237 00:08:41,559 --> 00:08:43,000 pasar el tamaño de 238 00:08:43,000 --> 00:08:45,559 Ah, no, espérate, es que este map 239 00:08:45,559 --> 00:08:47,539 es el que me sobraría. Vale, en este caso 240 00:08:47,539 --> 00:08:49,440 Espera, vamos a ponerlo en otro sitio 241 00:08:49,440 --> 00:08:51,860 Es que el map de arriba es el que me sobraría 242 00:08:51,860 --> 00:08:53,179 A ver, este 243 00:08:53,179 --> 00:08:55,940 Esta sería 244 00:08:55,940 --> 00:08:57,200 Una opción 245 00:08:57,200 --> 00:08:58,700 Y la otra sería 246 00:08:58,700 --> 00:09:01,220 Irmax igual a 247 00:09:01,220 --> 00:09:01,799 Dao. 248 00:09:04,320 --> 00:09:05,899 Dao.findall 249 00:09:05,899 --> 00:09:06,779 Dime 250 00:09:06,779 --> 00:09:11,480 Tiene guardia 251 00:09:11,480 --> 00:09:13,460 Y creo que está en el aula de segundo de SMRB 252 00:09:13,460 --> 00:09:14,019 Guardando 253 00:09:14,019 --> 00:09:15,840 Sí 254 00:09:15,840 --> 00:09:18,700 Sí, está justo enfrente 255 00:09:18,700 --> 00:09:19,700 Un poquito a la izquierda 256 00:09:19,700 --> 00:09:21,200 Vale, entonces 257 00:09:21,200 --> 00:09:22,539 Aquí 258 00:09:22,539 --> 00:09:26,360 Esto sería 259 00:09:26,360 --> 00:09:29,320 Vamos a hacer un comparador 260 00:09:29,320 --> 00:09:31,039 Me falta el string, jolines 261 00:09:31,039 --> 00:09:33,179 FindAll.String 262 00:09:33,179 --> 00:09:37,500 Este max fuera 263 00:09:37,500 --> 00:09:39,179 Este de aquí 264 00:09:39,179 --> 00:09:44,019 FindAll.String 265 00:09:44,019 --> 00:09:45,480 Vale 266 00:09:45,480 --> 00:09:46,740 Y ahora ya 267 00:09:46,740 --> 00:09:50,500 esta cadena es una cadena de sedes 268 00:09:50,500 --> 00:09:51,700 y yo tengo que fijar 269 00:09:51,700 --> 00:09:53,519 un comparador 270 00:09:53,519 --> 00:09:55,519 entre las sedes 271 00:09:55,519 --> 00:09:58,500 pero basado en una transformación 272 00:09:58,500 --> 00:09:59,840 de esas sedes a entero 273 00:09:59,840 --> 00:10:01,960 que es el tamaño de su 274 00:10:01,960 --> 00:10:04,240 colección de proyectos 275 00:10:04,240 --> 00:10:06,779 entonces esa transformación a enteros 276 00:10:06,779 --> 00:10:08,759 me la daría el comparing int 277 00:10:08,759 --> 00:10:10,360 y aquí 278 00:10:10,360 --> 00:10:12,379 tengo que poner, entiendo que 279 00:10:12,379 --> 00:10:13,299 esta función 280 00:10:13,299 --> 00:10:15,759 Exacto, .size 281 00:10:15,759 --> 00:10:17,460 X.get 282 00:10:17,460 --> 00:10:19,440 Proyectos 283 00:10:19,440 --> 00:10:20,980 .size 284 00:10:20,980 --> 00:10:22,000 ¿Vale? 285 00:10:23,539 --> 00:10:25,179 Entonces, esto 286 00:10:25,179 --> 00:10:26,860 Pero lo voy a bajar aquí abajo 287 00:10:26,860 --> 00:10:29,840 Me extraería ya directamente 288 00:10:29,840 --> 00:10:31,740 El máximo de este stream 289 00:10:31,740 --> 00:10:33,879 El máximo basado 290 00:10:33,879 --> 00:10:35,980 En este criterio de comparación 291 00:10:35,980 --> 00:10:37,139 Creo 292 00:10:37,139 --> 00:10:40,179 El proyecto con esa colección 293 00:10:40,179 --> 00:10:40,759 Más larga 294 00:10:40,759 --> 00:10:43,279 claro, y ahora yo ya de este 295 00:10:43,279 --> 00:10:45,500 pues yo saco el 296 00:10:45,500 --> 00:10:47,120 el 297 00:10:47,120 --> 00:10:49,320 o con get directamente 298 00:10:49,320 --> 00:10:50,059 si soy cutre 299 00:10:50,059 --> 00:10:53,059 o si es null 300 00:10:53,059 --> 00:10:53,940 lanza una excepción 301 00:10:53,940 --> 00:10:57,120 aquí lo único, cuidado, porque si 302 00:10:57,120 --> 00:10:59,240 fuera null, me saldría un no pointer 303 00:10:59,240 --> 00:11:01,000 excepción, pero como yo ya lo tengo instanciado 304 00:11:01,000 --> 00:11:02,100 para que no pueda ser null nunca 305 00:11:02,100 --> 00:11:07,059 yo creo que te lanzará una excepción 306 00:11:07,059 --> 00:11:07,740 de 307 00:11:07,740 --> 00:11:11,480 un runtime genérico 308 00:11:11,480 --> 00:11:13,179 supongo, no lo sé, pero bueno 309 00:11:13,179 --> 00:11:14,299 al menos te avisa, si no 310 00:11:14,299 --> 00:11:17,200 lo ideal sería crear nosotros una nuestra 311 00:11:17,200 --> 00:11:19,159 y aquí ponerle un new 312 00:11:19,159 --> 00:11:20,659 porque este método está sobrecargado 313 00:11:20,659 --> 00:11:22,320 pero el comparín te saca el mayor 314 00:11:22,320 --> 00:11:25,539 no, esto en la clase comparator 315 00:11:25,539 --> 00:11:27,639 en general es para crear criterios de comparación 316 00:11:27,639 --> 00:11:29,100 tú puedes hacer tus propios comparator 317 00:11:29,100 --> 00:11:30,740 o puedes directamente 318 00:11:30,740 --> 00:11:33,179 mediante los métodos que te ofrece comparator 319 00:11:33,179 --> 00:11:34,259 pasándole ya la 320 00:11:34,259 --> 00:11:36,600 implementación 321 00:11:36,600 --> 00:11:39,500 del comparator directamente o interfaz funcional 322 00:11:39,500 --> 00:11:40,940 entonces aquí 323 00:11:40,940 --> 00:11:43,500 nuestro criterio de comparación va a ser 324 00:11:43,500 --> 00:11:45,320 este momento porque es 325 00:11:45,320 --> 00:11:47,179 entre una transformación entero 326 00:11:47,179 --> 00:11:49,360 de cada esto, pero bueno tampoco quiero que nos perdamos mucho aquí 327 00:11:49,360 --> 00:11:51,159 porque no vamos a meternos en cosas 328 00:11:51,159 --> 00:11:52,000 estas en el examen 329 00:11:52,000 --> 00:11:55,200 pero bueno la idea es entenderlo 330 00:11:55,200 --> 00:11:56,879 y si nos lo ofrece 331 00:11:56,879 --> 00:11:58,320 cuando le pedimos 332 00:11:58,320 --> 00:12:00,279 hombre claro 333 00:12:00,279 --> 00:12:02,440 pues si yo entenderlo 334 00:12:02,440 --> 00:12:05,899 uy no me hagas preguntas 335 00:12:05,899 --> 00:12:08,419 No, no voy 336 00:12:08,419 --> 00:12:09,559 O sea, no voy 337 00:12:09,559 --> 00:12:10,919 Es decir, esto es lo que está 338 00:12:10,919 --> 00:12:12,039 Esto sobraría ahora 339 00:12:12,039 --> 00:12:14,100 Claro, es que este 340 00:12:14,100 --> 00:12:16,840 Claro, es que este también sobraría 341 00:12:16,840 --> 00:12:19,440 O sea, es que esto era para el modelo anterior 342 00:12:19,440 --> 00:12:21,120 Ahora nos quedaríamos solamente con esto 343 00:12:21,120 --> 00:12:23,340 Es decir 344 00:12:23,340 --> 00:12:25,580 O todo esto 345 00:12:25,580 --> 00:12:27,759 Que es una forma muy larga 346 00:12:27,759 --> 00:12:28,299 De llegar 347 00:12:28,299 --> 00:12:30,639 Que sería una forma muy larga 348 00:12:30,639 --> 00:12:32,240 ¿Vale? 349 00:12:32,399 --> 00:12:35,299 Pero que fue la que nos salió de corrido el otro día 350 00:12:35,299 --> 00:12:37,419 porque era de corrido 351 00:12:37,419 --> 00:12:39,360 sin consultar nada y sin mirar nada, no salió esta 352 00:12:39,360 --> 00:12:41,360 y ya está, ¿vale? y esta hubiera sido 353 00:12:41,360 --> 00:12:42,259 una forma más cortita 354 00:12:42,259 --> 00:12:44,120 y 355 00:12:44,120 --> 00:12:46,899 se me ha quedado una barra, vale 356 00:12:46,899 --> 00:12:49,159 y entonces, pues 357 00:12:49,159 --> 00:12:51,539 con este proyecto, que podría ser 358 00:12:51,539 --> 00:12:53,159 pues un proyecto como el examen 359 00:12:53,159 --> 00:12:55,340 o el del examen, pues podríamos aquí 360 00:12:55,340 --> 00:12:56,659 pedir 361 00:12:56,659 --> 00:12:58,399 más 362 00:12:58,399 --> 00:13:01,139 métodos de DAO o más métodos de estos 363 00:13:01,139 --> 00:13:03,320 o pedir un DAO relacionado 364 00:13:03,320 --> 00:13:05,059 con alguna de estas cosas, etcétera 365 00:13:05,059 --> 00:13:06,940 y ya está, esa es la idea 366 00:13:06,940 --> 00:13:08,620 poner cual 367 00:13:08,620 --> 00:13:12,659 el modelo son todas 368 00:13:12,659 --> 00:13:16,080 estas, este proyecto 369 00:13:16,080 --> 00:13:18,179 lo voy a subir ahora después a hola virtual 370 00:13:18,179 --> 00:13:20,100 lo que pasa es que no quería subirlo hasta que no 371 00:13:20,100 --> 00:13:22,200 volviéramos a mirar, pero le pedimos 372 00:13:22,200 --> 00:13:24,220 el modelo a chat GPT y no nos dio 373 00:13:24,220 --> 00:13:26,220 un modelo JPA 374 00:13:26,220 --> 00:13:28,220 like, no porque nos puso 375 00:13:28,220 --> 00:13:30,139 que la sede, bueno esto es 376 00:13:30,139 --> 00:13:32,059 que se lo cambiamos nosotros, pero 377 00:13:32,059 --> 00:13:34,039 por ejemplo el empleado en lugar 378 00:13:34,039 --> 00:13:35,980 de tener un departamento, un objeto 379 00:13:35,980 --> 00:13:38,100 departamento, tenía el entero, o sea esto 380 00:13:38,100 --> 00:13:39,600 es muy feo, esto no es un 381 00:13:39,600 --> 00:13:41,100 modelo JPA 382 00:13:41,100 --> 00:13:43,120 claro 383 00:13:43,120 --> 00:13:46,139 y no, para mapearlo, no, porque tú 384 00:13:46,139 --> 00:13:47,519 de la consulta ya sacas el link 385 00:13:47,519 --> 00:13:49,580 para luego trabajar con él, para hacer 386 00:13:49,580 --> 00:13:51,899 luego ya los casos de uso, ahí es donde se complica 387 00:13:51,899 --> 00:13:54,080 porque quiero sacar el empleado 388 00:13:54,080 --> 00:13:56,259 del departamento de propiedad de empleado 389 00:13:56,259 --> 00:13:58,279 me saco primero 390 00:13:58,279 --> 00:14:00,299 esto, de aquí tengo que ir al otro lado 391 00:14:00,299 --> 00:14:02,360 entonces, claro, el DAO 392 00:14:02,360 --> 00:14:04,080 en realidad es casi más sencillo 393 00:14:04,080 --> 00:14:06,139 porque de consultas vas 394 00:14:06,139 --> 00:14:07,440 a objetos directamente 395 00:14:07,440 --> 00:14:09,580 y luego el servicio es el más 396 00:14:09,580 --> 00:14:10,039 frioso 397 00:14:10,039 --> 00:14:13,659 vale pues 398 00:14:13,659 --> 00:14:13,820 de 399 00:14:13,820 --> 00:14:17,679 si pues eso que el modelo no es 400 00:14:17,679 --> 00:14:19,100 JPA like quería decir 401 00:14:19,100 --> 00:14:21,340 porque las clases 402 00:14:21,340 --> 00:14:23,279 en realidad no representan 403 00:14:23,279 --> 00:14:25,360 correctamente las claves 404 00:14:25,360 --> 00:14:27,179 ajenas, no representan las relaciones 405 00:14:27,179 --> 00:14:29,460 son como una especie de foto de la 406 00:14:29,460 --> 00:14:30,759 base de datos que no es la idea 407 00:14:30,759 --> 00:14:31,899 vale 408 00:14:31,899 --> 00:14:35,259 bueno de JDBC y de lo que va a entrar 409 00:14:35,259 --> 00:14:36,360 etcétera alguna duda 410 00:14:36,360 --> 00:14:52,320 Claro, en este 411 00:14:52,320 --> 00:14:54,860 Pues, a ver, aquí por ejemplo 412 00:14:54,860 --> 00:14:55,940 Si hiciéramos 413 00:14:55,940 --> 00:15:07,049 Vale 414 00:15:07,049 --> 00:15:10,250 Imaginaos 415 00:15:10,250 --> 00:15:11,110 Que hacemos 416 00:15:11,110 --> 00:15:14,330 Recuperar sede 417 00:15:14,330 --> 00:15:16,429 Por el find by 418 00:15:16,429 --> 00:15:19,950 Así no nos detenemos mucho 419 00:15:19,950 --> 00:15:21,750 Que sería el más sencillo 420 00:15:21,750 --> 00:15:23,669 Entonces, vamos a ver cómo era la base de datos 421 00:15:23,669 --> 00:15:25,889 La base de datos 422 00:15:25,889 --> 00:15:27,690 Era esta 423 00:15:27,690 --> 00:15:41,080 Sé de dónde está 424 00:15:41,080 --> 00:15:45,049 Esta 425 00:15:45,049 --> 00:16:06,399 Bueno, pues 426 00:16:06,399 --> 00:16:08,919 Antes de responder a tu pregunta 427 00:16:08,919 --> 00:16:10,559 Haciendo un ejemplito sencillo 428 00:16:10,559 --> 00:16:13,679 ¿Cómo estudiaría yo? 429 00:16:13,679 --> 00:16:14,259 Eso 430 00:16:14,259 --> 00:16:16,980 Pues yo estudiaría 431 00:16:16,980 --> 00:16:19,679 Fatal 432 00:16:19,679 --> 00:16:24,580 Pues, por ejemplo 433 00:16:24,580 --> 00:16:25,860 ¿Puedes ir al baño? 434 00:16:26,059 --> 00:16:27,639 Sí, joder, con el baño 435 00:16:27,639 --> 00:16:28,659 Una fe, ¿eh? 436 00:16:30,620 --> 00:16:30,919 Vale 437 00:16:30,919 --> 00:16:43,440 Vale, pero vamos 438 00:16:43,440 --> 00:16:45,000 Tampoco necesitábamos todos los detalles 439 00:16:45,000 --> 00:16:49,240 No, hombre, ha dicho algo decente 440 00:16:49,240 --> 00:16:52,659 ¿Cómo estudiaría yo? 441 00:16:52,840 --> 00:16:53,600 Pues por ejemplo 442 00:16:53,600 --> 00:16:55,360 Me cogería este proyecto 443 00:16:55,360 --> 00:16:56,980 Que ya está con una base de datos 444 00:16:56,980 --> 00:16:58,299 Complicada 445 00:16:58,299 --> 00:17:00,720 Y haría un dado 446 00:17:00,720 --> 00:17:04,579 Pues por ejemplo 447 00:17:04,579 --> 00:17:05,960 De empleados 448 00:17:05,960 --> 00:17:08,680 Y diría, pues venga 449 00:17:08,680 --> 00:17:10,859 Que un método de empleado 450 00:17:10,859 --> 00:17:13,559 Es recuperar empleados por categoría 451 00:17:13,559 --> 00:17:15,539 Ese sería un buen método de dado 452 00:17:15,539 --> 00:17:17,380 Recuperar 453 00:17:17,380 --> 00:17:19,099 Todos un find de empleado 454 00:17:19,099 --> 00:17:20,420 by categoría 455 00:17:20,420 --> 00:17:23,119 entonces ahí pues hay que pasarle 456 00:17:23,119 --> 00:17:25,019 un parámetro, hay que 457 00:17:25,019 --> 00:17:27,539 hacer el select que sea 458 00:17:27,539 --> 00:17:29,299 luego un caso 459 00:17:29,299 --> 00:17:30,640 de servicio pues 460 00:17:30,640 --> 00:17:33,180 ya el que, pues ese mismo podría ser 461 00:17:33,180 --> 00:17:35,099 dada una categoría, dame todos los 462 00:17:35,099 --> 00:17:36,579 empleados o 463 00:17:36,579 --> 00:17:38,880 lo que sea, o dame una categoría 464 00:17:38,880 --> 00:17:40,480 o un caso de uso podría ser 465 00:17:40,480 --> 00:17:43,220 dame una categoría en la que no haya empleados 466 00:17:43,220 --> 00:17:44,660 en la que no haya, por ejemplo 467 00:17:44,660 --> 00:17:47,059 entonces el caso de uso ya se les apaña para usar el método 468 00:17:47,059 --> 00:17:48,660 de DAO como quiera 469 00:17:48,660 --> 00:17:51,059 Para conseguir esa funcionalidad 470 00:17:51,059 --> 00:17:52,980 ¿Vale? Pues por ejemplo, estudiaría así 471 00:17:52,980 --> 00:17:54,740 Inventándome 472 00:17:54,740 --> 00:17:57,000 DAOs y métodos 473 00:17:57,000 --> 00:17:57,880 De base de datos 474 00:17:57,880 --> 00:18:00,539 Plantando ahí las consultas y luego probándolo 475 00:18:00,539 --> 00:18:01,299 Desde el otro sitio 476 00:18:01,299 --> 00:18:05,299 Uno a priori se cree que se ha puesto cosas fáciles 477 00:18:05,299 --> 00:18:06,220 O que va a ser fácil 478 00:18:06,220 --> 00:18:08,480 Y luego en cuanto te pones a hacer las cosas 479 00:18:08,480 --> 00:18:10,579 De cualquier cosa sale un error 480 00:18:10,579 --> 00:18:11,740 Prácticamente de cualquiera 481 00:18:11,740 --> 00:18:14,140 Entonces es bueno ponerse a hacerlo 482 00:18:14,140 --> 00:18:15,460 Si uno no se pone a hacerlo 483 00:18:15,460 --> 00:18:18,059 ¿Cuánto tiempo le he completado? 484 00:18:18,660 --> 00:18:21,940 Pues 485 00:18:21,940 --> 00:18:24,339 Pues yo qué sé 486 00:18:24,339 --> 00:18:26,900 Tres horas a cada cosa, cuatro horas 487 00:18:26,900 --> 00:18:28,160 No sé 488 00:18:28,160 --> 00:18:30,160 Adrián, dos 489 00:18:30,160 --> 00:18:35,609 No lo sé 490 00:18:35,609 --> 00:18:37,950 Lo que sí que os digo es que lógicamente 491 00:18:37,950 --> 00:18:39,170 No vais a hacer un proyecto de cero 492 00:18:39,170 --> 00:18:41,630 Qué parte esté hecha, qué parte no 493 00:18:41,630 --> 00:18:43,309 Qué pido, qué no pido, eso no lo sé 494 00:18:43,309 --> 00:18:47,759 Vale, pues así es como estudiaría 495 00:18:47,759 --> 00:18:48,720 Ahora en particular esto 496 00:18:48,720 --> 00:18:51,000 Pues me podría coger este proyecto de base y ya está 497 00:18:51,000 --> 00:18:53,440 que no, igual me arriesgaría 498 00:18:53,440 --> 00:18:55,519 no lo sé, como no estamos en modo 499 00:18:55,519 --> 00:18:57,359 aprender ahora mismo, sino que estamos 500 00:18:57,359 --> 00:18:58,680 en modo examen ahora mismo 501 00:18:58,680 --> 00:19:01,220 pues no sé si me arriesgaría a pedirle 502 00:19:01,220 --> 00:19:03,380 a chat GPT que me ponga cosas 503 00:19:03,380 --> 00:19:04,960 porque igual se va a ir un poco 504 00:19:04,960 --> 00:19:07,019 aunque no, aprenderíamos mucho 505 00:19:07,019 --> 00:19:08,099 igual se va un poco 506 00:19:08,099 --> 00:19:11,420 del contexto 507 00:19:11,420 --> 00:19:13,220 exacto, el scope en el que 508 00:19:13,220 --> 00:19:15,119 estamos nosotros para el examen, entonces pues yo 509 00:19:15,119 --> 00:19:16,880 tiraría con algo más así y ya está 510 00:19:16,880 --> 00:19:18,019 ¿vale? 511 00:19:21,000 --> 00:19:23,200 En los modelos de bases de datos 512 00:19:23,200 --> 00:19:24,140 Que he usado la virtual 513 00:19:24,140 --> 00:19:25,079 Para 514 00:19:25,079 --> 00:19:28,779 Esto lo he borrado 515 00:19:28,779 --> 00:19:33,940 Había otro ejemplo de bases de datos 516 00:19:33,940 --> 00:19:36,099 Complicada que también la podía usar para estudiar 517 00:19:36,099 --> 00:19:37,480 Bueno 518 00:19:37,480 --> 00:19:39,380 Y lo que decías tú 519 00:19:39,380 --> 00:19:40,640 Luis Fernando 520 00:19:40,640 --> 00:19:44,079 Pues yo que sé, imagínate que hacemos aquí 521 00:19:44,079 --> 00:19:45,680 Otro método de DAO de sede 522 00:19:45,680 --> 00:19:47,660 Este, muy fácil 523 00:19:47,660 --> 00:19:49,619 Public sede 524 00:19:49,619 --> 00:19:51,039 Bueno, muy fácil 525 00:19:51,039 --> 00:19:52,579 Pero luego uno se atasca 526 00:19:52,579 --> 00:20:00,160 Vale, pues este va a necesitar 527 00:20:00,160 --> 00:20:01,960 Efectivamente una select con interrogación 528 00:20:01,960 --> 00:20:02,759 Entonces aquí 529 00:20:02,759 --> 00:20:05,339 Esto 530 00:20:05,339 --> 00:20:09,230 Bueno, que esta va a ser 531 00:20:09,230 --> 00:20:10,089 Nuestra sede 532 00:20:10,089 --> 00:20:15,509 Y ahora aquí, pues ahora ya 533 00:20:15,509 --> 00:20:17,390 Tú te harías la sentencia 534 00:20:17,390 --> 00:20:28,799 ¿No se llamaba así la clase? 535 00:20:29,759 --> 00:20:30,420 Ah, conexión 536 00:20:30,420 --> 00:20:30,980 Se llamaba 537 00:20:30,980 --> 00:20:35,839 Ese 538 00:20:35,839 --> 00:20:42,519 Y ahora ya 539 00:20:42,519 --> 00:20:44,559 Pues te haces tu sentencia 540 00:20:44,559 --> 00:20:51,359 Aunque estamos en el examen basándonos en muy pocas cosas 541 00:20:51,359 --> 00:20:55,880 En realidad a lo largo de las semanas hemos mencionado muchas 542 00:20:55,880 --> 00:20:57,259 Y hemos visto muchas en realidad 543 00:20:57,259 --> 00:21:00,519 Aunque luego nos hemos quedado un poco con las más básicas para el examen 544 00:21:00,519 --> 00:21:03,380 Entonces a mí me gustaría que ninguna de todas ellas 545 00:21:03,380 --> 00:21:09,039 Haya pasado por vuestro cerebro como un avión que aborta el aterrizaje 546 00:21:09,039 --> 00:21:10,579 Algo se habrá quedado 547 00:21:10,579 --> 00:21:20,470 Sí, JDBC, JPA puro 548 00:21:20,470 --> 00:21:22,470 Spring Data JPA 549 00:21:22,470 --> 00:21:24,690 Y Spring Data MongoDB 550 00:21:24,690 --> 00:21:29,470 Bueno, a usar tu Lendity Manager 551 00:21:29,470 --> 00:21:30,690 Directamente 552 00:21:30,690 --> 00:21:34,369 Y gestionar tú las transacciones 553 00:21:34,369 --> 00:21:36,410 Claro 554 00:21:36,410 --> 00:21:39,490 Vale, y ahora aquí en este que nos haríamos 555 00:21:39,490 --> 00:21:41,730 Esta SELEN sabemos hasta hacerla nosotros 556 00:21:41,730 --> 00:21:43,869 incluso, aunque bueno, jose de tiempo 557 00:21:43,869 --> 00:21:44,990 que no sepamos hacer ni esta 558 00:21:44,990 --> 00:21:47,990 aquí tenemos que seleccionar 559 00:21:47,990 --> 00:21:54,230 bueno, si la queremos con proyectos 560 00:21:54,230 --> 00:21:55,390 sería la de arriba 561 00:21:55,390 --> 00:21:57,650 la de arriba, lo que pasa es que aquí sí quedaría 562 00:21:57,650 --> 00:22:00,230 un where, es decir, sería toda esta 563 00:22:00,230 --> 00:22:05,289 claro, porque 564 00:22:05,289 --> 00:22:07,730 si yo la quiero con todas las cosas 565 00:22:07,730 --> 00:22:09,789 que le cuelgan, tengo que hacer todos los join 566 00:22:09,789 --> 00:22:11,930 otra cosa es que yo quiera la sede 567 00:22:11,930 --> 00:22:13,950 Solo con lo que hay en la tabla 568 00:22:13,950 --> 00:22:15,150 Que es su ID y su nombre 569 00:22:15,150 --> 00:22:20,069 Que sí, hombre, que sí 570 00:22:20,069 --> 00:22:22,849 Que sí, hombre, que sí 571 00:22:22,849 --> 00:22:24,130 Entonces 572 00:22:24,130 --> 00:22:31,190 Aquí, pues pondríamos 573 00:22:31,190 --> 00:22:34,759 Esta misma 574 00:22:34,759 --> 00:22:35,900 Pero, ojo, eh 575 00:22:35,900 --> 00:22:38,339 Pero aquí nos 576 00:22:38,339 --> 00:22:40,920 Está el multi 577 00:22:40,920 --> 00:22:42,440 Este habría sido más bonito, ¿verdad? 578 00:22:58,779 --> 00:22:59,640 Que no entiendes 579 00:22:59,640 --> 00:23:06,420 Y luego en los vídeos sale una tabla 580 00:23:06,420 --> 00:23:07,440 De JVC 581 00:23:07,440 --> 00:23:10,259 Una base de datos de una tabla 582 00:23:10,259 --> 00:23:13,819 Claro, pero eso es para aprender 583 00:23:13,819 --> 00:23:15,180 Sí, pero 584 00:23:15,180 --> 00:23:26,930 Ay, qué malos estamos 585 00:23:26,930 --> 00:23:33,359 Bueno, a ver 586 00:23:33,359 --> 00:23:35,460 La voy a copiar entera otra vez porque se ha copiado tan fea 587 00:23:35,460 --> 00:23:37,200 Que arreglar esto es casi más complicado que otra cosa 588 00:23:37,200 --> 00:23:39,180 Entonces 589 00:23:39,180 --> 00:23:42,339 Ana, deja de llorar 590 00:23:42,339 --> 00:23:45,039 No hay razón para que llores tanto 591 00:23:45,039 --> 00:23:55,400 Vale, entonces 592 00:23:55,400 --> 00:23:57,559 Tenemos aquí el preparé statement 593 00:24:02,420 --> 00:24:03,380 Ala, ya está 594 00:24:03,380 --> 00:24:04,259 Y copiadita 595 00:24:04,259 --> 00:24:06,619 Y es que el copiar y pegar 596 00:24:06,619 --> 00:24:08,839 Hace muchas tontunas 597 00:24:08,839 --> 00:24:22,539 Sí, va a ser lo mejor, que copie todo 598 00:24:22,539 --> 00:24:23,440 Porque es que si no 599 00:24:23,440 --> 00:24:28,990 A ver 600 00:24:28,990 --> 00:24:34,450 A ver si ahora me la copia 601 00:24:34,450 --> 00:24:35,930 Bien 602 00:24:40,349 --> 00:25:05,089 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. 603 00:25:05,089 --> 00:25:07,210 queremos solamente 604 00:25:07,210 --> 00:25:08,650 la sede cuyo id 605 00:25:08,650 --> 00:25:10,690 pues aquí es donde podrías 606 00:25:10,690 --> 00:25:11,450 pondrías 607 00:25:11,450 --> 00:25:12,829 where 608 00:25:12,829 --> 00:25:19,880 el campo sede punto id sede 609 00:25:19,880 --> 00:25:25,029 igual 610 00:25:25,029 --> 00:25:26,930 y aquí plantarías la interrogación 611 00:25:26,930 --> 00:25:29,450 y podría haber más interrogaciones 612 00:25:29,450 --> 00:25:30,769 pues donde haya 613 00:25:30,769 --> 00:25:33,789 un dato de entrada, un parámetro, todas las interrogaciones 614 00:25:33,789 --> 00:25:34,349 que quieras 615 00:25:34,349 --> 00:25:37,710 y ahora ya aquí, pues ahora ya sí que aquí haríamos 616 00:25:37,710 --> 00:25:39,529 en nuestra 617 00:25:39,529 --> 00:25:40,630 ps de aquí 618 00:25:40,630 --> 00:25:43,549 le diríamos, oye tú 619 00:25:43,549 --> 00:25:45,970 la primera de las interrogaciones 620 00:25:45,970 --> 00:25:47,809 ah, es un entero, la id debe ser un entero 621 00:25:47,809 --> 00:25:48,109 ¿verdad? 622 00:25:49,750 --> 00:25:51,829 pues entonces le diríamos, oye tú 623 00:25:51,829 --> 00:25:53,789 la primera de las interrogaciones 624 00:25:53,789 --> 00:25:55,769 es un entero 625 00:25:55,769 --> 00:25:57,410 ¿y cuál va a ser? pues 626 00:25:57,410 --> 00:25:59,009 este parámetro de aquí 627 00:25:59,009 --> 00:26:06,630 id, este, y ya está 628 00:26:06,630 --> 00:26:08,970 ¿qué tienes más? pues la 2 629 00:26:08,970 --> 00:26:10,089 la 3, la 4 630 00:26:10,089 --> 00:26:12,789 ¿vale? y ahora ya 631 00:26:12,789 --> 00:26:14,369 una vez que esto está aquí, pues 632 00:26:14,369 --> 00:26:17,190 El resto otra vez es un copia y pega 633 00:26:17,190 --> 00:26:19,430 Aquí este while result set 634 00:26:19,430 --> 00:26:21,609 Se va a ejecutar o una o ninguna 635 00:26:21,609 --> 00:26:23,250 Depende de si 636 00:26:23,250 --> 00:26:24,309 Esa set existe o no 637 00:26:24,309 --> 00:26:26,950 Pero el código lo puedo reutilizar 638 00:26:26,950 --> 00:26:27,910 Tal cual 639 00:26:27,910 --> 00:26:28,150 Porque 640 00:26:28,150 --> 00:26:33,740 Me estoy trayendo 641 00:26:33,740 --> 00:26:35,019 Todo lo que tiene asociado 642 00:26:35,019 --> 00:26:36,519 No solamente estos dos campos 643 00:26:36,519 --> 00:26:37,700 Los proyectos 644 00:26:37,700 --> 00:26:41,539 Me estoy trayendo todos los proyectos 645 00:26:41,539 --> 00:26:42,140 Entonces 646 00:26:42,140 --> 00:26:43,700 Lo que hicimos ayer 647 00:26:43,700 --> 00:26:47,079 Entonces, como el mapeo sería igual 648 00:26:47,079 --> 00:26:48,099 Todo sería igual 649 00:26:48,099 --> 00:26:49,819 Lo que pasa es que aquí 650 00:26:49,819 --> 00:26:53,319 Solo tengo una sed, esto se va a ejecutar una vez solamente 651 00:26:53,319 --> 00:26:54,680 Una o ninguna 652 00:26:54,680 --> 00:26:57,420 ¿Vale? Entonces lo podríamos copiar todo 653 00:26:57,420 --> 00:26:58,660 Tal cual 654 00:26:58,660 --> 00:26:59,559 Todo el código 655 00:26:59,559 --> 00:27:02,140 Todo tal cual 656 00:27:02,140 --> 00:27:12,069 Y ya está 657 00:27:12,069 --> 00:27:20,099 Claro, esto es el parámetro 658 00:27:20,099 --> 00:27:20,640 ¿Esto dices? 659 00:27:21,980 --> 00:27:24,059 Bueno, esta es la cláusula de búsqueda 660 00:27:24,059 --> 00:27:25,940 De la query 661 00:27:25,940 --> 00:27:28,160 Estás buscando sede por id 662 00:27:28,160 --> 00:27:30,500 La s es por la s de arriba 663 00:27:30,500 --> 00:27:31,920 Sí, porque tiene un alias 664 00:27:31,920 --> 00:27:33,759 Sede s 665 00:27:33,759 --> 00:27:34,720 Tiene este alias 666 00:27:34,720 --> 00:27:36,400 ¿Vale? 667 00:27:37,920 --> 00:27:38,700 Tiene el alias 668 00:27:38,700 --> 00:27:43,960 Sí, sí, sí 669 00:27:43,960 --> 00:27:46,480 Aquí lo que pasa es que este tenía una colección 670 00:27:46,480 --> 00:27:47,519 Y devolvíamos la colección 671 00:27:47,519 --> 00:27:48,460 Aquí solo tiene uno 672 00:27:48,460 --> 00:27:49,420 Entonces bueno 673 00:27:49,420 --> 00:27:59,119 Ah, vale, vale, vale, sí 674 00:27:59,119 --> 00:28:00,140 La apuesta final de todo 675 00:28:00,140 --> 00:28:07,380 Sí, unos crack 676 00:28:07,380 --> 00:28:10,940 A ver 677 00:28:10,940 --> 00:28:22,329 Vale, entonces esto 678 00:28:22,329 --> 00:28:24,430 Se trata de 679 00:28:24,430 --> 00:28:27,349 Retocar esto para que no me devuelva 680 00:28:27,349 --> 00:28:29,210 Una colección, sino solo un elemento 681 00:28:29,210 --> 00:28:31,390 Porque este while va a entrar 682 00:28:31,390 --> 00:28:33,150 Una o ninguna, si no entra ninguna es porque 683 00:28:33,150 --> 00:28:34,710 No existe, que devuelva null 684 00:28:34,710 --> 00:28:37,250 Y si entra una vez 685 00:28:37,250 --> 00:28:39,130 Porque la sede existe, entra una vez 686 00:28:39,130 --> 00:28:40,970 Pues aquí en lugar de ir añadiendo 687 00:28:40,970 --> 00:28:43,309 Claro, en lugar de ir añadiendo 688 00:28:43,309 --> 00:28:45,470 Es esa única sede la que me devuelve 689 00:28:45,470 --> 00:28:46,849 Y ya está, este código ya 690 00:28:46,849 --> 00:28:49,529 Lo podéis retocar vosotros para que devuelva 691 00:28:49,529 --> 00:28:51,190 La única sede y se acabó 692 00:28:51,190 --> 00:28:51,930 Lo demás está igual 693 00:28:51,930 --> 00:28:54,690 Bueno, de JDBC 694 00:28:54,690 --> 00:28:57,869 ¿Dudas de algo más de lo que pueda entrar o alguna cosa? 695 00:29:00,150 --> 00:29:04,599 ¿A qué te refieres con la clase de configuración? 696 00:29:05,680 --> 00:29:08,279 Es que en JDBC es la conexión sin más 697 00:29:08,279 --> 00:29:10,880 Porque parámetros de configuración como 698 00:29:10,880 --> 00:29:21,420 Sí, nosotros usábamos esta 699 00:29:21,420 --> 00:29:23,559 ¿Vale? La clase conexión 700 00:29:23,559 --> 00:29:24,539 Que esta en particular 701 00:29:24,539 --> 00:29:27,480 Cogía las únicas tres propiedades 702 00:29:27,480 --> 00:29:29,180 Que usaba, porque no usábamos parámetros 703 00:29:29,180 --> 00:29:31,039 Como UTC, ni como Security, ni nada 704 00:29:31,039 --> 00:29:33,299 Las cogía en particular de un properties 705 00:29:33,299 --> 00:29:35,680 Pero, ¿podríais vosotros 706 00:29:35,680 --> 00:29:37,740 También cascarlas 707 00:29:37,740 --> 00:29:38,079 Aquí? 708 00:29:43,500 --> 00:29:45,339 Si tú la tienes en tus proyectos 709 00:29:45,339 --> 00:29:46,140 La puedes coger 710 00:29:46,140 --> 00:29:49,359 Este es el proyecto modelo que usamos nosotros 711 00:29:49,359 --> 00:29:51,259 La usábamos, entonces entiendo que 712 00:29:51,259 --> 00:29:52,559 vosotros tenéis eso 713 00:29:52,559 --> 00:29:58,869 de hecho, en el que hicimos 714 00:29:58,869 --> 00:30:00,910 nosotros el otro día, dijimos 715 00:30:00,910 --> 00:30:02,150 vamos a reutilizar 716 00:30:02,150 --> 00:30:04,890 como nos es cómodo, vamos a reutilizarla 717 00:30:04,890 --> 00:30:06,369 y la reutilizamos tal cual 718 00:30:06,369 --> 00:30:08,410 del proyecto que vimos de ejemplo en su momento 719 00:30:08,410 --> 00:30:10,710 entonces, pues si vosotros tenéis 720 00:30:10,710 --> 00:30:12,470 que hacer eso desde cero, pues 721 00:30:12,470 --> 00:30:14,509 os lo hacéis de otra manera, o reutilizáis 722 00:30:14,509 --> 00:30:16,609 lo reutilizáis así, como más os guste 723 00:30:16,609 --> 00:30:17,690 vale 724 00:30:17,690 --> 00:30:21,349 pues entonces 725 00:30:21,349 --> 00:30:23,650 JPA, vale 726 00:30:23,650 --> 00:30:26,450 Voy a subir 727 00:30:26,450 --> 00:30:27,750 Ahora mismo el mismo 728 00:30:27,750 --> 00:30:29,829 Con esta misma base de datos 729 00:30:29,829 --> 00:30:32,269 El proyectito 730 00:30:32,269 --> 00:30:34,210 Con las entidades JPA hechas 731 00:30:34,210 --> 00:30:35,849 Esta vez ya bien hechas 732 00:30:35,849 --> 00:30:37,769 Y para ver un poquito 733 00:30:37,769 --> 00:30:40,009 El repaso de JPA 734 00:30:40,009 --> 00:30:41,309 ¿Vale? 735 00:30:42,190 --> 00:30:44,150 Porque si empezamos a hacerlo nosotros ahora 736 00:30:44,150 --> 00:30:46,509 Pues no, nos estamos dos horas 737 00:30:46,509 --> 00:30:47,549 Entonces