1 00:00:00,000 --> 00:00:03,980 pensar en vosotros todo el rato 2 00:00:03,980 --> 00:00:05,960 y en qué cosas 3 00:00:05,960 --> 00:00:07,419 os voy a contar cuando vuelva 4 00:00:07,419 --> 00:00:10,099 he empezado a grabar así que ya no puedo 5 00:00:10,099 --> 00:00:11,820 hablar de otra cosa que no sea esto 6 00:00:11,820 --> 00:00:14,259 ¿vale? estoy repasando 7 00:00:14,259 --> 00:00:15,779 solamente, pues para aprovechar 8 00:00:15,779 --> 00:00:18,100 para ponernos en contexto, antes de pasar al otro 9 00:00:18,100 --> 00:00:19,940 enunciado, ¿vale? estoy solamente repasando 10 00:00:19,940 --> 00:00:21,980 machacando sobre lo mismo, pues para 11 00:00:21,980 --> 00:00:22,960 que tengáis, ¿eh? 12 00:00:25,679 --> 00:00:26,839 ¿queréis que lo completemos? 13 00:00:27,879 --> 00:00:30,100 ¿vale? Pablo, tú tienes una pregunta 14 00:00:30,100 --> 00:00:33,159 Acabo de empezar a grabar ahora 15 00:00:33,159 --> 00:00:35,439 Es que cuando se ponen los iconos pequeñitos 16 00:00:35,439 --> 00:00:38,079 El pelotón rojo se pone así 17 00:00:38,079 --> 00:00:38,979 Pero 18 00:00:38,979 --> 00:00:40,640 Si está grabando 19 00:00:40,640 --> 00:00:43,039 Vale, entonces 20 00:00:43,039 --> 00:00:45,799 Esto, la gestión 21 00:00:45,799 --> 00:00:47,479 De la, si la aplicación 22 00:00:47,479 --> 00:00:48,560 No es multi hilo 23 00:00:48,560 --> 00:00:50,979 Pues podemos tener 24 00:00:50,979 --> 00:00:52,619 Ese único objeto 25 00:00:52,619 --> 00:00:55,380 Cada vez que queremos hacer alguna operación 26 00:00:55,380 --> 00:00:56,299 Con la base de datos 27 00:00:56,299 --> 00:00:59,079 Usamos esa conexión para hacer lo que sea 28 00:00:59,079 --> 00:00:59,780 Y ya está 29 00:00:59,780 --> 00:01:02,799 el programa irá avanzando, que ahora tiene que hacer otra cosa 30 00:01:02,799 --> 00:01:04,739 pues usará esa misma conexión 31 00:01:04,739 --> 00:01:06,859 y ya está, porque el programa es multihilo 32 00:01:06,859 --> 00:01:08,280 perdón, no es multihilo 33 00:01:08,280 --> 00:01:10,819 que queremos tener en lugar de una 34 00:01:10,819 --> 00:01:12,760 única conexión, queremos tener un montón 35 00:01:12,760 --> 00:01:14,280 de conexiones ahí a la espera 36 00:01:14,280 --> 00:01:16,840 e ir cogiendo una de ellas 37 00:01:16,840 --> 00:01:18,439 que sería lo ideal 38 00:01:18,439 --> 00:01:20,500 si tenemos un programa multihilo, entonces el multihilo 39 00:01:20,500 --> 00:01:22,560 ya no va a coger la conexión única, porque puede 40 00:01:22,560 --> 00:01:24,140 que esté usada en ese momento por otro 41 00:01:24,140 --> 00:01:26,620 no debería, y sincronizar esto 42 00:01:26,620 --> 00:01:28,739 es un coñazo, entonces si la aplicación 43 00:01:28,739 --> 00:01:30,299 es multihilo, entonces 44 00:01:30,299 --> 00:01:32,459 este objeto es el que nos interesa 45 00:01:32,459 --> 00:01:34,560 que es el que gestiona mi pool 46 00:01:34,560 --> 00:01:36,599 de conexiones, el hilo que quiere 47 00:01:36,599 --> 00:01:38,680 una conexión le dice al pool, dame una conexión 48 00:01:38,680 --> 00:01:40,599 la usa para eso y luego 49 00:01:40,599 --> 00:01:42,359 la suelta, y el pool ya gestiona 50 00:01:42,359 --> 00:01:44,620 el cierre de esa conexión, etcétera 51 00:01:44,620 --> 00:01:46,420 vale, pues este single con gestionaba 52 00:01:46,420 --> 00:01:46,920 estos dos 53 00:01:46,920 --> 00:01:50,680 la instanciación de estos dos para que fueran 54 00:01:50,680 --> 00:01:51,079 únicos 55 00:01:51,079 --> 00:01:54,700 tenemos el getConnection y el getPool 56 00:01:54,700 --> 00:01:56,500 y ya está, era lo único que tenía esta clase 57 00:01:56,500 --> 00:01:58,659 y ahora ya entrábamos en la 58 00:01:58,659 --> 00:02:00,680 aplicación pura y dura que tenemos que seguir 59 00:02:00,680 --> 00:02:02,920 el patrón, DAO, servicio como mínimo 60 00:02:02,920 --> 00:02:04,019 como mínimo 61 00:02:04,019 --> 00:02:06,420 ¿vale? y ya está 62 00:02:06,420 --> 00:02:08,659 y entonces aquí dijimos que 63 00:02:08,659 --> 00:02:10,520 en las 64 00:02:10,520 --> 00:02:11,840 en los DAOs 65 00:02:11,840 --> 00:02:14,500 se ponen los métodos 66 00:02:14,500 --> 00:02:16,919 que modifican, alteran 67 00:02:16,919 --> 00:02:18,860 consultan la entidad 68 00:02:18,860 --> 00:02:20,599 que sea, aquí 69 00:02:20,599 --> 00:02:22,120 todo lo que toque a empleado 70 00:02:22,120 --> 00:02:24,639 aunque para tocar a empleado tenga que usar 71 00:02:24,639 --> 00:02:26,659 otra base de DAO, otra tabla, no pasa nada 72 00:02:26,659 --> 00:02:28,580 ¿no? por ejemplo 73 00:02:28,580 --> 00:02:30,900 aquí sacar el empleado 74 00:02:30,900 --> 00:02:32,479 con más pisos alquilados 75 00:02:32,479 --> 00:02:34,979 o lo que sea, para hacer esa consulta 76 00:02:34,979 --> 00:02:36,460 va a haber que tocar lógicamente 77 00:02:36,460 --> 00:02:38,539 la tabla pisos también, porque están ligadas 78 00:02:38,539 --> 00:02:40,520 la una con la otra, pero da igual 79 00:02:40,520 --> 00:02:42,219 el resultado es un objeto empleado 80 00:02:42,219 --> 00:02:44,659 o a todos los métodos que trabajan 81 00:02:44,659 --> 00:02:46,319 con una entidad, ahí 82 00:02:46,319 --> 00:02:48,900 aunque para obtener esos resultados 83 00:02:48,900 --> 00:02:50,080 habría que tocar otras tablas 84 00:02:50,080 --> 00:02:52,580 aparte de los del CRUD básico 85 00:02:52,580 --> 00:02:54,560 sin ser del ETE, etcétera, pues piso 86 00:02:54,560 --> 00:02:56,000 luego ya hacíamos 87 00:02:56,000 --> 00:02:58,520 aquí, lo que os dejé yo ya es para 88 00:02:58,520 --> 00:03:10,020 que hicierais la implementación de estos métodos y de piso sería pues los el cruz y si hay algún 89 00:03:10,020 --> 00:03:15,560 otro que le interesa a la aplicación en función de el enunciado de lo que me han pedido hacer y 90 00:03:15,560 --> 00:03:22,400 luego ya la clase servicio donde marcamos que queremos que haga la aplicación que queremos 91 00:03:22,400 --> 00:03:24,120 que haga, y ahí vaya 92 00:03:24,120 --> 00:03:25,620 los métodos que va a llamar el main 93 00:03:25,620 --> 00:03:28,060 el main o 94 00:03:28,060 --> 00:03:30,379 el serlet o quien sea 95 00:03:30,379 --> 00:03:32,400 o quien sea, depende de la arquitectura 96 00:03:32,400 --> 00:03:33,900 que no lo hicimos, entonces 97 00:03:33,900 --> 00:03:36,780 a ver, podemos 98 00:03:36,780 --> 00:03:40,400 queréis que completemos esta aplicación 99 00:03:40,400 --> 00:03:42,280 o la dejamos 100 00:03:42,280 --> 00:03:44,180 yo pensaba que esta vez 101 00:03:44,180 --> 00:03:46,300 con ella y que la dejábamos y pasábamos a la otra 102 00:03:46,300 --> 00:03:48,259 ¿queréis que la completemos? así que estamos en plan 103 00:03:48,259 --> 00:03:51,099 vale 104 00:03:51,099 --> 00:03:53,599 vale, pues venga 105 00:03:53,599 --> 00:03:57,159 pues ya está 106 00:03:57,159 --> 00:03:58,460 entonces tenemos que hacer 107 00:03:58,460 --> 00:03:59,439 en piso dado 108 00:03:59,439 --> 00:04:01,039 que vamos a hacer 109 00:04:01,039 --> 00:04:01,740 solo los métodos 110 00:04:01,740 --> 00:04:02,860 que realmente le interesan 111 00:04:02,860 --> 00:04:03,500 al ejercicio 112 00:04:03,500 --> 00:04:04,280 no todo el crud 113 00:04:04,280 --> 00:04:04,939 y todo eso 114 00:04:04,939 --> 00:04:07,039 pues a este ejercicio 115 00:04:07,039 --> 00:04:07,879 que tenía que hacer 116 00:04:07,879 --> 00:04:08,840 va a tener que insertar 117 00:04:08,840 --> 00:04:09,500 empleados 118 00:04:09,500 --> 00:04:11,340 son los únicos requisitos 119 00:04:11,340 --> 00:04:11,740 son estos 120 00:04:11,740 --> 00:04:13,400 pues como va a tener que insertar 121 00:04:13,400 --> 00:04:15,099 empleados y pisos 122 00:04:15,099 --> 00:04:16,399 un insert 123 00:04:16,399 --> 00:04:17,660 tenemos que hacer 124 00:04:17,660 --> 00:04:19,139 pues venga 125 00:04:19,139 --> 00:04:22,240 void insert 126 00:04:22,240 --> 00:04:24,540 un piso. 127 00:04:26,959 --> 00:04:30,129 ¡Hala! ¿Qué más 128 00:04:30,129 --> 00:04:32,329 cosas nos va a interesar hacer con los 129 00:04:32,329 --> 00:04:33,069 pisos? 130 00:04:34,410 --> 00:04:36,050 Modificar la 131 00:04:36,050 --> 00:04:37,050 mensualidad. 132 00:04:38,290 --> 00:04:39,230 Pues venga. 133 00:04:40,730 --> 00:04:42,230 Entonces, modificar la 134 00:04:42,230 --> 00:04:42,970 mensualidad 135 00:04:42,970 --> 00:04:46,389 es una aplicación, o sea, es un método 136 00:04:46,389 --> 00:04:48,389 que suena más a método de servicio. 137 00:04:49,410 --> 00:04:49,870 Entonces, 138 00:04:50,170 --> 00:04:52,170 realmente lo que implica esto es 139 00:04:52,850 --> 00:04:53,829 actualizar el piso. 140 00:04:53,829 --> 00:05:11,829 Pues en el DAO lo que iría es un UBDATE piso. Y ya el servicio que coja el piso, le cambie la mensualidad y ponga UBDATE. ¿Entendéis? Es decir, hay que, de alguna manera hay que tener cierto criterio para elaborar un diseño. 141 00:05:11,829 --> 00:05:13,769 y es, insertar un piso 142 00:05:13,769 --> 00:05:15,790 está claro que es un método de CRUD tal cual 143 00:05:15,790 --> 00:05:17,350 insertar, pues tal cual al DAO 144 00:05:17,350 --> 00:05:19,870 pero modificar su mensualidad 145 00:05:19,870 --> 00:05:21,769 esto es hacer un UPDATE 146 00:05:21,769 --> 00:05:23,709 del piso, pues ya está 147 00:05:23,709 --> 00:05:25,569 hacemos un UPDATE en nuestro DAO 148 00:05:25,569 --> 00:05:27,769 y luego ya habrá un método de servicio 149 00:05:27,769 --> 00:05:29,569 que ya sí que sea modificar mensualidad 150 00:05:29,569 --> 00:05:32,129 recién de mensualidad nueva, pues el método de servicio 151 00:05:32,129 --> 00:05:33,949 recogerá el piso 152 00:05:33,949 --> 00:05:35,769 le pondrá nueva mensualidad 153 00:05:35,769 --> 00:05:36,750 y ya llamará al UPDATE 154 00:05:36,750 --> 00:05:37,889 ¿vale? 155 00:05:39,329 --> 00:05:41,149 claro, claro, efectivamente 156 00:05:41,149 --> 00:05:43,490 ahí, entonces 157 00:05:43,490 --> 00:05:45,689 todo esto son de nuevo 158 00:05:45,689 --> 00:05:47,970 cuestiones de diseño, esto no es que sea 159 00:05:47,970 --> 00:05:49,930 la biblia de cómo se hacen 160 00:05:49,930 --> 00:05:51,949 las cosas, pero bueno, son 161 00:05:51,949 --> 00:05:54,949 UBDATE 162 00:05:54,949 --> 00:05:58,629 vale, pues aquí 163 00:05:58,629 --> 00:06:02,310 esto, la idea de 164 00:06:02,310 --> 00:06:04,410 UBDATE PISO, lógicamente lleva 165 00:06:04,410 --> 00:06:06,110 incorporado que PISO 166 00:06:06,110 --> 00:06:08,550 tendrá una clave primaria, que no se toca 167 00:06:08,550 --> 00:06:10,850 claro, el PISO 168 00:06:10,850 --> 00:06:11,930 tiene una clave primaria 169 00:06:11,930 --> 00:06:14,829 entonces UBDATE PISO da por sentado 170 00:06:14,829 --> 00:06:17,610 que las claves primarias no se modifican 171 00:06:17,610 --> 00:06:18,410 lógicamente 172 00:06:18,410 --> 00:06:21,110 entonces aquí en el un date piso 173 00:06:21,110 --> 00:06:23,649 lo que hará este método 174 00:06:23,649 --> 00:06:25,509 tendremos que hacer el SQL para que 175 00:06:25,509 --> 00:06:28,170 el registro 176 00:06:28,170 --> 00:06:29,629 con el ID correspondiente 177 00:06:29,629 --> 00:06:31,029 a este objeto 178 00:06:31,029 --> 00:06:33,769 le cambie los datos con el resto de campos 179 00:06:33,769 --> 00:06:35,670 las claves primarias no se tocan 180 00:06:35,670 --> 00:06:37,329 bueno, pues con un date piso 181 00:06:37,329 --> 00:06:39,329 ya podremos hacer el servicio de modificar 182 00:06:39,329 --> 00:06:41,189 que igual le pedís a esta aplicación 183 00:06:41,189 --> 00:06:43,569 HGPT y la planteé de forma completamente distinta 184 00:06:43,569 --> 00:06:45,329 pues puede ser, pero entonces vosotros 185 00:06:45,329 --> 00:06:46,930 como ya tenéis criterio y ya no 186 00:06:46,930 --> 00:06:48,930 tenéis el control, que es lo que importa 187 00:06:48,930 --> 00:06:50,930 no, no, no 188 00:06:50,930 --> 00:06:53,449 como tenéis el control, entonces ya le podéis decir 189 00:06:53,449 --> 00:06:54,610 es cuando realmente aprendes 190 00:06:54,610 --> 00:06:57,490 le dices, uy, ¿por qué has puesto este método aquí? 191 00:06:58,009 --> 00:06:59,209 ¿no tendría más sentido 192 00:06:59,209 --> 00:07:01,610 teniendo en cuenta que es de DAO, que es de CRUD 193 00:07:01,610 --> 00:07:02,930 ponerlo en este otro sitio 194 00:07:02,930 --> 00:07:05,110 y seguramente diga 195 00:07:05,110 --> 00:07:06,569 tienes razón 196 00:07:06,569 --> 00:07:08,930 ya 197 00:07:08,930 --> 00:07:10,529 no, no siempre 198 00:07:10,529 --> 00:07:12,930 busca el trabajo 199 00:07:12,930 --> 00:07:17,470 En estas cosas 200 00:07:17,470 --> 00:07:19,189 No te da la razón 201 00:07:19,189 --> 00:07:21,589 Lo que pasa es que es por sistema 202 00:07:21,589 --> 00:07:24,110 Si le haces una consulta sentimental 203 00:07:24,110 --> 00:07:25,629 No lo sé, no se la has hecho nunca 204 00:07:25,629 --> 00:07:27,910 Entiendo que ahí empatiza un poco más 205 00:07:27,910 --> 00:07:31,329 Depende 206 00:07:31,329 --> 00:07:33,269 A ver, depende en qué tipo de cosas 207 00:07:33,269 --> 00:07:35,230 No lo sé, pero en cosas que 208 00:07:35,230 --> 00:07:38,069 O sea, complaciente como para inducirte 209 00:07:38,069 --> 00:07:39,050 Que hagas las cosas mal, no 210 00:07:39,050 --> 00:07:40,649 Eso yo no lo he visto nunca 211 00:07:40,649 --> 00:07:44,610 pero bueno, con el tienes razón 212 00:07:44,610 --> 00:07:46,750 no me refiero a que entonces diréis 213 00:07:46,750 --> 00:07:48,170 ay claro, es que me lo hicieron la buena 214 00:07:48,170 --> 00:07:50,490 sino que se genera un debate interesante 215 00:07:50,490 --> 00:07:52,930 y que normalmente las cosas que te dice al respecto 216 00:07:52,930 --> 00:07:54,550 aunque el primer tienes razón 217 00:07:54,550 --> 00:07:56,250 haya sido un poco complaciente 218 00:07:56,250 --> 00:07:58,509 las cosas que te dice al respecto 219 00:07:58,509 --> 00:08:00,910 y el debate que se genera, pues suele tener su sentido 220 00:08:00,910 --> 00:08:02,829 entonces ahí como no habéis perdido 221 00:08:02,829 --> 00:08:04,829 el control y sabéis la pregunta que le hacéis 222 00:08:04,829 --> 00:08:06,269 ¿y por qué lo has metido aquí? 223 00:08:06,709 --> 00:08:08,009 es decir, ah pues tienes razón 224 00:08:08,009 --> 00:08:10,310 Es verdad que se podría meter ahí 225 00:08:10,310 --> 00:08:11,910 Yo no lo he hecho por no sé qué 226 00:08:11,910 --> 00:08:13,449 Pero ya más o menos 227 00:08:13,449 --> 00:08:14,949 Ya se lo sois capaces 228 00:08:14,949 --> 00:08:17,870 No, no, no, tenéis que 229 00:08:17,870 --> 00:08:19,689 Saber más que él 230 00:08:19,689 --> 00:08:22,430 Él tiene mucha más información sobre esto 231 00:08:22,430 --> 00:08:23,569 Está claro, pero 232 00:08:23,569 --> 00:08:26,550 Hay que saber un poquito más que él, efectivamente 233 00:08:26,550 --> 00:08:27,949 Y ahora, pues bueno 234 00:08:27,949 --> 00:08:29,930 Ya empezáis a tener el control de muchas cosas 235 00:08:29,930 --> 00:08:32,009 Vale, UDATEPISO 236 00:08:32,009 --> 00:08:33,009 Pues lo hemos colocado aquí 237 00:08:33,009 --> 00:08:35,570 Porque nos habla a nosotros 238 00:08:35,570 --> 00:08:37,850 No es que diga que esto es lo mejor del mundo 239 00:08:37,850 --> 00:08:40,450 Cambiar en un piso 240 00:08:40,450 --> 00:08:41,429 El empleado que lo lleva 241 00:08:41,429 --> 00:08:43,230 Pues esto también va a tirar de UDATE 242 00:08:43,230 --> 00:08:45,450 Esto implicará el servicio 243 00:08:45,450 --> 00:08:47,250 Esto lo tendremos que meter en el servicio 244 00:08:47,250 --> 00:08:49,809 Alquilar piso y dejar de alquilarlo 245 00:08:49,809 --> 00:08:51,610 Pues también va a implicar el UDATE 246 00:08:51,610 --> 00:08:54,070 Con lo cual esto se va al servicio 247 00:08:54,070 --> 00:08:55,629 Vale 248 00:08:55,629 --> 00:09:00,029 Me iba a salir un chiste como los de John 249 00:09:00,029 --> 00:09:01,470 Pero me he reprimido 250 00:09:01,470 --> 00:09:03,690 Es que es demasiado malo 251 00:09:03,690 --> 00:09:05,250 Hasta para ti era malo 252 00:09:05,250 --> 00:09:06,450 No, es que cuando he dicho 253 00:09:06,450 --> 00:09:07,350 Este se va al servicio 254 00:09:07,350 --> 00:09:09,029 yo le digo que seguro que no lo tiene enterrado 255 00:09:09,029 --> 00:09:10,309 pues me ha salido eso 256 00:09:10,309 --> 00:09:11,909 pero es malo hasta para John 257 00:09:11,909 --> 00:09:15,889 que ya lo he dicho 258 00:09:15,889 --> 00:09:17,549 no se ha hecho gracia 259 00:09:17,549 --> 00:09:21,590 he dicho, este entonces se va al servicio 260 00:09:21,590 --> 00:09:23,250 y va a decir, bueno no puede 261 00:09:23,250 --> 00:09:24,350 porque lo estoy encerrado 262 00:09:24,350 --> 00:09:25,929 ese era el chiste, ¿ves? 263 00:09:26,230 --> 00:09:28,769 y he dicho, no, me lo callo porque ni yo 264 00:09:28,769 --> 00:09:28,970 ni 265 00:09:28,970 --> 00:09:35,110 he superado a John 266 00:09:35,110 --> 00:09:37,929 Estoy a la par 267 00:09:37,929 --> 00:09:42,809 Estoy a la par 268 00:09:42,809 --> 00:09:43,509 Vale 269 00:09:43,509 --> 00:09:45,990 A ver, que de esos también me puede salir 270 00:09:45,990 --> 00:09:48,830 Dado un código de piso 271 00:09:48,830 --> 00:09:50,929 Mostrar el empleado que lo lleva 272 00:09:50,929 --> 00:09:54,870 Este lo habíamos metido en el DAO 273 00:09:54,870 --> 00:09:58,029 Este lo habíamos metido en el DAO de piso 274 00:09:58,029 --> 00:09:59,330 En el DAO de empleado, ¿verdad? 275 00:10:00,929 --> 00:10:02,789 Este ya lo habíamos metido en el DAO de empleado 276 00:10:02,789 --> 00:10:05,269 Ese también lo habíamos metido 277 00:10:05,269 --> 00:10:06,870 En el DAO de empleado 278 00:10:06,870 --> 00:10:08,870 Y este también 279 00:10:08,870 --> 00:10:10,789 Lo habíamos metido en el DAO de empleado 280 00:10:10,789 --> 00:10:13,529 En el DAO de empleado 281 00:10:13,529 --> 00:10:14,549 Ya lo teníamos todo 282 00:10:14,549 --> 00:10:16,629 Entonces ya está 283 00:10:16,629 --> 00:10:17,909 Tenemos estos dos DAOs 284 00:10:17,909 --> 00:10:20,090 Podríamos meter lógicamente más cosas 285 00:10:20,090 --> 00:10:22,970 A ver, get empleado 286 00:10:22,970 --> 00:10:25,509 Un recuperar por ID 287 00:10:25,509 --> 00:10:27,470 Es que eso, dejar un DAO 288 00:10:27,470 --> 00:10:29,110 Un find by ID 289 00:10:29,110 --> 00:10:29,690 O lo que sea 290 00:10:29,690 --> 00:10:32,769 Es un poco desagradable 291 00:10:32,769 --> 00:10:40,330 Esto mínimo porque es que lo vamos a necesitar 292 00:10:40,330 --> 00:10:44,110 Y estos es que 293 00:10:44,110 --> 00:10:45,529 También están siempre 294 00:10:45,529 --> 00:10:48,529 Vamos, que son de examen 295 00:10:48,529 --> 00:10:49,789 No, no es que sean de examen 296 00:10:49,789 --> 00:10:52,190 Son de aprender, de debatir 297 00:10:52,190 --> 00:10:53,409 ¿No queríais debatir cosas? 298 00:10:54,129 --> 00:10:56,110 Pues debatamos sobre esto, sobre qué opináis 299 00:10:56,110 --> 00:10:57,809 Sobre que esto tenga que aparecer aquí 300 00:10:57,809 --> 00:11:00,090 Una preguntilla tengo yo 301 00:11:00,090 --> 00:11:01,289 Por ejemplo, para ver si 302 00:11:01,289 --> 00:11:02,370 Eso no va a ocurrir 303 00:11:02,370 --> 00:11:05,429 Para ver si está alquilado o no 304 00:11:05,429 --> 00:11:08,450 Puedes devolver también una lista de pisos 305 00:11:08,450 --> 00:11:10,490 Que te diga los que están alquilados 306 00:11:10,490 --> 00:11:12,889 Bueno, pero sería otro método 307 00:11:12,889 --> 00:11:14,990 ¿Vale? Sería otro método 308 00:11:14,990 --> 00:11:18,129 Depende de lo que te pida la aplicación 309 00:11:18,129 --> 00:11:19,490 Vale, entonces 310 00:11:19,490 --> 00:11:22,330 El DAO de piso lo dejamos así 311 00:11:22,330 --> 00:11:24,289 Y el DAO de empleado 312 00:11:24,289 --> 00:11:25,950 Lo dejamos así 313 00:11:25,950 --> 00:11:26,789 ¿Vale? 314 00:11:27,789 --> 00:11:29,470 Vamos a hacer la implementación 315 00:11:29,470 --> 00:11:31,990 Pues venga 316 00:11:31,990 --> 00:11:34,090 Para hacer la implementación, otro paquetillo 317 00:11:34,090 --> 00:11:35,850 ¿En empleado? 318 00:11:36,850 --> 00:11:38,289 En empleado los que estaban 319 00:11:38,289 --> 00:11:39,850 No he tocado nada 320 00:11:39,850 --> 00:11:45,230 Tiene estos cuatro solo 321 00:11:45,230 --> 00:11:48,330 Que creo que son los únicos que voy a necesitar 322 00:11:48,330 --> 00:11:49,389 Desde la clase servicio 323 00:11:49,389 --> 00:11:50,769 A lo mejor luego no y hay que meter más 324 00:11:50,769 --> 00:11:53,490 No lo sé, pero creo que son los únicos que voy a necesitar 325 00:11:53,490 --> 00:11:55,529 No lo sé porque no he hecho el ejercicio 326 00:11:55,529 --> 00:11:59,230 Vale 327 00:11:59,230 --> 00:12:04,299 Dao, venga 328 00:12:04,299 --> 00:12:06,620 Un paquetillo, dao, implementación 329 00:12:06,620 --> 00:12:15,360 Pues 330 00:12:15,360 --> 00:12:17,759 Piso, dao 331 00:12:17,759 --> 00:12:19,960 Implementación 332 00:12:19,960 --> 00:12:20,720 Ya está 333 00:12:20,720 --> 00:12:23,360 Y este 334 00:12:23,360 --> 00:12:25,379 Implementa 335 00:12:25,379 --> 00:12:26,759 Implement 336 00:12:26,759 --> 00:12:29,340 Piso 337 00:12:29,340 --> 00:12:30,100 Dao 338 00:12:30,100 --> 00:12:33,500 Al implementar piso dao 339 00:12:33,500 --> 00:12:35,720 Necesitamos 340 00:12:35,720 --> 00:12:39,159 Toda esa morralla 341 00:12:39,159 --> 00:12:42,039 Todo esto 342 00:12:42,039 --> 00:12:43,899 Vale 343 00:12:43,899 --> 00:12:45,379 Pues venga 344 00:12:45,379 --> 00:12:47,600 Recuperar piso 345 00:12:47,600 --> 00:12:49,879 por id, este es un 346 00:12:49,879 --> 00:12:51,799 select, un query, para que no nos 347 00:12:51,799 --> 00:12:53,960 hagan inyecciones SQL un prepared statement 348 00:12:53,960 --> 00:12:55,779 pues nada, esto va a ser 349 00:12:55,779 --> 00:12:56,139 una 350 00:12:56,139 --> 00:12:58,899 un try con recursos 351 00:12:58,899 --> 00:13:01,820 vale, el recurso 352 00:13:01,820 --> 00:13:03,299 será el prepared 353 00:13:03,299 --> 00:13:05,159 statement, verdad 354 00:13:05,159 --> 00:13:08,830 para que se cierre solo 355 00:13:08,830 --> 00:13:11,590 y este va a ser 356 00:13:11,590 --> 00:13:13,690 conexión 357 00:13:13,690 --> 00:13:15,669 que la conexión la sacamos 358 00:13:15,669 --> 00:13:19,129 con aquí 359 00:13:19,129 --> 00:13:43,419 Ah, sí, sí, sí, perdón 360 00:13:43,419 --> 00:13:45,460 Ya decía yo que me estaba quedando una línea muy larga 361 00:13:45,460 --> 00:13:47,539 Aquí estoy haciendo una cosa muy fea 362 00:13:47,539 --> 00:13:49,039 Claro, efectivamente 363 00:13:49,039 --> 00:13:50,580 Está una cosa bastante horrible 364 00:13:50,580 --> 00:13:53,340 El dado depende de 365 00:13:53,340 --> 00:13:54,659 Este objeto 366 00:13:54,659 --> 00:13:56,019 ¿Vale? 367 00:13:57,019 --> 00:13:59,100 Y este objeto se lo vamos a 368 00:13:59,100 --> 00:14:01,000 inyectar en el constructor 369 00:14:01,000 --> 00:14:02,740 vale, este es el diseño 370 00:14:02,740 --> 00:14:05,220 habitual, efectivamente, muy bien 371 00:14:05,220 --> 00:14:06,440 estás muy despierto 372 00:14:06,440 --> 00:14:09,159 porque es que si no, a ver, me iba a ser una cosa 373 00:14:09,159 --> 00:14:10,139 más fea que nada 374 00:14:10,139 --> 00:14:13,000 di que sí, vale 375 00:14:13,000 --> 00:14:14,600 y entonces 376 00:14:14,600 --> 00:14:17,259 aquí le vamos 377 00:14:17,259 --> 00:14:19,340 a inyectar lo que necesita 378 00:14:19,340 --> 00:14:21,080 que es la conexión 379 00:14:21,080 --> 00:14:21,960 vale 380 00:14:21,960 --> 00:14:35,809 vale, se la inyectamos 381 00:14:35,809 --> 00:14:37,769 con lo cual aquí no hace falta esto 382 00:14:37,769 --> 00:14:39,389 aquí hace falta el 383 00:14:39,389 --> 00:15:17,809 Prepare statement con bajo el SQL abajo, aunque quede un poco feo, select asterisco from la tabla que se llama inmobiliaria y la tabla se llamaba pisos. 384 00:15:17,809 --> 00:15:28,750 Donde el id 385 00:15:28,750 --> 00:15:31,029 Igual a este 386 00:15:31,029 --> 00:15:32,470 ¿Vale? 387 00:15:34,009 --> 00:15:34,730 ¿Qué? 388 00:15:41,789 --> 00:15:42,289 Vale 389 00:15:42,289 --> 00:15:46,620 Y aquí ya puedo poner 390 00:15:46,620 --> 00:15:48,399 Set 391 00:15:48,399 --> 00:15:49,919 Int 392 00:15:49,919 --> 00:15:52,700 Interrogación 1 igual a id 393 00:15:52,700 --> 00:15:56,450 ¿Vale? 394 00:16:04,080 --> 00:16:05,460 A ver, aquí 395 00:16:05,460 --> 00:16:07,600 Lo único es que el result 396 00:16:07,600 --> 00:16:10,179 Lo ideal sería meterlo todo aquí 397 00:16:10,179 --> 00:16:11,960 Y así el result set 398 00:16:11,960 --> 00:16:13,080 Se cierra solo también 399 00:16:13,080 --> 00:16:15,000 Entonces 400 00:16:15,000 --> 00:16:19,059 Esta sentencia acaba 401 00:16:19,059 --> 00:16:21,500 Me sobra uno de estos, ¿verdad? 402 00:16:21,799 --> 00:16:22,379 Me sobra 403 00:16:22,379 --> 00:16:23,639 Dos, creo 404 00:16:23,639 --> 00:16:26,940 Es que esto, claro 405 00:16:26,940 --> 00:16:33,710 Bueno, voy a ir quitando errores de compilación 406 00:16:33,710 --> 00:16:35,970 Porque si no, se vaya callando 407 00:16:35,970 --> 00:16:36,570 Vale 408 00:16:36,570 --> 00:16:38,830 Vale, entonces 409 00:16:38,830 --> 00:16:39,590 Aquí 410 00:16:39,590 --> 00:16:42,629 Este paréntesis cierra aquí 411 00:16:42,629 --> 00:16:45,909 Entonces la otra sentencia 412 00:16:45,909 --> 00:16:56,480 Bueno, pues nada, pongo aquí el result set 413 00:16:56,480 --> 00:17:05,130 Query 414 00:17:05,130 --> 00:17:14,630 Vale, y ahora piso p igual a new piso 415 00:17:14,630 --> 00:17:28,289 Y ahora ya sí que p.set 416 00:17:28,289 --> 00:17:31,289 Pues dirección 417 00:17:31,289 --> 00:17:34,490 rs.get 418 00:17:34,490 --> 00:17:37,470 String, el campo dirección 419 00:17:37,470 --> 00:17:39,410 A ver si me los aprendo de memoria 420 00:17:39,410 --> 00:17:41,349 En piso 421 00:17:41,349 --> 00:17:44,009 Serían dirección, mensualidad 422 00:17:44,009 --> 00:17:44,930 Alquilado 423 00:17:44,930 --> 00:17:46,990 Y NIF barra baja de empleado 424 00:17:46,990 --> 00:17:50,430 Vale, entonces 425 00:17:50,430 --> 00:17:52,509 Dirección 426 00:17:52,509 --> 00:18:03,900 Es que esto, claro, haciéndolo tardamos 427 00:18:03,900 --> 00:18:05,619 Se nos va un montón de rato haciendo esto 428 00:18:05,619 --> 00:18:05,940 Pero bueno 429 00:18:05,940 --> 00:18:11,119 Es que este ejercicio decía que lo hicierais con JDBC 430 00:18:11,119 --> 00:18:11,799 El siguiente 431 00:18:11,799 --> 00:18:12,720 Con el de 432 00:18:12,720 --> 00:18:13,599 Vale 433 00:18:13,599 --> 00:18:16,259 Setdir 434 00:18:16,259 --> 00:18:19,839 p.set 435 00:18:19,839 --> 00:18:26,180 mensualidad 436 00:18:26,180 --> 00:18:29,599 igual a rs.get 437 00:18:29,599 --> 00:18:34,220 string, mensualidad era un decimal 438 00:18:34,220 --> 00:18:36,799 ¿verdad? luego es un double 439 00:18:36,799 --> 00:18:43,079 mensualidad 440 00:18:43,079 --> 00:18:52,650 set 441 00:18:52,650 --> 00:19:00,500 p.set 442 00:19:00,500 --> 00:19:02,579 alquilado, entonces que le ponemos 443 00:19:02,579 --> 00:19:04,619 true o false, pues no 444 00:19:04,619 --> 00:19:06,500 depende de lo que hayamos 445 00:19:06,500 --> 00:19:08,240 sacado aquí, pues 446 00:19:08,240 --> 00:19:10,599 rs.get 447 00:19:10,599 --> 00:19:14,670 get 448 00:19:14,670 --> 00:19:16,769 alquilado era 449 00:19:16,769 --> 00:19:17,349 entero, no 450 00:19:17,349 --> 00:19:19,849 get in 451 00:19:19,849 --> 00:19:21,990 alquilado 452 00:19:21,990 --> 00:19:26,029 es igual 453 00:19:26,029 --> 00:19:27,670 a cero 454 00:19:27,670 --> 00:19:30,230 entonces false 455 00:19:30,230 --> 00:19:32,109 si no true 456 00:19:32,109 --> 00:19:34,190 vale, porque 457 00:19:34,190 --> 00:19:35,789 que se llama alquilado. 458 00:19:37,130 --> 00:19:37,930 Alquilado, sí. 459 00:19:38,869 --> 00:19:39,109 Vale. 460 00:19:39,410 --> 00:19:41,309 Y aquí estamos. 461 00:19:41,450 --> 00:19:44,559 Nos falta... 462 00:19:44,559 --> 00:19:45,880 Vamos a ponerle el ID también, 463 00:19:46,099 --> 00:19:46,859 pero ese es fácil. 464 00:19:48,559 --> 00:19:50,519 El ID es el ID que me han pasado como parámetro. 465 00:19:50,680 --> 00:19:51,960 No tengo que sacarlo del resource set. 466 00:19:53,079 --> 00:19:55,920 ¿Y qué campo le falta a este? 467 00:19:56,160 --> 00:19:58,019 Que este de allá es el que nos complica. 468 00:19:58,559 --> 00:19:58,920 Tenemos... 469 00:19:58,920 --> 00:19:59,700 Si está alquilado o no. 470 00:19:59,799 --> 00:20:00,440 La dirección. 471 00:20:00,779 --> 00:20:01,759 El ID y la mensualidad. 472 00:20:02,640 --> 00:20:04,059 Nos falta el empleado. 473 00:20:04,059 --> 00:20:06,420 y aquí hay que poner un objeto empleado 474 00:20:06,420 --> 00:20:07,119 es que no hay otra 475 00:20:07,119 --> 00:20:10,299 entonces, esto no es fácil 476 00:20:10,299 --> 00:20:12,779 ¿vale? porque lo que nos ha 477 00:20:12,779 --> 00:20:13,960 recuperado el result set 478 00:20:13,960 --> 00:20:16,279 es el nif solamente 479 00:20:16,279 --> 00:20:18,900 entonces a través del campo 480 00:20:18,900 --> 00:20:20,619 nif deberíamos 481 00:20:20,619 --> 00:20:22,700 nosotros hacer un select del empleado 482 00:20:22,700 --> 00:20:24,279 para instanciar el empleado 483 00:20:24,279 --> 00:20:26,480 ¿vale? esto es 484 00:20:26,480 --> 00:20:28,660 lo que hace que jdbc sea 485 00:20:28,660 --> 00:20:30,559 engorroso, que tenemos 486 00:20:30,559 --> 00:20:32,759 que hacer todas las consultas de todo a mano 487 00:20:32,759 --> 00:20:34,259 e ir colocando los objetos 488 00:20:34,259 --> 00:20:37,200 si tenemos un ORM 489 00:20:37,200 --> 00:20:41,730 no, ni siquiera 490 00:20:41,730 --> 00:20:43,710 porque eso es para 491 00:20:43,710 --> 00:20:45,769 las entidades, las trabajas sueltas 492 00:20:45,769 --> 00:20:47,970 tendríamos que poner la siguiente capa 493 00:20:47,970 --> 00:20:49,069 por encima, que es JPA 494 00:20:49,069 --> 00:20:50,589 que ese ya sí que 495 00:20:50,589 --> 00:20:53,329 te hace todas las consultas que haya que hacer 496 00:20:53,329 --> 00:20:54,710 para obtenerte solo el objeto 497 00:20:54,710 --> 00:20:56,990 si tiene que hacer varias en diferentes tablas 498 00:20:56,990 --> 00:20:59,630 vale, pero claro, pierdes el control completamente 499 00:20:59,630 --> 00:21:00,769 de lo que está haciendo por dentro 500 00:21:00,769 --> 00:21:02,170 tú le dices, recupera mi objeto 501 00:21:02,170 --> 00:21:04,869 y él te recupera el objeto y se ha tenido que hacer 502 00:21:04,869 --> 00:21:06,950 mil select a mil sitios donde hay 503 00:21:06,950 --> 00:21:09,109 claves ajenas para construir los otros 504 00:21:09,109 --> 00:21:11,069 los hace, comodísimo 505 00:21:11,069 --> 00:21:13,009 pero bueno, lo ves, entonces esto en JDBC 506 00:21:13,009 --> 00:21:14,349 es más rollo, entonces ¿qué pasa? 507 00:21:14,690 --> 00:21:16,029 que antes de hacer esto 508 00:21:16,029 --> 00:21:19,269 nos falta hacer el select 509 00:21:19,269 --> 00:21:20,089 del empleado 510 00:21:20,089 --> 00:21:21,269 con este nif 511 00:21:21,269 --> 00:21:24,250 entonces 512 00:21:24,250 --> 00:21:34,160 aquí, este empleado 513 00:21:34,160 --> 00:21:35,000 empleado 514 00:21:35,000 --> 00:21:37,380 si tuviese 515 00:21:37,380 --> 00:21:39,440 si tenemos el 516 00:21:39,440 --> 00:21:47,019 Es que no quiero llamar a panolearlo 517 00:21:47,019 --> 00:21:48,259 Vale, entonces 518 00:21:48,259 --> 00:21:50,880 Vamos a 519 00:21:50,880 --> 00:21:53,440 Como que lo dejamos, no, no lo vamos a dejar 520 00:21:53,440 --> 00:21:54,259 Vale 521 00:21:54,259 --> 00:21:56,940 Vamos a hacer la otra 522 00:21:56,940 --> 00:22:00,019 Sentencia de consulta 523 00:22:00,019 --> 00:22:01,079 Que necesitaríamos 524 00:22:01,079 --> 00:22:02,680 PS1 525 00:22:02,680 --> 00:22:03,559 Vale 526 00:22:03,559 --> 00:22:09,279 Bajamos esto aquí 527 00:22:09,279 --> 00:22:11,440 PS2 528 00:22:11,440 --> 00:22:13,799 Select asterisco 529 00:22:13,799 --> 00:22:16,339 from empleados 530 00:22:16,339 --> 00:22:18,200 where 531 00:22:18,200 --> 00:22:20,359 nif, ¿cómo se llama el campo 532 00:22:20,359 --> 00:22:21,180 del empleado? 533 00:22:21,980 --> 00:22:23,880 El campo de la tabla 534 00:22:23,880 --> 00:22:26,220 empleado se llama 535 00:22:26,220 --> 00:22:27,180 nif, sin más. 536 00:22:30,849 --> 00:22:32,650 Where nif, igual a lo que sea. 537 00:22:32,650 --> 00:22:33,109 Vale. 538 00:22:33,589 --> 00:22:36,049 Y esto así. 539 00:22:37,210 --> 00:22:38,630 Vale, entonces tenemos estas dos 540 00:22:38,630 --> 00:22:40,269 consultas que son las que nos interesan. 541 00:22:41,630 --> 00:22:42,509 Hemos sacado 542 00:22:42,509 --> 00:22:44,049 la primera y la hemos 543 00:22:44,049 --> 00:22:46,009 ejecutado. Vale. 544 00:22:46,009 --> 00:23:06,039 Entonces, con esta ejecución de aquí ya podemos sacar el ID del string nif del empleado, es esto, ¿verdad? 545 00:23:07,500 --> 00:23:17,940 rs.get string nif empleado. 546 00:23:17,940 --> 00:23:20,039 vale, este es el nif de empleado 547 00:23:20,039 --> 00:23:22,119 y ahora este, que es el nif 548 00:23:22,119 --> 00:23:24,039 del empleado, esta es la 549 00:23:24,039 --> 00:23:25,420 interrogación que nos falta aquí 550 00:23:25,420 --> 00:23:28,079 vale, esta es la interrogación 551 00:23:28,079 --> 00:23:30,039 que nos falta aquí, entonces aquí 552 00:23:30,039 --> 00:23:31,900 pues podemos hacer, podríamos 553 00:23:31,900 --> 00:23:34,019 organizar mejor el código, hacer, pero bueno 554 00:23:34,019 --> 00:23:35,880 lo que importa es que entendamos lo que estamos 555 00:23:35,880 --> 00:23:37,940 haciendo, vale, aquí ya podemos 556 00:23:37,940 --> 00:23:39,420 hacer a la consulta 2 557 00:23:39,420 --> 00:23:41,559 a la ps2, vale 558 00:23:41,559 --> 00:23:44,160 a la ps2 559 00:23:44,160 --> 00:23:45,900 ya le podemos hacer un 560 00:23:45,900 --> 00:23:52,819 string con 561 00:23:52,819 --> 00:23:55,160 Uno 562 00:23:55,160 --> 00:23:59,589 Nif empleado 563 00:23:59,589 --> 00:24:01,690 Esto aquí 564 00:24:01,690 --> 00:24:04,619 Nif empleado 565 00:24:04,619 --> 00:24:06,980 Y ahora ya la ejecutamos 566 00:24:06,980 --> 00:24:18,039 Sacamos de aquí el nif del empleado 567 00:24:18,039 --> 00:24:20,039 Sacamos de aquí el objeto empleado 568 00:24:20,039 --> 00:24:22,700 Empleado 569 00:24:22,700 --> 00:24:24,680 N igual a new 570 00:24:24,680 --> 00:24:26,460 Empleado 571 00:24:26,460 --> 00:24:39,940 De aquí que tenemos que sacar 572 00:24:39,940 --> 00:24:41,559 Pues de aquí ya sacamos 573 00:24:41,559 --> 00:24:42,839 En punto 574 00:24:42,839 --> 00:24:44,859 Set nif 575 00:24:44,859 --> 00:24:46,680 Pues nif de empleado 576 00:24:46,680 --> 00:24:48,940 En punto 577 00:24:48,940 --> 00:24:50,119 Set nombre 578 00:24:50,119 --> 00:24:52,420 Del rs2 579 00:24:52,420 --> 00:24:54,279 Punto get string 580 00:24:54,279 --> 00:24:56,660 Nombre 581 00:24:56,660 --> 00:25:02,599 En punto set 582 00:25:02,599 --> 00:25:03,500 Nib nombre 583 00:25:03,500 --> 00:25:06,789 Vale 584 00:25:06,789 --> 00:25:09,529 El array de pisos 585 00:25:09,529 --> 00:25:11,970 Pasamos de él, lógicamente 586 00:25:11,970 --> 00:25:13,430 Eh 587 00:25:13,430 --> 00:25:15,750 Set sueldo base 588 00:25:15,750 --> 00:25:18,569 Pues rs2 589 00:25:18,569 --> 00:25:19,930 Punto get 590 00:25:19,930 --> 00:25:21,730 El sueldo base será dable, ¿verdad? 591 00:25:22,309 --> 00:25:25,210 Pues get double, como se llame aquí. 592 00:25:26,890 --> 00:25:27,690 Sueldo base. 593 00:25:32,440 --> 00:25:33,779 Sueldo base. 594 00:25:36,640 --> 00:25:37,859 ¡Hala! Ya tenemos el empleado. 595 00:25:38,119 --> 00:25:40,160 Y ahora ya podemos hacer la que nos faltaba. 596 00:25:41,720 --> 00:25:44,900 P.set empleado igual a este. 597 00:25:47,400 --> 00:25:50,440 ¡Hala! Y este es el piso completo para devolver. 598 00:25:51,400 --> 00:25:55,099 Dirección, mensualidad, si está alquilado o no lo está, su ID. 599 00:25:55,099 --> 00:25:57,920 y para el empleado hemos sacado el empleado 600 00:25:57,920 --> 00:25:58,880 vale 601 00:25:58,880 --> 00:26:01,000 y ahora ya devolvemos P 602 00:26:01,000 --> 00:26:11,200 y ahora 603 00:26:11,200 --> 00:26:12,420 aquí 604 00:26:12,420 --> 00:26:13,960 devuelves P 605 00:26:13,960 --> 00:26:15,700 devuelve P 606 00:26:15,700 --> 00:26:16,660 si 607 00:26:16,660 --> 00:26:21,940 esto lo que pasa es que yo no quiero 608 00:26:21,940 --> 00:26:23,019 un throws, quiero 609 00:26:23,019 --> 00:26:25,059 un try catch 610 00:26:25,059 --> 00:26:28,380 ahí, vale 611 00:26:28,380 --> 00:26:29,640 retorno 612 00:26:29,640 --> 00:26:34,460 a ver 613 00:26:34,460 --> 00:26:36,460 Tengo el 614 00:26:36,460 --> 00:26:38,859 Try 615 00:26:38,859 --> 00:26:40,960 Que el try empieza aquí 616 00:26:40,960 --> 00:26:43,640 Y el try termina aquí 617 00:26:43,640 --> 00:26:45,099 Vale, y 618 00:26:45,099 --> 00:26:48,279 Porque está dentro del try 619 00:26:48,279 --> 00:26:49,680 ¿Verdad? Vale 620 00:26:49,680 --> 00:26:50,980 Entonces 621 00:26:50,980 --> 00:26:56,809 Ahí 622 00:26:56,809 --> 00:27:02,240 Y ahora aquí lo quito 623 00:27:02,240 --> 00:27:07,230 Vale, y ahora ya 624 00:27:07,230 --> 00:27:09,529 No, ahora ya me viene 625 00:27:09,529 --> 00:27:11,730 Lo que me faltaba, es que decía, ¿por qué no me sacas lo del catch? 626 00:27:11,730 --> 00:27:13,809 Ahora ya me viene lo del catch 627 00:27:13,809 --> 00:27:14,789 Que me estaba faltando 628 00:27:14,789 --> 00:27:19,980 Vale, ahora ya sí 629 00:27:19,980 --> 00:27:25,970 Bueno, pues esto 630 00:27:25,970 --> 00:27:27,089 Efectivamente es 631 00:27:27,089 --> 00:27:29,450 Esto es un rollo 632 00:27:29,450 --> 00:27:31,750 Esto es un rollo 633 00:27:31,750 --> 00:27:34,309 Porque en cuanto hay una clave ajena 634 00:27:34,309 --> 00:27:36,250 Para reconstruir 635 00:27:36,250 --> 00:27:38,069 Un objeto, tenemos que hacer 636 00:27:38,069 --> 00:27:39,970 Select del resto de tablas de las que tiramos 637 00:27:39,970 --> 00:27:41,210 Entonces, es un 638 00:27:41,210 --> 00:27:43,650 Claro, de la lista hemos pasado, lógicamente 639 00:27:43,650 --> 00:27:45,250 Hemos hecho lo que se llama 640 00:27:45,250 --> 00:27:46,869 Un find en modo lazy 641 00:27:46,869 --> 00:27:50,109 cuando luego usemos la siguiente 642 00:27:50,109 --> 00:27:51,789 capa nuestra que ya es JPA 643 00:27:51,789 --> 00:27:54,009 un ORM, haremos el 644 00:27:54,009 --> 00:27:55,930 find y ese find te 645 00:27:55,930 --> 00:27:57,910 actualiza todo, la lista de pisos 646 00:27:57,910 --> 00:27:59,910 el no se que, pero claro lo podemos 647 00:27:59,910 --> 00:28:02,029 a veces no necesitamos la lista de pisos 648 00:28:02,029 --> 00:28:04,009 y el ORM va a estar 649 00:28:04,009 --> 00:28:05,490 haciendo por debajo una cantidad de select 650 00:28:05,490 --> 00:28:07,890 entonces lo podremos configurar para que 651 00:28:07,890 --> 00:28:09,950 trabaje en modo lazy, es el modo 652 00:28:09,950 --> 00:28:12,009 vago o no modo vago, en modo 653 00:28:12,009 --> 00:28:14,009 vago es, no me rellenes todas 654 00:28:14,009 --> 00:28:15,990 las listas que hay dentro, todos los arrays 655 00:28:15,990 --> 00:28:19,809 de las claves ajenas, solamente cuando te las pida específicamente 656 00:28:19,809 --> 00:28:22,809 cuando te las pida, sí, rellénamelas, ¿vale? Entonces, bueno 657 00:28:22,809 --> 00:28:26,569 lo que importa es que aquí, pues efectivamente vemos 658 00:28:26,569 --> 00:28:31,730 que hay una complejidad grande en montar los objetos a mano 659 00:28:31,730 --> 00:28:35,349 a partir de los select cuando hay consultas, hay una complejidad grande 660 00:28:35,349 --> 00:28:39,750 pues por eso, precisamente, porque uno ya estaba escribiendo esto y dijo 661 00:28:39,750 --> 00:28:43,349 jude, qué rollo, pues por eso se inventaron los ORMs 662 00:28:43,349 --> 00:28:45,509 ¿vale? que es lo siguiente 663 00:28:45,509 --> 00:28:46,970 que vamos a ver, porque 664 00:28:46,970 --> 00:28:49,490 el Spring JDBC es una capita 665 00:28:49,490 --> 00:28:51,549 mínima que te 666 00:28:51,549 --> 00:28:52,990 ahorra muy pocas cosas, pero no 667 00:28:52,990 --> 00:28:55,670 vale, lo veréis 668 00:28:55,670 --> 00:28:56,670 en el siguiente ejercicio 669 00:28:56,670 --> 00:28:59,569 vale, pues ya está 670 00:28:59,569 --> 00:29:00,109 aquí 671 00:29:00,109 --> 00:29:03,509 aquí lo que 672 00:29:03,509 --> 00:29:04,670 pasa es que hemos sido 673 00:29:04,670 --> 00:29:09,220 vagos con el 674 00:29:09,220 --> 00:29:11,319 SQL, yo en 675 00:29:11,319 --> 00:29:13,299 particular, pero no tendríamos por qué 676 00:29:13,299 --> 00:29:15,359 haber hecho los select, aquí podríamos 677 00:29:15,359 --> 00:29:16,640 haber hecho un inner join 678 00:29:16,640 --> 00:29:18,920 y unir el nif 679 00:29:18,920 --> 00:29:21,380 de pisos o con el nif 680 00:29:21,380 --> 00:29:23,119 empleado de aquí con el nif de aquí 681 00:29:23,119 --> 00:29:25,380 y en un único select me saldrían 682 00:29:25,380 --> 00:29:26,500 todos los campos 683 00:29:26,500 --> 00:29:29,279 y así yo me ahorraría esta 684 00:29:29,279 --> 00:29:31,240 cosa tan horrorosa que he hecho 685 00:29:31,240 --> 00:29:33,220 aquí, que es un while dentro de otro 686 00:29:33,220 --> 00:29:35,319 que da miedo verlo, esto es 687 00:29:35,319 --> 00:29:37,140 muy feo, vale, aquí 688 00:29:37,140 --> 00:29:39,119 podríamos haber hecho en un único 689 00:29:39,119 --> 00:29:41,000 select, podríamos haber sacado 690 00:29:41,000 --> 00:29:43,059 todos los campos, los del piso 691 00:29:43,059 --> 00:29:44,859 y los del empleado, el único seller 692 00:29:44,859 --> 00:29:46,940 con lo cual, ahora ya nos pondríamos 693 00:29:46,940 --> 00:29:48,799 aquí a hacer todos los sets 694 00:29:48,799 --> 00:29:50,819 primero del empleado y luego 695 00:29:50,819 --> 00:29:52,960 del piso y listo 696 00:29:52,960 --> 00:29:55,039 ¿vale? entonces si sustituís 697 00:29:55,039 --> 00:29:56,900 este seller por el que 698 00:29:56,900 --> 00:29:58,900 fuera, pues ya está 699 00:29:58,900 --> 00:30:00,960 queda mucho más sencillo el código, que sería 700 00:30:00,960 --> 00:30:02,920 la forma de hacerlo, ¿vale? lo que pasa es que yo con el 701 00:30:02,920 --> 00:30:04,859 SQL soy un poco 702 00:30:04,859 --> 00:30:06,900 vaga, habría que, a ver, si lo podríamos 703 00:30:06,900 --> 00:30:08,779 haber pedido a echar GPT el seller y no lo habría hecho 704 00:30:08,779 --> 00:30:09,960 en un pispás y no habríamos 705 00:30:09,960 --> 00:30:12,140 tenido que pensar tanto 706 00:30:12,140 --> 00:30:14,259 vale, pues entonces 707 00:30:14,259 --> 00:30:17,259 el find all queda mucho más sencillo 708 00:30:17,259 --> 00:30:19,380 el insert 709 00:30:19,380 --> 00:30:21,079 también queda sencillo 710 00:30:21,079 --> 00:30:22,839 porque hemos hecho el más complicado 711 00:30:22,839 --> 00:30:23,799 queda sencillo 712 00:30:23,799 --> 00:30:27,420 y el actualizar 713 00:30:27,420 --> 00:30:29,519 vamos a hacer 714 00:30:29,519 --> 00:30:32,319 este último 715 00:30:32,319 --> 00:30:36,579 este último 716 00:30:36,579 --> 00:30:38,519 este último pues lo mismo, va a ser 717 00:30:38,519 --> 00:30:41,359 más facilito que el de arriba 718 00:30:41,359 --> 00:30:46,440 Aquí hacemos la sentencia 719 00:30:46,440 --> 00:30:47,480 Prepared 720 00:30:47,480 --> 00:30:49,519 Statement 721 00:30:49,519 --> 00:30:59,809 Y aquí, ¿qué tendríamos? 722 00:31:00,069 --> 00:31:01,410 Pues aquí tendríamos 723 00:31:01,410 --> 00:31:06,730 Uvdate, a ver 724 00:31:06,730 --> 00:31:09,130 Los del SQL que habéis estudiado recientemente 725 00:31:09,130 --> 00:31:11,089 Sí 726 00:31:11,089 --> 00:31:12,970 Luego las arreglo, pero bueno 727 00:31:12,970 --> 00:31:14,329 Uv 728 00:31:14,329 --> 00:31:16,930 Uvdate 729 00:31:16,930 --> 00:31:18,230 Pisos, sería, ¿no? 730 00:31:18,869 --> 00:31:20,309 Uvdate pisos 731 00:31:20,309 --> 00:31:21,829 Set 732 00:31:21,829 --> 00:31:25,130 ¿Cómo era el UDATE? 733 00:31:27,369 --> 00:31:27,849 Set 734 00:31:27,849 --> 00:31:29,710 Values igual no sé qué 735 00:31:29,710 --> 00:31:31,190 Where no sé cuántos 736 00:31:31,190 --> 00:31:33,529 ¿Cómo era esto? ¿No os acordáis? 737 00:31:35,230 --> 00:31:35,910 Ya, pero esta es 738 00:31:35,910 --> 00:31:37,069 Básica, deberíamos acordarnos 739 00:31:37,069 --> 00:31:38,930 Vamos a hacer unos vagos de tres pares 740 00:31:38,930 --> 00:31:41,589 UDATE pisos, set 741 00:31:41,589 --> 00:31:43,869 Y aquí ya poníamos 742 00:31:43,869 --> 00:31:45,529 UDATE pisos 743 00:31:45,529 --> 00:31:47,049 Aquí poníamos los campos, ¿verdad? 744 00:31:47,430 --> 00:31:49,230 ¿Qué campos vamos a actualizar? El IDE no 745 00:31:49,230 --> 00:31:51,609 Entonces, ¿qué campos vamos a actualizar de pisos? 746 00:31:51,829 --> 00:31:58,130 Vamos a actualizar de pisos, dirección, mensualidad, alquilado y NIF de empleado. 747 00:31:58,130 --> 00:32:19,220 Vale, pues entonces UBDATE PISOS, dirección, mensualidad, alquilado y NIF de empleado. 748 00:32:19,220 --> 00:32:21,680 Udate pisos 749 00:32:21,680 --> 00:32:22,500 Set 750 00:32:22,500 --> 00:32:25,220 ¿Y era un set values? 751 00:32:25,339 --> 00:32:26,079 No, era un set, ¿no? 752 00:32:26,099 --> 00:32:27,079 Y aquí se ponían los valores 753 00:32:27,079 --> 00:32:28,539 Que son 754 00:32:28,539 --> 00:32:31,319 Uno, dos, tres 755 00:32:31,319 --> 00:32:32,200 Y cuatro 756 00:32:32,200 --> 00:32:34,039 Set, y ahora el where 757 00:32:34,039 --> 00:32:36,460 Sí, sí, sí, voy 758 00:32:36,460 --> 00:32:37,299 Where 759 00:32:37,299 --> 00:32:39,519 Id 760 00:32:39,519 --> 00:32:42,819 Igual 761 00:32:42,819 --> 00:32:44,799 A esta 762 00:32:44,799 --> 00:32:46,920 Y me falta 763 00:32:46,920 --> 00:32:47,559 Esto 764 00:32:47,559 --> 00:32:50,339 Vale 765 00:32:50,339 --> 00:32:57,400 Udate pisos 766 00:32:57,400 --> 00:32:57,920 Set 767 00:32:57,920 --> 00:33:01,380 Aquí mi único mosqueo si es un values o no 768 00:33:01,380 --> 00:33:02,339 Yo creo que no, es set 769 00:33:02,339 --> 00:33:03,799 Ah, lo sabéis seguro, vale 770 00:33:03,799 --> 00:33:05,779 Where id igual a esto 771 00:33:05,779 --> 00:33:11,019 Vale, pues ya está, entonces este me dice ya lo de la 772 00:33:11,019 --> 00:33:12,299 Sí, pues 773 00:33:12,299 --> 00:33:13,420 Add catch 774 00:33:13,420 --> 00:33:16,500 Y ahora ya sí, ¿qué hacemos aquí? 775 00:33:16,859 --> 00:33:18,319 Pues aquí lo que tenemos que hacer es 776 00:33:18,319 --> 00:33:20,000 Fijarlas estas 777 00:33:20,000 --> 00:33:22,880 Set la dirección 778 00:33:22,880 --> 00:33:24,220 setString 779 00:33:24,220 --> 00:33:27,440 la primera interrogación 780 00:33:27,440 --> 00:33:28,259 tiene que ser 781 00:33:28,259 --> 00:33:31,259 la primera es la dirección del piso 782 00:33:31,259 --> 00:33:34,660 p.piso 783 00:33:34,660 --> 00:33:37,539 piso.getdir 784 00:33:37,539 --> 00:33:42,529 ps.set 785 00:33:42,529 --> 00:33:43,369 dirección 786 00:33:43,369 --> 00:33:45,250 mensualidad 787 00:33:45,250 --> 00:33:46,369 es un double 788 00:33:46,369 --> 00:33:47,930 pues será 789 00:33:47,930 --> 00:33:50,450 la segunda 790 00:33:50,450 --> 00:33:53,329 interrogación es 791 00:33:53,329 --> 00:33:56,609 piso.get 792 00:33:56,609 --> 00:33:58,009 mensualidad 793 00:33:58,009 --> 00:34:02,980 hombre, ha despertado 794 00:34:02,980 --> 00:34:03,359 Brian 795 00:34:03,359 --> 00:34:06,700 la siguiente es 796 00:34:06,700 --> 00:34:07,700 el alquilado 797 00:34:07,700 --> 00:34:10,980 la tercera interrogación 798 00:34:10,980 --> 00:34:11,900 es el alquilado 799 00:34:11,900 --> 00:34:14,659 y aquí que le ponemos, pues depende 800 00:34:14,659 --> 00:34:16,079 de como sea piso 801 00:34:16,079 --> 00:34:21,960 donde está 802 00:34:21,960 --> 00:34:24,059 el alquilado 803 00:34:24,059 --> 00:34:25,440 no hay un get alquilado 804 00:34:25,440 --> 00:34:27,880 en piso, ah es que es un is 805 00:34:27,880 --> 00:34:29,920 perdón, y se ha alquilado porque es un Boolean 806 00:34:29,920 --> 00:34:30,460 es un ISO 807 00:34:30,460 --> 00:34:36,139 sí, él lo va a cambiar 808 00:34:36,139 --> 00:34:37,840 automáticamente, es verdad, sí, pero 809 00:34:37,840 --> 00:34:41,260 sí, o sea, si le pones 810 00:34:41,260 --> 00:34:42,219 se pasa a un Boolean 811 00:34:42,219 --> 00:34:44,260 él luego en la base de datos lo va a meter 812 00:34:44,260 --> 00:34:45,599 como entero, hace la conversión 813 00:34:45,599 --> 00:34:48,059 como lo del Boolean, el problema 814 00:34:48,059 --> 00:34:50,139 efectivamente es eso, que MySQL 815 00:34:50,139 --> 00:34:51,579 y otras bases de datos 816 00:34:51,579 --> 00:34:53,179 no manejan el tipo Boolean 817 00:34:53,179 --> 00:34:55,619 y eso es un coñazo desde una aplicación Java 818 00:34:55,619 --> 00:34:57,059 entonces te permite 819 00:34:57,059 --> 00:34:59,619 que JDBC, la API JDBC 820 00:34:59,619 --> 00:35:01,440 te permite que tú trabajes con Boolean 821 00:35:01,440 --> 00:35:03,340 setBoolean, getBoolean, como si existieran 822 00:35:03,340 --> 00:35:05,820 y luego hacen la conversión 823 00:35:05,820 --> 00:35:07,460 a 0, 1, lo que haga falta 824 00:35:07,460 --> 00:35:09,519 yo he pasado un poco por 825 00:35:09,519 --> 00:35:11,500 hacer la mano, pero sí, efectivamente 826 00:35:11,500 --> 00:35:13,960 entonces, si está alquilado 827 00:35:13,960 --> 00:35:15,500 pues le pondríamos 828 00:35:15,500 --> 00:35:17,739 un 1 y si no le pondríamos un 0 829 00:35:17,739 --> 00:35:18,639 ¿vale? 830 00:35:20,820 --> 00:35:22,219 y nos falta 831 00:35:22,219 --> 00:35:26,559 el string 832 00:35:26,559 --> 00:35:27,880 del NIF del empleado 833 00:35:27,880 --> 00:35:31,820 que es la interrogación 4 834 00:35:31,820 --> 00:35:33,860 la interrogación 4, ¿dónde la sacamos? 835 00:35:33,860 --> 00:36:02,329 Pues la sacamos de piso.getEmpleado.getNif y nos falta la interrogación 5, que la interrogación 5 era el id, con lo cual es un int, la interrogación 5 es un date piso, pues piso.getId. 836 00:36:02,329 --> 00:36:05,130 y ahora que ya tenemos 837 00:36:05,130 --> 00:36:06,489 creemos que bien 838 00:36:06,489 --> 00:36:09,190 esto seguramente hemos escrito mil errores 839 00:36:09,190 --> 00:36:10,909 pero bueno, eso se depura con las ejecuciones 840 00:36:10,909 --> 00:36:13,329 cuando ya tenemos eso, pues ala 841 00:36:13,949 --> 00:36:21,480 vale, esto me devuelve 842 00:36:21,480 --> 00:36:23,659 efectivamente el número de columnas que realmente 843 00:36:23,659 --> 00:36:25,639 se han visto afectadas, que debería ser una 844 00:36:25,639 --> 00:36:27,599 yo puedo pasar del retorno 845 00:36:27,599 --> 00:36:30,039 o puedo no pasar para usarlo para validar 846 00:36:30,039 --> 00:36:31,800 o devolverlo 847 00:36:31,800 --> 00:36:33,639 incluso y en función de si valido 848 00:36:33,639 --> 00:36:36,440 Usar aquí un boolean para ver si se hizo o no 849 00:36:36,440 --> 00:36:38,480 Bueno, pequeñas variantes 850 00:36:38,480 --> 00:36:40,420 Cosas que podemos incorporar 851 00:36:40,420 --> 00:36:42,139 ¿Vale? Yo aquí paso de 852 00:36:42,139 --> 00:36:44,019 Validaciones y nada, pero 853 00:36:44,019 --> 00:36:48,019 Sí, muy bien 854 00:36:48,019 --> 00:36:49,539 Jolín, sí que estáis despiertos 855 00:36:49,539 --> 00:36:51,280 Efectivamente 856 00:36:51,280 --> 00:36:52,840 Sería así 857 00:36:52,840 --> 00:36:56,000 ¿Vale? Y esto sería así 858 00:36:56,000 --> 00:36:56,579 Todo el rato 859 00:36:56,579 --> 00:37:00,619 En empleado 860 00:37:00,619 --> 00:37:01,599 Que son los más raros 861 00:37:01,599 --> 00:37:03,320 ¿Vale? Por ejemplo 862 00:37:03,320 --> 00:37:06,519 vamos a intentar hacer 863 00:37:06,519 --> 00:37:09,059 el empleado con el sueldo máximo 864 00:37:09,059 --> 00:37:09,800 ¿vale? 865 00:37:10,780 --> 00:37:12,699 esto sería hacer lo mismo 866 00:37:12,699 --> 00:37:14,480 recuperar estos dos 867 00:37:14,480 --> 00:37:16,400 podrían ser los más interesantes 868 00:37:16,400 --> 00:37:17,219 vamos a hacer uno 869 00:37:17,219 --> 00:37:20,159 y luego ya lo interesante sería en el servicio 870 00:37:20,159 --> 00:37:22,019 plantear ahí los métodos 871 00:37:22,019 --> 00:37:23,840 pues qué métodos de los DAOs va a usar 872 00:37:23,840 --> 00:37:24,699 los servicios 873 00:37:24,699 --> 00:37:27,539 vamos a hacer uno de los servicios 874 00:37:27,539 --> 00:37:30,639 a ver ese servicio, cómo se construye desde los DAOs 875 00:37:30,639 --> 00:37:31,980 pues venga, vamos a hacer 876 00:37:31,980 --> 00:37:34,480 Por lo menos este método y luego alguno de los servicios 877 00:37:34,480 --> 00:37:36,460 Venga 878 00:37:36,460 --> 00:37:40,599 Pues vamos a hacer la implementación 879 00:37:40,599 --> 00:37:43,329 De 880 00:37:43,329 --> 00:37:45,869 El empleado famoso 881 00:37:45,869 --> 00:37:50,440 Empleado 882 00:37:50,440 --> 00:37:51,420 Dado 883 00:37:51,420 --> 00:37:53,780 Implementación 884 00:37:53,780 --> 00:37:55,079 Vale, y este 885 00:37:55,079 --> 00:37:59,110 Implements 886 00:37:59,110 --> 00:38:02,869 Este de aquí 887 00:38:02,869 --> 00:38:12,650 Ala, magnífico 888 00:38:12,650 --> 00:38:14,530 Pues por ejemplo, vamos a 889 00:38:14,530 --> 00:38:16,989 Asumir que queremos hacer este 890 00:38:16,989 --> 00:38:20,110 Vale 891 00:38:20,110 --> 00:38:22,550 El empleado con el sueldo máximo 892 00:38:22,550 --> 00:38:24,610 Pues aquí 893 00:38:24,610 --> 00:38:26,809 Todo depende del control que tengamos en SQL 894 00:38:26,809 --> 00:38:28,550 Si sabemos hacer un 895 00:38:28,550 --> 00:38:30,210 Select con el max, con el no se que 896 00:38:30,210 --> 00:38:32,409 Ya lo tenemos, que si no lo tenemos que hacer por programa 897 00:38:32,409 --> 00:38:34,349 Vale 898 00:38:34,349 --> 00:38:36,269 Entonces vamos a hacer 899 00:38:36,269 --> 00:38:37,429 Lo que haríamos en la vida real 900 00:38:37,429 --> 00:38:39,510 Vamos a pedirle el select a chal GPT 901 00:38:39,510 --> 00:38:41,489 Pero, claro 902 00:38:41,489 --> 00:38:48,369 no, pero en el examen 903 00:38:48,369 --> 00:38:50,110 os pongo cosas más sencillas 904 00:38:50,110 --> 00:38:52,090 en el examen, pues no os voy a poner 905 00:38:52,090 --> 00:38:54,329 que tengáis que hacer una SQL complicadísima 906 00:38:54,329 --> 00:38:56,170 pero es que esto siempre 907 00:38:56,170 --> 00:38:57,289 aunque no supiéramos SQL 908 00:38:57,289 --> 00:39:00,230 esto lo tenemos muy fácil sin saber SQL 909 00:39:00,230 --> 00:39:02,210 que es hacer un SELEC de todos los empleados 910 00:39:02,210 --> 00:39:03,989 y hacer nuestro algoritmo de máximo 911 00:39:03,989 --> 00:39:04,690 por programa 912 00:39:04,690 --> 00:39:08,170 tienes que hacer un FINDALL 913 00:39:08,170 --> 00:39:08,909 de los empleados 914 00:39:08,909 --> 00:39:10,889 y ya está 915 00:39:10,889 --> 00:39:13,789 Por eso digo 916 00:39:13,789 --> 00:39:15,969 Ya, pero esa respuesta de lo que él me ha dicho 917 00:39:15,969 --> 00:39:18,030 Y he dicho, en un examen 918 00:39:18,030 --> 00:39:18,789 En un momento dado 919 00:39:18,789 --> 00:39:21,789 Si uno con el SQL se asusta 920 00:39:21,789 --> 00:39:24,030 Pues haces un find all de empleado 921 00:39:24,030 --> 00:39:24,809 Y maximizas 922 00:39:24,809 --> 00:39:25,989 Y ya se acabó 923 00:39:25,989 --> 00:39:29,329 Pero vamos a buscarle 924 00:39:29,329 --> 00:39:32,389 La select al no sé qué 925 00:39:32,389 --> 00:39:34,250 A ver, ¿cómo le preguntamos a este 926 00:39:34,250 --> 00:39:36,110 Así por las buenas, entrándole directamente 927 00:39:36,110 --> 00:39:37,469 Que no sabe de qué le estamos hablando 928 00:39:37,469 --> 00:39:42,429 vosotros que sois muy hábiles 929 00:39:42,429 --> 00:39:44,429 preguntando 930 00:39:44,429 --> 00:39:46,809 no sé si obteniendo respuestas, eso ya no lo sé 931 00:39:46,809 --> 00:39:48,750 pero preguntando si sois hábiles 932 00:39:48,750 --> 00:39:50,889 ¿le pasaríais el script y le diríais 933 00:39:50,889 --> 00:39:52,449 quiero consultar esto? yo creo que sí 934 00:39:52,449 --> 00:39:54,329 le pasaría el script de la base de datos 935 00:39:54,329 --> 00:39:55,929 para que él la tenga y luego diría 936 00:39:55,929 --> 00:39:58,530 hazme un select con el empleado con el sueldo máximo 937 00:39:58,530 --> 00:39:59,690 quizás lo mejor 938 00:39:59,690 --> 00:40:02,349 pues venga, te paso 939 00:40:02,349 --> 00:40:03,469 un script 940 00:40:03,469 --> 00:40:08,280 vosotros copiáis y pegáis directamente 941 00:40:08,280 --> 00:40:10,380 ya, pero es que yo soy de otra generación 942 00:40:10,380 --> 00:40:12,199 donde la amabilidad era un valor 943 00:40:12,199 --> 00:40:18,590 sí, pero ahí 944 00:40:18,590 --> 00:40:20,650 sí que deberíamos entrar al concepto de pensamiento 945 00:40:20,650 --> 00:40:26,590 bien dicho 946 00:40:26,590 --> 00:40:28,510 a ver, pensar piensa 947 00:40:28,510 --> 00:40:29,329 más que nosotros 948 00:40:29,329 --> 00:40:32,690 ¿y tú qué haces? 949 00:40:33,170 --> 00:40:33,989 ¿qué hace tu cerebro? 950 00:40:34,989 --> 00:40:36,730 ¿qué hace tu cerebro que sea distinto? 951 00:40:40,170 --> 00:40:47,030 Bueno, dicho esto 952 00:40:47,030 --> 00:40:49,789 Sí, ese debate 953 00:40:49,789 --> 00:40:51,510 Ahora en cuanto acabemos esto lo vamos a tener 954 00:40:51,510 --> 00:40:53,630 Que no, que no 955 00:40:53,630 --> 00:40:56,309 Con eso no cuentes, porque yo jamás sería tan malvada 956 00:40:56,309 --> 00:40:57,849 Como para mandaros ahí fuera 957 00:40:57,849 --> 00:40:59,530 Con toda esa tropa 958 00:40:59,530 --> 00:41:01,510 Os voy a mandar fuera cuando 959 00:41:01,510 --> 00:41:03,929 Tengáis recursos para enfrentaros a 960 00:41:03,929 --> 00:41:04,710 A lo que hay fuera 961 00:41:04,710 --> 00:41:07,230 Venga 962 00:41:07,230 --> 00:41:09,989 A ver, pues estábamos diciendo que le íbamos 963 00:41:09,989 --> 00:41:15,610 a pedir al chat GPT el este. Entonces, ya me habéis distraído, te paso un script de 964 00:41:15,610 --> 00:41:24,190 una base de datos. Vale, y entonces voy a sacarlo de aquí, el script de la base de 965 00:41:24,190 --> 00:41:33,190 datos inmobiliaria. Ay, qué pena, lo he perdido, el de inmobiliaria, porque no lo puedo sacar 966 00:41:33,190 --> 00:41:38,510 aquí fácilmente, ¿verdad? Bueno, tengo un truco para sacarlo. Si tenéis que sacar 967 00:41:38,510 --> 00:41:40,590 un script de aquí, tenemos un truco 968 00:41:40,590 --> 00:41:41,829 para sacarlo facilísimo 969 00:41:41,829 --> 00:41:44,469 que es, os vais a la ingeniería inversa 970 00:41:44,469 --> 00:41:45,650 donde tenemos el diagramita 971 00:41:45,650 --> 00:41:47,949 y de ahí que nos saque el script, vale 972 00:41:47,949 --> 00:41:50,170 entonces 973 00:41:50,170 --> 00:41:51,949 ingeniería inversa, next 974 00:41:51,949 --> 00:41:56,840 vale, next 975 00:41:56,840 --> 00:41:59,400 ¿de qué quieres? inmobiliaria 976 00:41:59,400 --> 00:42:00,159 que es esta 977 00:42:00,159 --> 00:42:01,940 next 978 00:42:01,940 --> 00:42:04,039 ala, next 979 00:42:04,039 --> 00:42:07,380 ejecute, todo magnífico 980 00:42:07,380 --> 00:42:08,079 next 981 00:42:08,079 --> 00:42:10,059 y finish, venga 982 00:42:10,059 --> 00:42:13,059 Vale, es esta, ¿no? 983 00:42:13,800 --> 00:42:15,099 Esta es nuestra inmobiliaria 984 00:42:15,099 --> 00:42:16,820 Vale, pues aquí, botón derecho 985 00:42:16,820 --> 00:42:18,900 Copy SQL 986 00:42:18,900 --> 00:42:22,179 Botón derecho, Copy SQL 987 00:42:22,179 --> 00:42:25,059 Pues copiáis botón derecho, Copy SQL 988 00:42:25,059 --> 00:42:29,139 Y vamos a pasarlos aquí a un nuevo ficherito SQL 989 00:42:29,139 --> 00:42:32,119 ¡Hala! Ya tenemos la tabla empleados 990 00:42:32,119 --> 00:42:34,099 Toda esta basura de aquí no la quiero 991 00:42:34,099 --> 00:42:39,019 Y ahora, vámonos a la otra 992 00:42:39,019 --> 00:42:41,800 Nos vamos a la otra 993 00:42:41,800 --> 00:42:42,900 Que estaba aquí 994 00:42:42,900 --> 00:42:45,860 Botón derecho, copy SQL 995 00:42:45,860 --> 00:42:48,480 La paso aquí 996 00:42:48,480 --> 00:42:54,210 Todo esto no lo quiero 997 00:42:54,210 --> 00:42:55,610 Vale 998 00:42:55,610 --> 00:42:58,389 Pues estas son mis dos tablas 999 00:42:58,389 --> 00:43:01,889 Vamos a pasárselo a chat GPT 1000 00:43:01,889 --> 00:43:05,260 A chat GPT 1001 00:43:05,260 --> 00:43:07,079 Pero a ver si es capaz de permanecer callada 1002 00:43:07,079 --> 00:43:09,000 Y no se puede decirme mil cosas sobre este script 1003 00:43:09,000 --> 00:43:12,679 Vale, y ahora 1004 00:43:12,679 --> 00:43:16,880 Perfecto, ¿qué necesitas exactamente? 1005 00:43:18,000 --> 00:43:18,440 Quiero 1006 00:43:18,440 --> 00:43:20,739 Una 1007 00:43:20,739 --> 00:43:24,690 Select que me 1008 00:43:24,690 --> 00:43:25,550 Saque 1009 00:43:25,550 --> 00:43:27,630 El empleado 1010 00:43:27,630 --> 00:43:29,530 Con más sueldo, ¿no? 1011 00:43:31,150 --> 00:43:32,510 Pero claro, necesitará 1012 00:43:32,510 --> 00:43:32,989 El 1013 00:43:32,989 --> 00:43:36,429 Espera 1014 00:43:36,429 --> 00:43:39,030 El empleado 1015 00:43:39,030 --> 00:43:40,710 Que más, ah no, el que más 1016 00:43:40,710 --> 00:43:42,550 Pisos alquilados tenga, vale, más fácil 1017 00:43:42,550 --> 00:43:43,110 Más fácil 1018 00:43:43,110 --> 00:43:45,849 El empleado 1019 00:43:45,849 --> 00:43:50,230 que más 1020 00:43:50,230 --> 00:43:53,250 pisos alquilados 1021 00:43:53,250 --> 00:43:54,710 tenga 1022 00:43:54,710 --> 00:43:56,469 ala 1023 00:43:56,469 --> 00:44:05,010 pues esta es la que queremos 1024 00:44:05,010 --> 00:44:07,269 ¿vale? ¿nos gusta? 1025 00:44:07,949 --> 00:44:08,570 nos gusta 1026 00:44:08,570 --> 00:44:11,909 está bien 1027 00:44:11,909 --> 00:44:13,530 podríamos hasta haberla hecho 1028 00:44:13,530 --> 00:44:14,030 nosotros 1029 00:44:14,030 --> 00:44:17,789 nos saca los datos del empleado 1030 00:44:17,789 --> 00:44:19,730 contando 1031 00:44:19,730 --> 00:44:21,409 cuántas veces 1032 00:44:21,409 --> 00:44:22,389 apareces 1033 00:44:22,389 --> 00:44:24,349 el código 1034 00:44:24,349 --> 00:44:27,510 cuántos códigos aparecen 1035 00:44:27,510 --> 00:44:28,949 haciendo un join 1036 00:44:28,949 --> 00:44:30,210 en la tabla pisos 1037 00:44:30,210 --> 00:44:32,909 con su NIF 1038 00:44:32,909 --> 00:44:35,429 entonces, haciendo un join de la tabla pisos 1039 00:44:35,429 --> 00:44:36,949 con su NIF, me cuenta 1040 00:44:36,949 --> 00:44:38,389 todos los códigos que aparecen 1041 00:44:38,389 --> 00:44:41,130 y luego ya los ordena el descendente 1042 00:44:41,130 --> 00:44:42,309 para quedarse con el primero 1043 00:44:42,309 --> 00:44:44,070 ¿entendido, verdad? 1044 00:44:45,849 --> 00:44:47,309 bueno, pero podemos entenderlo 1045 00:44:47,309 --> 00:44:48,610 claro 1046 00:44:48,610 --> 00:44:51,309 saca 1047 00:44:51,309 --> 00:44:52,650 los empleados 1048 00:44:52,650 --> 00:44:55,110 y además a cada empleado le pone un código 1049 00:44:55,110 --> 00:44:57,070 que es la cuenta 1050 00:44:57,070 --> 00:44:59,630 de cuántos 1051 00:44:59,630 --> 00:45:01,150 códigos de pisos aparecen 1052 00:45:01,150 --> 00:45:03,130 uniéndole a él con la tabla 1053 00:45:03,130 --> 00:45:05,230 pisos, entonces le saldrán 1054 00:45:05,230 --> 00:45:07,170 muchos empleados, cada uno 1055 00:45:07,170 --> 00:45:09,170 de ellos con la cuenta de pisos que tiene en la otra 1056 00:45:09,170 --> 00:45:11,050 tabla, me los ordena por 1057 00:45:11,050 --> 00:45:13,269 descendente y se queda con el primer 1058 00:45:13,269 --> 00:45:15,150 con lo cual el SELED 1059 00:45:15,150 --> 00:45:17,170 me devuelve un único empleado que es el que más 1060 00:45:17,170 --> 00:45:19,329 pisos tenga, pues este SELED 1061 00:45:19,329 --> 00:45:21,389 magnífico, nos parece 1062 00:45:21,389 --> 00:45:23,449 estupendo. Mira, pasa Manoli 1063 00:45:23,449 --> 00:45:24,730 por ahí, avisamos. 1064 00:45:25,090 --> 00:45:25,670 Llévala, llévala. 1065 00:45:27,429 --> 00:45:28,110 Venga, que nos sacamos. 1066 00:45:29,110 --> 00:45:30,309 Vale, pues entonces. 1067 00:45:30,429 --> 00:45:34,469 No, esta está muy bien. 1068 00:45:35,329 --> 00:45:36,409 Esta, si es como... 1069 00:45:36,409 --> 00:45:37,250 Como te llamo, Manoli. 1070 00:45:37,570 --> 00:45:40,730 Esta está estupenda. 1071 00:45:41,010 --> 00:45:42,690 Vale, que no nos gusta 1072 00:45:42,690 --> 00:45:43,250 el SQL. 1073 00:45:45,050 --> 00:45:46,550 Bueno, a ver, pasa, porque todo lo que 1074 00:45:46,550 --> 00:45:47,969 hagas por código carga al sistema. 1075 00:45:48,610 --> 00:45:50,449 Pero bueno, da igual, si no va a cargar a la base 1076 00:45:50,449 --> 00:45:51,170 de datos, da lo mismo. 1077 00:45:51,389 --> 00:45:52,869 Vale, que no nos gusta 1078 00:45:52,869 --> 00:45:54,489 Hacemos un find all de empleados 1079 00:45:54,489 --> 00:45:56,489 Y ya está, y contamos 1080 00:45:56,489 --> 00:46:01,489 Venga, pues hala, vamos a copiar esta SQL 1081 00:46:01,489 --> 00:46:03,030 Vosotros aquí hasta pasáis de 1082 00:46:03,030 --> 00:46:04,650 Ni dais gracia, ni nada, ¿no? 1083 00:46:05,190 --> 00:46:06,010 Que le den por saco 1084 00:46:06,010 --> 00:46:12,429 Venga, perfecta 1085 00:46:12,429 --> 00:46:14,349 Gracias 1086 00:46:14,349 --> 00:46:17,530 Hala, ya está 1087 00:46:17,530 --> 00:46:18,690 Un lago quemado 1088 00:46:18,690 --> 00:46:21,090 Un lago vacío 1089 00:46:21,090 --> 00:46:22,849 Ahora hay un lago menos encanada, por tu culpa. 1090 00:46:23,269 --> 00:46:25,010 Joder, hombre, un lago no. 1091 00:46:26,369 --> 00:46:27,010 Entero no. 1092 00:46:28,929 --> 00:46:31,469 A lo mejor cortan el agua un día, pero ya está. 1093 00:46:35,969 --> 00:46:36,409 ¡Hala! 1094 00:46:37,469 --> 00:46:38,369 ¡Hostia del Pedro! 1095 00:46:38,710 --> 00:46:41,269 Copiamos esta SQL magnífica, estupenda. 1096 00:46:42,389 --> 00:46:46,650 Y la vamos a dejar aquí copiadita para ponerla ahora cuando haga falta. 1097 00:46:47,110 --> 00:46:49,570 Espera, aquí en un stream, porque es que es demasiado gorda esta. 1098 00:46:49,570 --> 00:46:51,690 Entonces, vamos a poner aquí un string 1099 00:46:51,690 --> 00:46:54,190 Nuestra SQL es esta 1100 00:46:54,190 --> 00:47:00,050 La he confirmado 1101 00:47:00,050 --> 00:47:01,550 La he confirmado 1102 00:47:01,550 --> 00:47:07,050 Ahora, magnífico 1103 00:47:07,050 --> 00:47:08,130 Nuestra 1104 00:47:08,130 --> 00:47:13,809 A ver, ¿esto cómo se hacía para que fuera multilínea? 1105 00:47:14,369 --> 00:47:15,429 Con tres, ¿verdad? 1106 00:47:20,019 --> 00:47:22,000 ¿Cómo se hace para que te admita Java 1107 00:47:22,000 --> 00:47:24,219 Un string multilínea? 1108 00:47:24,820 --> 00:47:29,380 Si le doy a como 1109 00:47:29,380 --> 00:47:32,440 Si pero hay una forma de hacer en java el multilínea 1110 00:47:32,440 --> 00:47:33,820 Pero bueno dime como 1111 00:47:33,820 --> 00:47:42,030 Ya pero porque le he puesto esto 1112 00:47:42,030 --> 00:47:52,030 A ver espérate 1113 00:47:52,030 --> 00:47:52,769 Ya que estamos 1114 00:47:52,769 --> 00:47:55,670 Como es el 1115 00:47:55,670 --> 00:47:56,309 stream 1116 00:47:56,309 --> 00:47:59,510 multilínea 1117 00:47:59,510 --> 00:48:01,710 en java, que es a partir 1118 00:48:01,710 --> 00:48:03,389 de no sé qué versión, ya no me acuerdo 1119 00:48:03,389 --> 00:48:05,630 sin tilde y sin nada, eso también 1120 00:48:05,630 --> 00:48:07,610 está secando los lagos, porque tiene que 1121 00:48:07,610 --> 00:48:09,090 hacer un mapeo por más 1122 00:48:09,090 --> 00:48:11,110 stream multilínea 1123 00:48:11,110 --> 00:48:13,849 oye, pues lo he hecho 1124 00:48:13,849 --> 00:48:15,469 bien, stream multilínea 1125 00:48:15,469 --> 00:48:16,530 lo he puesto bien 1126 00:48:16,530 --> 00:48:18,829 porque no le ha gustado 1127 00:48:18,829 --> 00:48:21,730 ah, con saltos 1128 00:48:21,730 --> 00:48:23,750 de líneas reales, ah no, pero yo no los quiero 1129 00:48:23,750 --> 00:48:25,170 con saltos de líneas reales 1130 00:48:25,170 --> 00:48:26,610 No, no, no, no 1131 00:48:26,610 --> 00:48:31,039 Es que yo quería un string normal 1132 00:48:31,039 --> 00:48:31,480 Pero es que 1133 00:48:31,480 --> 00:48:37,239 Claro, tengo que estar 1134 00:48:37,239 --> 00:48:41,860 Ah, es por el punto y coma 1135 00:48:41,860 --> 00:48:45,039 No, no es por el punto 1136 00:48:45,039 --> 00:48:46,159 ¿Por qué me sigue dando aquí un error? 1137 00:48:50,980 --> 00:48:51,380 Venga 1138 00:48:51,380 --> 00:48:55,460 Quiero meterlo 1139 00:48:55,460 --> 00:48:57,159 En un string 1140 00:48:57,159 --> 00:48:58,360 Java 1141 00:48:58,360 --> 00:49:02,800 Dame la sentencia 1142 00:49:02,800 --> 00:49:05,500 Venga 1143 00:49:05,500 --> 00:49:08,739 Pues sí que está pensando 1144 00:49:08,739 --> 00:49:12,139 Para hacer un stream 1145 00:49:12,139 --> 00:49:17,099 Aquí tienes 1146 00:49:17,099 --> 00:49:19,000 Lista para pegar en Java 1147 00:49:19,000 --> 00:49:19,980 Jodido vago 1148 00:49:19,980 --> 00:49:21,860 Dentro de nada 1149 00:49:21,860 --> 00:49:24,800 Esto ya lo había hecho yo 1150 00:49:24,800 --> 00:49:28,139 Pero si es lo que yo intentaba hacer 1151 00:49:28,139 --> 00:49:28,940 El multilínea 1152 00:49:28,940 --> 00:49:31,679 Claro 1153 00:49:31,679 --> 00:49:33,860 Ah, espérate, espérate 1154 00:49:33,860 --> 00:49:35,900 Espérate, es que estáis en todos 1155 00:49:35,900 --> 00:49:37,360 Igual no 1156 00:49:37,360 --> 00:49:39,699 Sí, tengo el 21 1157 00:49:39,699 --> 00:49:42,400 Bueno, pues ya está 1158 00:49:42,400 --> 00:49:50,579 Perfecto 1159 00:49:50,579 --> 00:49:52,300 No sé qué he hecho antes, pero 1160 00:49:52,300 --> 00:49:54,920 Lo he puesto luego 1161 00:49:54,920 --> 00:49:56,300 Pero con el multilineal no 1162 00:49:56,300 --> 00:49:58,960 Vale, vale, bueno, perfecto, ya está 1163 00:49:58,960 --> 00:50:00,559 Ahora ya sí que sí 1164 00:50:00,559 --> 00:50:03,400 Vamos a copiar el try con recursos 1165 00:50:03,400 --> 00:50:04,659 Este que están 1166 00:50:04,659 --> 00:50:08,980 Estupendo 1167 00:50:08,980 --> 00:50:10,360 Copio hasta aquí 1168 00:50:10,360 --> 00:50:12,159 Empleado dado 1169 00:50:12,159 --> 00:50:15,119 Y ahora ya sí que sí 1170 00:50:15,119 --> 00:50:19,099 Prepare statement 1171 00:50:19,099 --> 00:50:24,849 SQL 1172 00:50:24,849 --> 00:50:27,949 Aquí la verdad, como no hay interrogaciones 1173 00:50:27,949 --> 00:50:29,929 No haría falta que fuera precompilada 1174 00:50:29,929 --> 00:50:30,429 Pero bueno 1175 00:50:30,429 --> 00:50:34,480 Ah, la conexión 1176 00:50:34,480 --> 00:50:35,980 No la he metido en este DAO 1177 00:50:35,980 --> 00:50:37,679 En este DAO no he metido la conexión 1178 00:50:37,679 --> 00:50:40,659 Vamos a meter la conexión 1179 00:50:40,659 --> 00:50:49,820 Vale, el constructor 1180 00:50:49,820 --> 00:50:59,539 No está empelado 1181 00:50:59,539 --> 00:51:02,000 Vale 1182 00:51:02,000 --> 00:51:04,480 Aquí le meto 1183 00:51:04,480 --> 00:51:06,159 De esas cosas se entera 1184 00:51:06,159 --> 00:51:09,079 De lo demás no despierta 1185 00:51:09,079 --> 00:51:09,980 Pero de eso 1186 00:51:09,980 --> 00:51:22,269 Ahora ya sí 1187 00:51:22,269 --> 00:51:23,630 Y ahora ya 1188 00:51:23,630 --> 00:51:26,190 Pues sí 1189 00:51:26,190 --> 00:51:28,110 Vale 1190 00:51:28,110 --> 00:51:30,989 Y ahora ya aquí el cat 1191 00:51:30,989 --> 00:51:32,769 Y ahora ya 1192 00:51:32,769 --> 00:51:34,289 Lo único que tenemos que hacer aquí es 1193 00:51:34,289 --> 00:51:35,190 El 1194 00:51:35,190 --> 00:51:39,690 Result set 1195 00:51:39,690 --> 00:51:42,210 Pero 1196 00:51:42,210 --> 00:51:43,989 a ver 1197 00:51:43,989 --> 00:51:46,269 yo, esto teóricamente 1198 00:51:46,269 --> 00:51:47,889 yo no lo iba a hacer, o sea, tenía preparado 1199 00:51:47,889 --> 00:51:49,050 un montón de cosas 1200 00:51:49,050 --> 00:51:56,309 antes que eso 1201 00:51:56,309 --> 00:51:57,150 vale, un momentito 1202 00:51:57,150 --> 00:51:59,469 ah sí, un momento, que vamos a acabar esto 1203 00:51:59,469 --> 00:52:02,210 hemos dicho que vamos a acabar esto, hacemos un método de servicio 1204 00:52:02,210 --> 00:52:03,449 de los complicados y ya está 1205 00:52:03,449 --> 00:52:05,590 qué prisa tenéis, quién os espera 1206 00:52:05,590 --> 00:52:06,989 ¿os espera alguien? 1207 00:52:08,389 --> 00:52:09,670 ¿qué prisa tenéis? 1208 00:52:09,809 --> 00:52:10,570 ¿os espera alguien? 1209 00:52:12,210 --> 00:52:15,429 Eso, encima yendo a hacer baño 1210 00:52:15,429 --> 00:52:19,670 Pues lo mismo que a mí 1211 00:52:19,670 --> 00:52:20,650 Nadie nos espera 1212 00:52:20,650 --> 00:52:21,789 Por eso nos quedamos aquí 1213 00:52:21,789 --> 00:52:25,989 Resulset 1214 00:52:25,989 --> 00:52:28,329 Oye, pero vosotros ahora os tenéis que ir todos juntitos 1215 00:52:28,329 --> 00:52:29,369 A celebrar la Navidad 1216 00:52:29,369 --> 00:52:34,650 Ahí de verdad 1217 00:52:34,650 --> 00:52:36,250 Los jóvenes de hoy luego se os critica 1218 00:52:36,250 --> 00:52:37,349 Pero tenéis una vida más dura 1219 00:52:37,349 --> 00:52:39,170 Es verdad, lo digo en serio 1220 00:52:39,170 --> 00:52:41,710 Yo durísima tengo la vida 1221 00:52:41,710 --> 00:52:49,329 Vale, pues ya está 1222 00:52:49,329 --> 00:52:53,210 Empleado 1223 00:52:53,210 --> 00:52:59,420 A ver, este es el empleado 1224 00:52:59,420 --> 00:53:00,400 Que vamos a devolver 1225 00:53:00,400 --> 00:53:06,460 Empleado 1226 00:53:06,460 --> 00:53:07,920 Igual 1227 00:53:07,920 --> 00:53:10,739 Anul 1228 00:53:10,739 --> 00:53:12,340 Y ahora ya lo creamos 1229 00:53:12,340 --> 00:53:23,340 Y le fijamos las cositas 1230 00:53:23,340 --> 00:53:25,579 pues mientras 1231 00:53:25,579 --> 00:53:27,960 rs.next 1232 00:53:27,960 --> 00:53:30,400 ¿qué ocurre? 1233 00:53:31,920 --> 00:53:32,300 vale 1234 00:53:32,300 --> 00:53:35,559 pues ¿qué hacemos? pues nada, el empleado 1235 00:53:35,559 --> 00:53:36,380 punto 1236 00:53:36,380 --> 00:53:38,739 setNIF 1237 00:53:38,739 --> 00:53:39,320 ¿qué? 1238 00:53:39,320 --> 00:53:39,420 ¿qué? 1239 00:53:43,719 --> 00:53:48,780 bueno pues con el jdbc template 1240 00:53:48,780 --> 00:53:50,599 no tienes que hacer el try catch 1241 00:53:50,599 --> 00:53:53,199 y no tienes que hacer, si has hecho un buen 1242 00:53:53,199 --> 00:53:54,780 mapper, no tienes que hacer el mapeo. 1243 00:53:55,440 --> 00:53:58,480 El JDBC template, o sea, el Spring JDBC, 1244 00:53:58,880 --> 00:54:03,460 lo que te arregla es no gestionar los try. 1245 00:54:04,599 --> 00:54:09,119 Y si haces un buen mapper, no tener que hacer esto que 1246 00:54:09,119 --> 00:54:10,619 estamos haciendo a mano nosotros, 1247 00:54:11,199 --> 00:54:13,599 de hacer el empleado a partir de las propiedades, 1248 00:54:14,000 --> 00:54:14,860 si has hecho un mapper. 1249 00:54:15,699 --> 00:54:16,860 Para eso es para lo que te vale. 1250 00:54:17,739 --> 00:54:17,940 ¿Vale? 1251 00:54:17,940 --> 00:54:22,079 Entonces, RS, getString, el nip del select, 1252 00:54:22,079 --> 00:54:33,960 A ver, el select ya lo tenemos hecho 1253 00:54:33,960 --> 00:54:38,800 Aquí lo tengo 1254 00:54:38,800 --> 00:54:45,420 En punto set 1255 00:54:45,420 --> 00:54:47,280 Nombre 1256 00:54:47,280 --> 00:54:49,079 RS 1257 00:54:49,079 --> 00:54:50,860 Punto get string 1258 00:54:50,860 --> 00:54:58,969 En punto set 1259 00:54:58,969 --> 00:55:00,909 De los pisos pasamos, lógicamente 1260 00:55:00,909 --> 00:55:05,289 RS punto get 1261 00:55:05,289 --> 00:55:07,010 Double, ¿no? 1262 00:55:07,010 --> 00:55:08,909 Y este era el campo 1263 00:55:08,909 --> 00:55:10,789 Nombre 1264 00:55:10,789 --> 00:55:16,219 No hemos sacado 1265 00:55:16,219 --> 00:55:17,599 Este select que nos ha dado 1266 00:55:17,599 --> 00:55:20,239 No nos ha sacado 1267 00:55:20,239 --> 00:55:22,079 Del empleado 1268 00:55:22,079 --> 00:55:25,039 Del empleado 1269 00:55:25,039 --> 00:55:26,019 Que está aquí 1270 00:55:26,019 --> 00:55:27,380 Nombre y sueldo 1271 00:55:27,380 --> 00:55:30,679 Vale, no nos ha sacado el sueldo 1272 00:55:30,679 --> 00:55:31,900 De este 1273 00:55:31,900 --> 00:55:35,119 Se lo podríamos poner nosotros 1274 00:55:35,119 --> 00:55:37,739 Vale, o sea 1275 00:55:37,739 --> 00:55:39,139 El select 1276 00:55:39,139 --> 00:55:40,300 Podríamos añadir aquí 1277 00:55:40,300 --> 00:55:42,579 Un e.sueldo que él no ha puesto 1278 00:55:42,579 --> 00:55:44,460 ¿Vale? Un e.sueldo 1279 00:55:44,460 --> 00:55:46,579 Pero bueno, pasamos 1280 00:55:46,579 --> 00:55:47,500 No se lo pongamos 1281 00:55:47,500 --> 00:55:48,880 ¿Qué sueldo base le vamos a poner? 1282 00:55:49,579 --> 00:55:50,980 Fero, a tomar por saco 1283 00:55:50,980 --> 00:55:53,820 Venga, es Navidad 1284 00:55:53,820 --> 00:55:54,739 ¿Es Navidad? 1285 00:55:56,579 --> 00:55:57,800 300.000 euros 1286 00:55:57,800 --> 00:56:00,159 De sueldo base 1287 00:56:00,159 --> 00:56:02,219 Ala, pero vamos 1288 00:56:02,219 --> 00:56:04,300 Que en condiciones normales, añadís aquí 1289 00:56:04,300 --> 00:56:06,119 El campo que falta, que no lo ha metido 1290 00:56:06,119 --> 00:56:08,699 En el sele, añadís aquí el campo 1291 00:56:08,699 --> 00:56:10,659 y se lo plantáis aquí 1292 00:56:10,659 --> 00:56:12,059 y ya está 1293 00:56:12,059 --> 00:56:13,480 y ahora 1294 00:56:13,480 --> 00:56:15,820 retun 1295 00:56:15,820 --> 00:56:17,800 y se acabó 1296 00:56:17,800 --> 00:56:24,090 que me devolverá null si ha ido al catch 1297 00:56:24,090 --> 00:56:25,429 bueno 1298 00:56:25,429 --> 00:56:28,590 seguramente hay mil errorcillos, mil cositas 1299 00:56:28,590 --> 00:56:30,469 pero bueno, tendríais que probarlo 1300 00:56:30,469 --> 00:56:32,210 en 300.000 euros 1301 00:56:32,210 --> 00:56:32,710 no en euros 1302 00:56:32,710 --> 00:56:35,710 vale 1303 00:56:35,710 --> 00:56:37,829 seguro que sí 1304 00:56:37,829 --> 00:56:42,329 es que este no tiene interrogaciones 1305 00:56:42,329 --> 00:56:44,630 Este select 1306 00:56:44,630 --> 00:56:46,010 No depende de nada 1307 00:56:46,010 --> 00:56:48,369 De hecho este método no recibe nada 1308 00:56:48,369 --> 00:56:50,730 Entonces vamos a hacer algún servicio 1309 00:56:50,730 --> 00:56:52,150 Que se apoye ya sobre estos 1310 00:56:52,150 --> 00:56:53,570 Por ejemplo 1311 00:56:53,570 --> 00:56:56,710 El servicio este de aquí 1312 00:56:56,710 --> 00:56:57,550 Que era 1313 00:56:57,550 --> 00:57:04,940 Cambiar en un piso 1314 00:57:04,940 --> 00:57:06,179 El empleado que lo lleva 1315 00:57:06,179 --> 00:57:08,519 A ver como lo haríamos apoyándonos en los dados 1316 00:57:08,519 --> 00:57:10,219 ¿Vale? 1317 00:57:10,260 --> 00:57:12,400 Cambiar en un piso el empleado que lo lleva 1318 00:57:12,400 --> 00:57:15,480 vale, pues esto lo haríamos en un servicio 1319 00:57:15,480 --> 00:57:16,800 de piso 1320 00:57:16,800 --> 00:57:19,079 porque afecta a piso 1321 00:57:19,079 --> 00:57:20,940 aunque ya os dije el otro día que lo de los servicios 1322 00:57:20,940 --> 00:57:23,219 ya es más flexible, a lo mejor puede haber una sola clase 1323 00:57:23,219 --> 00:57:25,019 de servicio con los requisitos de la aplicación 1324 00:57:25,019 --> 00:57:26,960 esa clase de servicio usa los dos dados 1325 00:57:26,960 --> 00:57:27,920 y ya está, depende 1326 00:57:27,920 --> 00:57:30,500 de los servicios que tengamos que dar 1327 00:57:30,500 --> 00:57:33,159 si están muy separados por entidad o no lo están 1328 00:57:33,159 --> 00:57:34,980 bueno, vamos a hacer aquí 1329 00:57:34,980 --> 00:57:35,940 nosotros un 1330 00:57:35,940 --> 00:57:38,820 y ya enseguidita nos vamos 1331 00:57:38,820 --> 00:57:41,119 vale 1332 00:57:41,119 --> 00:57:42,619 Vamos a hacer aquí 1333 00:57:42,619 --> 00:57:44,460 Un paquete 1334 00:57:44,460 --> 00:57:58,480 Y este service 1335 00:57:58,480 --> 00:58:00,679 Sería 1336 00:58:00,679 --> 00:58:02,500 Pues 1337 00:58:02,500 --> 00:58:04,820 Piso service, por ejemplo 1338 00:58:04,820 --> 00:58:09,269 Pues en este piso service 1339 00:58:09,269 --> 00:58:11,030 Nos vendría muy bien 1340 00:58:11,030 --> 00:58:13,329 Hacer un método que este ya es directamente 1341 00:58:13,329 --> 00:58:14,590 Lo que la aplicación me pide 1342 00:58:14,590 --> 00:58:18,380 Cambiar 1343 00:58:18,380 --> 00:58:20,679 Empleado piso 1344 00:58:20,679 --> 00:58:23,079 Pues venga, aquí ya no hace falta 1345 00:58:23,079 --> 00:58:24,980 Ni que sigamos estándares 1346 00:58:24,980 --> 00:58:27,760 en nombres, el DAO si que suele seguir estándar 1347 00:58:27,760 --> 00:58:29,460 insertPiso, findById, get 1348 00:58:29,460 --> 00:58:31,539 no sé qué, esto ya como depende 1349 00:58:31,539 --> 00:58:32,280 de la aplicación 1350 00:58:32,280 --> 00:58:35,860 pues entonces, este sería 1351 00:58:35,860 --> 00:58:37,500 void, aunque podría ser un 1352 00:58:37,500 --> 00:58:39,599 boolean, que verifique si se ha hecho o realmente 1353 00:58:39,599 --> 00:58:41,900 no se ha hecho, pues por ejemplo 1354 00:58:41,900 --> 00:58:42,920 cambiar 1355 00:58:42,920 --> 00:58:45,000 empleadoPiso 1356 00:58:45,000 --> 00:58:47,639 y este que recibe como parámetro 1357 00:58:47,639 --> 00:58:49,260 pues este tiene que recibir como parámetro 1358 00:58:49,260 --> 00:58:51,860 el id del piso, supongo 1359 00:58:51,860 --> 00:58:53,719 el id del piso 1360 00:58:53,719 --> 00:58:56,420 y el need del nuevo empleado 1361 00:58:56,420 --> 00:59:02,489 vale 1362 00:59:02,489 --> 00:59:07,010 ahora, el piso service va a necesitar 1363 00:59:07,010 --> 00:59:07,590 los daos 1364 00:59:07,590 --> 00:59:10,909 pero vamos a pensar, no sé si los dos 1365 00:59:10,909 --> 00:59:12,050 uno solo, ya veremos 1366 00:59:12,050 --> 00:59:13,889 vamos a ver que tendríamos que hacer 1367 00:59:13,889 --> 00:59:17,030 pues aquí la modificación, ¿quién la va a recibir? 1368 00:59:18,110 --> 00:59:18,929 la va a recibir 1369 00:59:18,929 --> 00:59:20,889 el objeto piso 1370 00:59:20,889 --> 00:59:23,150 porque el objeto piso es el que tiene 1371 00:59:23,150 --> 00:59:24,949 aquí el campo 1372 00:59:24,949 --> 00:59:27,050 la modificación la va a recibir 1373 00:59:27,050 --> 00:59:27,829 el objeto piso 1374 00:59:27,829 --> 00:59:30,610 luego aquí habrá que llamar a un 1375 00:59:30,610 --> 00:59:32,369 update de piso 1376 00:59:32,369 --> 00:59:34,789 vale, entonces vamos a ver 1377 00:59:34,789 --> 00:59:36,289 vale 1378 00:59:36,289 --> 00:59:37,630 entonces 1379 00:59:37,630 --> 00:59:40,550 nosotros primero vamos a coger el piso a modificar 1380 00:59:40,550 --> 00:59:42,849 pues para coger el piso 1381 00:59:42,849 --> 00:59:44,510 a modificar lo tenemos tan fácil 1382 00:59:44,510 --> 00:59:46,989 como llamar al find by id 1383 00:59:46,989 --> 00:59:48,309 del dao de piso 1384 00:59:48,309 --> 00:59:50,909 con lo cual el dao de piso hace falta sí o sí 1385 00:59:50,909 --> 00:59:54,340 el dao de piso 1386 00:59:54,340 --> 00:59:55,219 nos hace falta 1387 00:59:55,219 --> 01:00:00,559 y el dao de empleado 1388 01:00:00,559 --> 01:00:02,619 Puede que nos haga falta, cuando nos haga falta lo ponemos 1389 01:00:02,619 --> 01:00:05,739 Vale, el dao de piso 1390 01:00:05,739 --> 01:00:08,300 Se llama a piso dao 1391 01:00:08,300 --> 01:00:09,340 No dao piso, jolín 1392 01:00:09,340 --> 01:00:14,670 Vale, este nos hace falta 1393 01:00:14,670 --> 01:00:16,030 Vale, entonces 1394 01:00:16,030 --> 01:00:19,269 Se lo vamos a pasar por 1395 01:00:19,269 --> 01:00:20,690 Constructor 1396 01:00:20,690 --> 01:00:24,019 Todo esto es lo que 1397 01:00:24,019 --> 01:00:26,940 Nos ahorra sprint en dos instancias 1398 01:00:26,940 --> 01:00:30,119 Que era lo que quería yo ver hoy en realidad 1399 01:00:30,119 --> 01:00:31,539 Lo del sprint boot, pero bueno 1400 01:00:31,539 --> 01:00:33,280 A la vuelta, vale 1401 01:00:33,280 --> 01:00:35,699 Este es así 1402 01:00:35,699 --> 01:00:39,940 Le pasamos 1403 01:00:39,940 --> 01:00:42,119 Este, y no sabemos si luego 1404 01:00:42,119 --> 01:00:43,739 Ahora hay que modificarlo pasándole el otro 1405 01:00:43,739 --> 01:00:44,519 No lo sabemos 1406 01:00:44,519 --> 01:00:57,739 Pues ahora ya, vamos a coger el piso 1407 01:00:57,739 --> 01:00:59,639 A modificar, y para eso tenemos 1408 01:00:59,639 --> 01:01:00,739 En dado piso 1409 01:01:00,739 --> 01:01:03,760 Un maravilloso 1410 01:01:03,760 --> 01:01:04,760 Find by id 1411 01:01:04,760 --> 01:01:07,239 No sabemos si está implementado o no, pero bueno, debería 1412 01:01:07,239 --> 01:01:08,739 Ahora ya tenemos el piso 1413 01:01:08,739 --> 01:01:11,079 Ahora, al piso hay que cambiarle el empleado 1414 01:01:11,079 --> 01:01:13,079 Pues vamos a sacar el empleado 1415 01:01:13,079 --> 01:01:15,539 ¿Vale? Porque piso 1416 01:01:15,539 --> 01:01:17,460 No tiene un set nif, piso tiene un set 1417 01:01:17,460 --> 01:01:18,800 Empleado, set objeto entero 1418 01:01:18,800 --> 01:01:21,420 Vamos a sacárselo de aquí, pues para eso 1419 01:01:21,420 --> 01:01:23,019 Vamos a editar también el empleado 1420 01:01:23,019 --> 01:01:30,500 Pues entonces vamos a 1421 01:01:30,500 --> 01:01:32,400 Necesitar aquí el otro 1422 01:01:32,400 --> 01:01:40,630 No sé que estoy haciendo 1423 01:01:40,630 --> 01:01:43,349 Empleado 1424 01:01:43,349 --> 01:01:44,369 Down 1425 01:01:44,369 --> 01:01:49,059 Vale 1426 01:01:49,059 --> 01:02:01,670 Y ahora, vale 1427 01:02:01,670 --> 01:02:03,489 Vamos a sacar el empleado 1428 01:02:03,489 --> 01:02:05,809 empleado 1429 01:02:05,809 --> 01:02:07,909 igual a través 1430 01:02:07,909 --> 01:02:09,889 de nuestro dao empleado 1431 01:02:09,889 --> 01:02:11,889 punto find by id 1432 01:02:11,889 --> 01:02:13,849 find by if 1433 01:02:13,849 --> 01:02:14,289 perdón 1434 01:02:14,289 --> 01:02:17,849 ahora ya si que podemos hacer 1435 01:02:17,849 --> 01:02:19,809 exacto 1436 01:02:20,809 --> 01:02:21,590 ahora ya 1437 01:02:21,590 --> 01:02:23,590 piso punto set 1438 01:02:23,590 --> 01:02:25,809 empleado 1439 01:02:25,809 --> 01:02:28,230 igual al empleado que acabamos de sacar 1440 01:02:28,230 --> 01:02:29,789 y que nos falta 1441 01:02:29,789 --> 01:02:31,650 pues nos falta actualizarlo 1442 01:02:31,650 --> 01:02:33,829 dao piso 1443 01:02:33,829 --> 01:02:35,510 punto 1444 01:02:35,510 --> 01:02:37,429 ubdate piso 1445 01:02:37,429 --> 01:02:39,090 y se acabó 1446 01:02:39,090 --> 01:02:44,159 entonces los servicios ya son 1447 01:02:44,159 --> 01:02:46,360 cosas random que la aplicación 1448 01:02:46,360 --> 01:02:48,059 me pida y se 1449 01:02:48,059 --> 01:02:50,380 apoyan sobre lo que necesiten 1450 01:02:50,380 --> 01:02:51,880 de las otras dos cosas 1451 01:02:51,880 --> 01:02:54,199 los daos ya si que son 1452 01:02:54,199 --> 01:02:56,420 deberían ser más estrictos 1453 01:02:56,420 --> 01:02:58,340 dao de piso todo lo que va a 1454 01:02:58,340 --> 01:02:59,880 alterar o consultar pisos 1455 01:02:59,880 --> 01:03:02,619 dao de empleado todo lo que va a alterar o modificar empleados 1456 01:03:02,619 --> 01:03:12,769 Claro, el servicio siempre se apoya en el DAO 1457 01:03:12,769 --> 01:03:14,690 El DAO es la primera capa que ponemos 1458 01:03:14,690 --> 01:03:19,170 Y ahora ya el main 1459 01:03:19,170 --> 01:03:20,829 Llamaría a esto 1460 01:03:20,829 --> 01:03:27,730 Y así más o menos con esto 1461 01:03:27,730 --> 01:03:30,150 Podéis completar el resto de la aplicación 1462 01:03:30,150 --> 01:03:32,610 Entonces aquí, efectivamente 1463 01:03:32,610 --> 01:03:35,949 Hacer esto a mano es estupendo 1464 01:03:35,949 --> 01:03:38,429 porque te permite optimizar al máximo la aplicación 1465 01:03:38,429 --> 01:03:40,150 nunca jamás va a tener un rendimiento mejor 1466 01:03:40,150 --> 01:03:42,090 que hecha así, nunca jamás 1467 01:03:42,090 --> 01:03:44,190 pero es un rollo 1468 01:03:44,190 --> 01:03:46,289 para hacer cuatro métodos 1469 01:03:46,289 --> 01:03:47,989 hemos estado escribiendo un montón de cosas 1470 01:03:47,989 --> 01:03:50,429 por no hablar de que necesitamos el SQL 1471 01:03:50,429 --> 01:03:51,849 hemos tenido para hacer un join 1472 01:03:51,849 --> 01:03:53,889 hemos preguntado a HGPT pero no nos acordamos 1473 01:03:53,889 --> 01:03:55,869 vale, pues a partir de ahí 1474 01:03:55,869 --> 01:03:57,570 es donde vamos ya poniendo 1475 01:03:57,570 --> 01:03:59,670 capas, vale 1476 01:03:59,670 --> 01:04:01,789 entonces 1477 01:04:01,789 --> 01:04:04,769 el siguiente ejercicio 1478 01:04:04,769 --> 01:04:05,690 que son también dos tablas 1479 01:04:05,690 --> 01:04:07,730 que una tira de otras? Pues lo hacéis 1480 01:04:07,730 --> 01:04:09,909 ya con Spring JDBC. ¿Qué Spring JDBC 1481 01:04:09,909 --> 01:04:11,650 qué arregla? Pues 1482 01:04:11,650 --> 01:04:13,670 todo este rollo de 1483 01:04:13,670 --> 01:04:15,789 los try, catch, 1484 01:04:15,829 --> 01:04:16,650 que se hace un rollo, 1485 01:04:17,369 --> 01:04:19,889 lo arregla, porque le damos la sentencia y se acabó. 1486 01:04:20,590 --> 01:04:21,630 ¿Vale? ¿Y qué 1487 01:04:21,630 --> 01:04:23,630 otra cosa arregla? Todo 1488 01:04:23,630 --> 01:04:25,650 esto que hemos tenido que hacer a mano, que es 1489 01:04:25,650 --> 01:04:27,829 construir el objeto 1490 01:04:27,829 --> 01:04:29,590 y ponerle las propiedades 1491 01:04:29,590 --> 01:04:31,809 una por una. El JDBC 1492 01:04:31,809 --> 01:04:33,989 directamente, a partir 1493 01:04:33,989 --> 01:04:36,349 del select, te lo mete en el objeto 1494 01:04:36,349 --> 01:04:38,110 pero claro, le tenemos 1495 01:04:38,110 --> 01:04:40,110 que haber hecho un mapper, que es el objeto este 1496 01:04:40,110 --> 01:04:42,250 que vimos, para decirle 1497 01:04:42,250 --> 01:04:43,969 al menos, cada campo 1498 01:04:43,969 --> 01:04:45,630 del select, a qué propiedad va 1499 01:04:45,630 --> 01:04:47,889 pero si le hacemos ese mapper, él ya lo hace todo 1500 01:04:47,889 --> 01:04:48,710 ¿vale? 1501 01:04:49,809 --> 01:04:51,210 pero claro, tampoco es tanto 1502 01:04:51,210 --> 01:04:54,130 no nos arregla tanto, por eso es por lo 1503 01:04:54,130 --> 01:04:56,230 que se ponen más capas por encima 1504 01:04:56,230 --> 01:04:57,250 que es lo de JPA 1505 01:04:57,250 --> 01:05:00,110 e hibernate, que es lo que veremos 1506 01:05:00,110 --> 01:05:00,570 a la vuelta 1507 01:05:00,570 --> 01:05:03,090 ¿Vale? Y tenemos que revisar 1508 01:05:03,090 --> 01:05:04,369 Que era lo que yo quería revisar hoy 1509 01:05:04,369 --> 01:05:06,730 Porque al usar Spring JDBC 1510 01:05:06,730 --> 01:05:09,489 Que lo usamos el otro día 1511 01:05:09,489 --> 01:05:11,050 En este ejercicio de los trans 1512 01:05:11,050 --> 01:05:14,829 Pues al usar 1513 01:05:14,829 --> 01:05:15,769 Usábamos ya 1514 01:05:15,769 --> 01:05:18,050 ¿Vale? 1515 01:05:19,030 --> 01:05:20,469 Al usar ya Spring 1516 01:05:20,469 --> 01:05:22,909 Nos olvidábamos del singleton 1517 01:05:22,909 --> 01:05:25,010 Es, usamos Spring 1518 01:05:25,010 --> 01:05:26,929 Pero aún así no perdemos el control de 1519 01:05:26,929 --> 01:05:28,369 Vale, pero ¿qué objetos necesitas? 1520 01:05:29,630 --> 01:05:30,550 Necesitas este 1521 01:05:30,550 --> 01:05:33,389 vale, pues lo metes aquí 1522 01:05:33,389 --> 01:05:35,110 en la clase de configuración 1523 01:05:35,110 --> 01:05:37,230 esta clase sería más bonita de llamar a configuración 1524 01:05:37,230 --> 01:05:39,690 aquí en la clase de configuración 1525 01:05:39,690 --> 01:05:41,170 metemos anotado como bin 1526 01:05:41,170 --> 01:05:43,670 todos los objetos que mi aplicación 1527 01:05:43,670 --> 01:05:44,289 va a usar 1528 01:05:44,289 --> 01:05:47,449 como singleton, vale, no objetos 1529 01:05:47,449 --> 01:05:49,469 de la aplicación, objetos del modelo, aquí no metemos 1530 01:05:49,469 --> 01:05:51,429 empleados, pisos, porque eso ya es 1531 01:05:51,429 --> 01:05:52,849 del modelo y habrá tropecientos mil 1532 01:05:52,849 --> 01:05:55,690 aquí los, vale, pues mi aplicación 1533 01:05:55,690 --> 01:05:57,309 va a usar un datasource, pues aquí 1534 01:05:57,309 --> 01:05:58,550 se mete anotado con bin 1535 01:05:58,550 --> 01:06:00,570 le digo como hacerla 1536 01:06:00,570 --> 01:06:01,389 vale 1537 01:06:01,389 --> 01:06:04,289 mi aplicación usa un jdbc template 1538 01:06:04,289 --> 01:06:06,489 pues lo meto aquí anotado 1539 01:06:06,489 --> 01:06:07,110 como bin 1540 01:06:07,110 --> 01:06:10,289 y además diciéndole como instanciarla 1541 01:06:10,289 --> 01:06:12,769 pues mi aplicación necesita esto 1542 01:06:12,769 --> 01:06:14,329 porque gestiono transacciones 1543 01:06:14,329 --> 01:06:16,469 pues lo meto aquí anotado como bin 1544 01:06:16,469 --> 01:06:17,730 lo que es más 1545 01:06:17,730 --> 01:06:20,230 mi aplicación necesita un dao 1546 01:06:20,230 --> 01:06:21,829 solo uno 1547 01:06:21,829 --> 01:06:24,329 mi aplicación necesita un service, solo uno 1548 01:06:24,329 --> 01:06:26,489 podríamos meterlo aquí 1549 01:06:26,489 --> 01:06:28,309 pero no lo hemos metido aquí 1550 01:06:28,309 --> 01:06:30,230 que era una de las cosas con las que yo me quería meter 1551 01:06:30,230 --> 01:06:32,530 hoy, porque en esta aplicación 1552 01:06:32,530 --> 01:06:33,429 que hicimos de ejemplo 1553 01:06:33,429 --> 01:06:36,550 ya las habíamos anotado por su cuenta 1554 01:06:36,550 --> 01:06:38,289 y habíamos puesto aquí 1555 01:06:38,289 --> 01:06:40,369 repository, entonces me da 1556 01:06:40,369 --> 01:06:42,190 igual poner aquí 1557 01:06:42,190 --> 01:06:44,289 repository y no meterla en la otra anotada 1558 01:06:44,289 --> 01:06:46,389 como bin, que no poner aquí 1559 01:06:46,389 --> 01:06:48,269 repository y meterla 1560 01:06:48,269 --> 01:06:50,469 en la otra anotada como bin, es lo mismo 1561 01:06:50,469 --> 01:06:51,469 cumple la misma función 1562 01:06:51,469 --> 01:06:53,949 sí, vale 1563 01:06:53,949 --> 01:06:56,369 y en el servicio igual, un segundo 1564 01:06:56,369 --> 01:06:58,489 Que en tres minutos de verdad que me callo 1565 01:06:58,489 --> 01:06:59,829 Y en el servicio igual 1566 01:06:59,829 --> 01:07:04,130 Necesitamos un singleton ventaservice 1567 01:07:04,130 --> 01:07:05,789 Solo uno, una instancia de este 1568 01:07:05,789 --> 01:07:07,150 Solo una instancia de este 1569 01:07:07,150 --> 01:07:09,130 Luego habría que decírselo a Sprint 1570 01:07:09,130 --> 01:07:10,769 Habría que decírselo 1571 01:07:10,769 --> 01:07:13,570 Inicialmente aquí 1572 01:07:13,570 --> 01:07:15,150 Bin y poner aquí el service 1573 01:07:15,150 --> 01:07:16,030 E instanciarlo 1574 01:07:16,030 --> 01:07:20,449 Ostras 1575 01:07:20,449 --> 01:07:21,829 ¿Vale? 1576 01:07:24,070 --> 01:07:25,130 Que te lo has cargado 1577 01:07:25,130 --> 01:07:32,730 vale, entonces 1578 01:07:32,730 --> 01:07:35,090 si lo anotamos aquí 1579 01:07:35,090 --> 01:07:36,829 ya no tengo que meterlo ahí 1580 01:07:36,829 --> 01:07:39,289 entonces le doy más semántica a la aplicación 1581 01:07:39,289 --> 01:07:40,809 la aplicación sabe 1582 01:07:40,809 --> 01:07:42,789 no solo que esto es un BIM 1583 01:07:42,789 --> 01:07:44,690 sino que además es un servicio 1584 01:07:44,690 --> 01:07:47,150 y al hacer un servicio 1585 01:07:47,150 --> 01:07:49,250 pues dentro de todo 1586 01:07:49,250 --> 01:07:50,670 el ecosistema este de Spring 1587 01:07:50,670 --> 01:07:52,889 hereda e implementa cosas 1588 01:07:52,889 --> 01:07:54,809 de las que podríamos nosotros tirar aquí 1589 01:07:54,809 --> 01:07:57,289 ¿Vale? Entonces, lo único es que si 1590 01:07:57,289 --> 01:07:59,489 Yo, en lugar de ponerlo 1591 01:07:59,489 --> 01:08:01,369 Como bin en el otro sitio, lo anoto 1592 01:08:01,369 --> 01:08:03,769 Aquí, pues eso me obligaba 1593 01:08:03,769 --> 01:08:04,670 A poner aquí 1594 01:08:04,670 --> 01:08:06,590 Esto 1595 01:08:06,590 --> 01:08:08,230 El component scan 1596 01:08:08,230 --> 01:08:10,909 ¿Vale? Va a decir, cuidado 1597 01:08:10,909 --> 01:08:12,809 Que va a haber más bin de los que hay aquí 1598 01:08:12,809 --> 01:08:15,309 Va a haber más bin, búscalos a partir 1599 01:08:15,309 --> 01:08:17,430 De aquí, búscalos a partir de aquí 1600 01:08:17,430 --> 01:08:19,310 Si yo los hubiera metido 1601 01:08:19,310 --> 01:08:20,329 Todos aquí como bin 1602 01:08:20,329 --> 01:08:23,369 El ventaservice y el ventasdao 1603 01:08:23,369 --> 01:08:24,590 Los hubiera metido todos aquí 1604 01:08:24,590 --> 01:08:26,550 con lo cual no hubiera puesto anotación 1605 01:08:26,550 --> 01:08:28,670 repository service, este 1606 01:08:28,670 --> 01:08:30,670 component scan me sobra, porque ya 1607 01:08:30,670 --> 01:08:32,770 sprint no tiene que irse fuera a buscarlos 1608 01:08:32,770 --> 01:08:34,470 ¿vale? pero bueno 1609 01:08:34,470 --> 01:08:37,090 se queda por ahora así solamente 1610 01:08:37,090 --> 01:08:37,930 y ya está 1611 01:08:37,930 --> 01:08:40,710 a la que volvamos 1612 01:08:40,710 --> 01:08:42,750 repasamos esto, porque 1613 01:08:42,750 --> 01:08:44,810 el paso siguiente a esto es 1614 01:08:44,810 --> 01:08:46,010 esto 1615 01:08:46,010 --> 01:08:47,930 ha implicado 1616 01:08:47,930 --> 01:08:50,609 gestionar los bin, ha implicado 1617 01:08:50,609 --> 01:08:52,930 decidir nosotros que es singleton 1618 01:08:52,930 --> 01:08:54,590 ni que no, anotarlo 1619 01:08:54,590 --> 01:08:56,350 ha implicado todo eso, que es 1620 01:08:56,350 --> 01:08:58,890 genial, porque lo controlamos 1621 01:08:58,890 --> 01:09:00,729 todo, pero hay 1622 01:09:00,729 --> 01:09:02,869 un siguiente paso que es, mira voy a meter 1623 01:09:02,869 --> 01:09:03,930 Spring Boot 1624 01:09:03,930 --> 01:09:06,750 con Spring Boot este fichero 1625 01:09:06,750 --> 01:09:09,029 entero no existe, desaparece 1626 01:09:09,029 --> 01:09:10,590 hacemos pin 1627 01:09:10,590 --> 01:09:12,569 y Spring Boot lo crea 1628 01:09:12,569 --> 01:09:14,670 lo hace solo todo 1629 01:09:14,670 --> 01:09:16,529 entonces claro, la gente hace aplicaciones 1630 01:09:16,529 --> 01:09:18,689 oye Spring Boot que fácil, ni puñetera idea 1631 01:09:18,689 --> 01:09:20,569 de lo que está haciendo, pues así no 1632 01:09:20,569 --> 01:09:22,770 se hacen las cosas, entonces el siguiente paso 1633 01:09:22,770 --> 01:09:24,029 es esto mismo. 1634 01:09:25,029 --> 01:09:25,069 ¿Eh? 1635 01:09:26,529 --> 01:09:28,229 Esto mismo es hacerlo con Spring Boot. 1636 01:09:28,930 --> 01:09:30,510 Pero ya sabréis lo que está haciendo. 1637 01:09:31,329 --> 01:09:32,569 ¿Vale? ¿Y por qué le damos 1638 01:09:32,569 --> 01:09:34,409 esa configuración que le damos? Porque en Spring Boot 1639 01:09:34,409 --> 01:09:35,289 hay que configurarlo. 1640 01:09:36,850 --> 01:09:38,250 Claro, pero bueno, esto ya lo repasaremos. 1641 01:09:38,430 --> 01:09:38,590 ¿Vale? 1642 01:09:40,590 --> 01:09:41,569 Venga, pues ala. 1643 01:09:42,250 --> 01:09:43,350 Creo que os queréis ir. 1644 01:09:44,609 --> 01:09:45,189 ¿Quedes bien?