1 00:00:00,940 --> 00:00:19,059 Vamos a por el primero de ellos. Me posiciono encima de mi proyecto Hibernate y voy a decir que voy a abrir, me voy New Other y me voy a ir a algo que tenga Hibernate. Aquí veo Hibernate y veo que tengo cuatro opciones. Me voy a ir por orden. 2 00:00:19,059 --> 00:00:21,179 primero el fichero de configuración 3 00:00:21,179 --> 00:00:24,829 bueno, lo puedo 4 00:00:24,829 --> 00:00:26,030 crear en el sitio que yo quiera 5 00:00:26,030 --> 00:00:28,829 y no pasaría 6 00:00:28,829 --> 00:00:30,710 nada, lo único que a lo mejor es útil 7 00:00:30,710 --> 00:00:32,850 crear las cosas en el sitio adecuado, ¿de acuerdo? 8 00:00:33,909 --> 00:00:34,390 bueno 9 00:00:34,390 --> 00:00:36,649 de momento voy a hacerlo por estándar, pero yo 10 00:00:36,649 --> 00:00:38,450 lo recomiendo, voy a hacerlo así sin 11 00:00:38,450 --> 00:00:40,609 tocar nada, pero yo lo recomiendo 12 00:00:40,609 --> 00:00:42,509 que después creen alguna librería aquí 13 00:00:42,509 --> 00:00:44,630 como de utilidad, de 14 00:00:44,630 --> 00:00:46,469 referencias, algo así, donde vayan 15 00:00:46,469 --> 00:00:47,969 colando todo esto, ¿de acuerdo? 16 00:00:49,210 --> 00:00:50,210 doy al next 17 00:00:50,210 --> 00:00:52,570 tengo la versión de Ivernite 18 00:00:52,570 --> 00:00:55,689 y tengo que seleccionar 19 00:00:55,689 --> 00:00:57,929 cuál es mi base de datos 20 00:00:57,929 --> 00:01:00,329 las partes más fáciles 21 00:01:00,329 --> 00:01:01,670 como estamos con MariaDB 22 00:01:01,670 --> 00:01:03,609 es decirle cuál es la clase 23 00:01:03,609 --> 00:01:15,879 org.jdb.driver 24 00:01:15,879 --> 00:01:19,019 después cuál es mi conexión 25 00:01:19,019 --> 00:01:20,040 la conexión 26 00:01:20,040 --> 00:01:24,120 pues ya sabemos que es nuestra URI a esa conexión 27 00:01:24,120 --> 00:01:28,280 también MaríaDB, lo tengo en la máquina 28 00:01:28,280 --> 00:01:32,239 localhost, en el 29 00:01:32,239 --> 00:01:35,319 puerto que sea, y la base de datos se llama 30 00:01:35,319 --> 00:01:39,079 test-ibernate, voy a comprobarlo 31 00:01:39,079 --> 00:01:44,079 voy a comprobar que se llama así, efectivamente, aquí veo 32 00:01:44,079 --> 00:01:49,290 que se llama test-ibernate, vale 33 00:01:49,290 --> 00:01:54,349 el usuario y el password de acceso 34 00:01:54,349 --> 00:01:57,730 e incluso aquí ya podría seleccionar cuál es 35 00:01:57,730 --> 00:02:02,890 mi dialecto. Hay una tabla de dialectos y si no por aquí van saliendo 36 00:02:02,890 --> 00:02:05,430 pero ya voy a ponerle directamente el nombre 37 00:02:05,430 --> 00:02:08,050 OrgEvernetDialect 38 00:02:08,050 --> 00:02:13,210 y se llama para este caso que es una María 39 00:02:13,210 --> 00:02:17,990 de B superior a 10.3 pues se llama 40 00:02:17,990 --> 00:02:22,289 así, ya tenemos todos los nombres 41 00:02:22,289 --> 00:02:26,250 perfectamente asociados, estas son todas las características 42 00:02:26,250 --> 00:02:30,750 para conectarme a la base de datos, ahora lo siguiente que voy a hacer 43 00:02:30,750 --> 00:02:35,150 es crear una consola de configuración 44 00:02:35,150 --> 00:02:37,610 y voy a decir next 45 00:02:37,610 --> 00:02:42,409 y esta consola de configuración 46 00:02:42,409 --> 00:02:46,710 me dice que estamos en este proyecto y que vamos a obtener 47 00:02:46,710 --> 00:02:52,569 Todas las propiedades de estas características de la configuración que acabo de crear. 48 00:02:53,509 --> 00:02:56,150 Tengo más opciones que no tengo que tocar para nada. 49 00:02:56,990 --> 00:03:00,509 Así que vamos a ir directamente a decir Finish. 50 00:03:06,270 --> 00:03:10,270 Se nos ha generado un ficherito, a este ficherito al cual volveremos posteriormente. 51 00:03:10,830 --> 00:03:16,229 Que si vemos su fuente, pues simplemente, voy a reducir esto de aquí. 52 00:03:16,229 --> 00:03:20,530 pues simplemente nos ha puesto todas las caras estadísticas 53 00:03:20,530 --> 00:03:23,530 que nosotros hemos indicado con su etiqueta correspondiente 54 00:03:23,530 --> 00:03:26,009 con su propiedad correspondiente 55 00:03:26,009 --> 00:03:30,710 con lo cual ya tenemos una parte del proyecto hecho 56 00:03:30,710 --> 00:03:32,810 ¿qué es lo que queremos ahora? 57 00:03:33,069 --> 00:03:38,370 lo que queremos es relacionar nuestra tabla 58 00:03:38,370 --> 00:03:41,509 nuestra base de datos con este proyecto 59 00:03:41,509 --> 00:04:02,780 Voy a ir otra vez a New, Other, esta parte de Hibernate Console y Confirmation es la que ya hemos hecho cuando estábamos procesando en la primera parte y vamos a obtener un fichero de ingeniería inversa para que sepa obtener la información desde la base de datos. 60 00:04:02,780 --> 00:04:03,979 damos next 61 00:04:03,979 --> 00:04:06,900 y obtenemos un fichero que se llama 62 00:04:06,900 --> 00:04:09,240 hibernate revenge xml 63 00:04:09,240 --> 00:04:11,360 bueno 64 00:04:11,360 --> 00:04:13,300 si venimos aquí 65 00:04:13,300 --> 00:04:15,719 voy a ampliarlo esto para que lo veamos 66 00:04:15,719 --> 00:04:16,639 más grande 67 00:04:16,639 --> 00:04:19,560 vemos que consola de configuración me hace falta 68 00:04:19,560 --> 00:04:21,279 vemos que la que hemos creado 69 00:04:21,279 --> 00:04:23,519 es la que nos aparece y damos a 70 00:04:23,519 --> 00:04:24,480 refresh 71 00:04:24,480 --> 00:04:27,279 si todo ha ido bien 72 00:04:27,279 --> 00:04:29,040 pues va a obtener 73 00:04:29,040 --> 00:04:31,259 con los datos que le hemos pasado 74 00:04:31,259 --> 00:04:32,220 la tabla 75 00:04:32,220 --> 00:04:38,899 y el esquema de tablas que tenemos, en este caso vamos a incluir todas las tablas que tenemos aquí 76 00:04:38,899 --> 00:04:44,759 vamos a incluir absolutamente todo y finalizamos 77 00:04:44,759 --> 00:04:52,560 con lo cual ya tenemos aquí el diseño de todas las tablas que queremos 78 00:04:52,560 --> 00:05:05,920 vamos ahora a cambiar la perspectiva de la aplicación, queremos ver la perspectiva que nos da Evernite 79 00:05:05,920 --> 00:05:11,779 Vamos a ir a Window Perspective, Open Perspective y otras. 80 00:05:12,620 --> 00:05:17,079 Y entonces aquí veremos en algún sitio la perspectiva Hibernate, ahí mismo. 81 00:05:19,300 --> 00:05:22,279 Bueno, ya vemos que nos ha cambiado, nos ha incluido esta pestaña aquí. 82 00:05:22,279 --> 00:05:27,019 Y nos ha cambiado algunas cuestiones que aparecen por aquí abajo, ¿de acuerdo? 83 00:05:27,399 --> 00:05:28,740 O sea, algo ha cambiado. 84 00:05:29,259 --> 00:05:32,399 Si vemos por aquí, habilitamos esta parte de aquí. 85 00:05:35,350 --> 00:05:37,490 A ver si consigo abrir. 86 00:05:37,490 --> 00:05:42,490 me aparece una configuración, una factoría 87 00:05:42,490 --> 00:05:44,790 y la base de datos 88 00:05:44,790 --> 00:05:49,810 aquí debería aparecer mi configuración y sesión, me debería aparecer 89 00:05:49,810 --> 00:05:53,290 finalmente las tablas ya asociadas, con lo cual vamos a ir 90 00:05:53,290 --> 00:05:55,430 a mapear esas tablas 91 00:05:55,430 --> 00:06:05,370 me voy a colocar en mi proyecto y lo que quiero ahora 92 00:06:05,370 --> 00:06:09,410 es que me genere automáticamente esas tablas, voy a ver si puedo 93 00:06:09,410 --> 00:06:25,750 En este icono que aparece aquí, vemos el primero que es el de correr un proyecto, el segundo la última herramienta y vemos el tercero, pues en este vemos que hay una configuración para generar realmente el código Ivernite. 94 00:06:25,750 --> 00:06:35,819 Vamos a darle. Aquí vemos que está nuestro generador. Vamos a crear una configuración nueva. 95 00:06:37,079 --> 00:06:45,990 Entonces, bueno, aquí nos aparece un nombre, voy a poner configuración, configuración hibernate. 96 00:06:45,990 --> 00:06:50,709 Y vamos a ver primero cuál es nuestra consola de configuración, que es esta. 97 00:06:50,709 --> 00:06:55,670 cuál es nuestro directorio de salida 98 00:06:55,670 --> 00:06:59,949 que nosotros queremos que nuestro directorio de salida sea este 99 00:06:59,949 --> 00:07:05,889 SRC, queremos que haga desde la conexión 100 00:07:05,889 --> 00:07:09,689 de JDBC ingeniería inversa, le voy a meter 101 00:07:09,689 --> 00:07:13,529 esas clases en un paquete que se llame clases 102 00:07:13,529 --> 00:07:16,449 y voy a seleccionar 103 00:07:16,449 --> 00:07:23,079 nuestro Revenge XML, puedo usar 104 00:07:23,079 --> 00:07:26,980 el que estaba ya creado, que es lo más cómodo, o incluso crearlo. Voy a usar 105 00:07:26,980 --> 00:07:32,579 el que tengo creado y ya está. 106 00:07:34,040 --> 00:07:38,500 Voy a maximizar la ventana para ver todo. Bueno, me dice cómo va a generar 107 00:07:38,500 --> 00:07:41,740 determinados elementos, cómo va a detectar si hay relaciones 108 00:07:41,740 --> 00:07:45,480 muchos a muchos, etcétera, etcétera. Me voy a ir a exporters. 109 00:07:46,240 --> 00:07:48,759 Yo quiero que me genere las anotaciones 110 00:07:48,759 --> 00:07:52,800 ya preparadas para después trabajar con Ivernite. 111 00:07:52,800 --> 00:07:54,600 quiero 112 00:07:54,600 --> 00:07:57,339 que me genere el código 113 00:07:57,339 --> 00:07:58,339 java 114 00:07:58,339 --> 00:08:01,579 y con esto 115 00:08:01,579 --> 00:08:02,480 me haría de repente 116 00:08:02,480 --> 00:08:05,779 voy a pedir que me haga ya todo esto 117 00:08:05,779 --> 00:08:07,339 que me genere todo esto 118 00:08:07,339 --> 00:08:07,860 ¿vale? 119 00:08:08,879 --> 00:08:11,339 algunas cuestiones me van a sobrar pero con esto 120 00:08:11,339 --> 00:08:12,100 lo tengo hecho 121 00:08:12,100 --> 00:08:14,720 y ahora con esto voy a aplicar 122 00:08:14,720 --> 00:08:17,439 y voy a 123 00:08:17,439 --> 00:08:21,720 ejecutar, vemos abajo 124 00:08:21,720 --> 00:08:22,779 que está haciendo cosas 125 00:08:22,779 --> 00:08:29,449 y parece que ha finalizado 126 00:08:29,449 --> 00:08:43,190 ¿De acuerdo? Vamos a ver si nos ha hecho cosas de verdad. Me voy a SRC, veo que hay un paquete de clases y dentro de este paquete de clases ya me ha creado dos clases Java y dos ficheros de mapeo. 127 00:08:43,190 --> 00:08:47,309 Voy a entrar en la clase de departamento. 128 00:08:47,370 --> 00:09:06,840 Si me voy a la clase de departamento, voy a minimizar esto de aquí, veo que ya me ha generado una clase de departamento que está relacionada con lo que teníamos en nuestra estructura base de datos. 129 00:09:07,039 --> 00:09:15,480 Tenemos los campos id y nombre e incluso ha relacionado y obtenido un conjunto de empleados puesto que ya tiene una relación con empleados. 130 00:09:15,720 --> 00:09:20,840 Ha creado un par de constructores y todos los roquetes y setes necesarios. 131 00:09:21,460 --> 00:09:29,929 Si me voy a la clase empleado, pues tengo exactamente la estructura que teníamos antes. 132 00:09:31,309 --> 00:09:39,580 Vemos aquí los constructores y todos los valores que teníamos. 133 00:09:40,700 --> 00:09:41,100 ¿De acuerdo? 134 00:09:41,100 --> 00:09:46,419 bien, pues vamos a ver si 135 00:09:46,419 --> 00:09:50,220 en nuestra visión de Ivernet, vamos a refrescar 136 00:09:50,220 --> 00:10:07,690 a ver si hay algo nuevo aquí, efectivamente, ya tenemos en configuración 137 00:10:07,690 --> 00:10:11,610 tenemos nuestra clase departamento, nuestra clase 138 00:10:11,610 --> 00:10:14,629 empleado, y en factoria 139 00:10:14,629 --> 00:10:19,450 tenemos ya nuestros elementos desarrollados 140 00:10:19,450 --> 00:10:23,190 con lo cual ya es momento de intentar 141 00:10:23,190 --> 00:10:27,070 hacer programar esto. Si se han dado cuenta 142 00:10:27,070 --> 00:10:30,970 aquí aparece durante todo momento esto amarillo 143 00:10:30,970 --> 00:10:34,750 indicando que hay un aviso. Esto simplemente es que al ser 144 00:10:34,750 --> 00:10:38,830 serializable esta clase nos solicita 145 00:10:38,830 --> 00:10:44,320 que pongamos un, vamos a ver si nos vuelve a aparecer 146 00:10:44,320 --> 00:10:48,679 si no me da departamento, porque no me está apareciendo y quiero que me aparezca 147 00:10:48,679 --> 00:10:52,759 para que lo vean, que nos pongamos una versión 148 00:10:52,759 --> 00:10:57,299 de la serialización, por defecto si no decimos nada 149 00:10:57,299 --> 00:11:00,299 puedo poner una que es así, igual para todos los casos 150 00:11:00,299 --> 00:11:05,960 voy a poner esta, si quisiéramos un identificador único tendríamos que indicarlo 151 00:11:05,960 --> 00:11:09,720 este es uno de los casos, voy a poner esto mismo 152 00:11:09,720 --> 00:11:12,320 esto mismo lo voy a hacer también a empleado y ahora vuelvo aquí 153 00:11:12,320 --> 00:11:15,379 en empleado hago lo mismo 154 00:11:15,379 --> 00:11:21,679 y esto, vamos a quitar este comentario, después sería bueno documentar toda la clase 155 00:11:21,679 --> 00:11:26,639 pero bueno, ahora, en departamento sigue quedándonos un aviso 156 00:11:26,639 --> 00:11:30,000 y es este, y tiene que ver con el tipo genérico 157 00:11:30,000 --> 00:11:34,919 nos pide que indiquemos un tipo concreto para empleados 158 00:11:34,919 --> 00:11:38,580 bueno, pues simplemente poniendo aquí empleado 159 00:11:38,580 --> 00:11:43,419 y poniendo aquí esto así, pues ya lo hemos quitado 160 00:11:43,419 --> 00:11:45,379 no sé si queda alguno más por aquí abajo 161 00:11:45,379 --> 00:11:50,720 sí, quedan algunos que tienen que ver todos ellos con ese conjunto de empleados 162 00:11:50,720 --> 00:11:55,059 este es uno, esto ya queda limpio 163 00:11:55,059 --> 00:11:56,679 nos queda alguno por ahí 164 00:11:56,679 --> 00:11:57,919 porque estamos viendo a la derecha 165 00:11:57,919 --> 00:12:00,460 las rayitas amarillas 166 00:12:00,460 --> 00:12:07,940 y nos queda otro 167 00:12:07,940 --> 00:12:09,899 aquí 168 00:12:09,899 --> 00:12:14,000 ya me parece que no hay ninguna rayita 169 00:12:14,000 --> 00:12:15,759 de ningún tipo y efectivamente 170 00:12:15,759 --> 00:12:17,399 ya no hay ningún aviso 171 00:12:17,399 --> 00:12:19,200 que esté por aquí 172 00:12:19,200 --> 00:12:20,860 recordándonos nada 173 00:12:20,860 --> 00:12:24,240 bueno, pues vamos después ya 174 00:12:24,240 --> 00:12:26,700 a hacer lo que es nuestra primera aplicación 175 00:12:26,700 --> 00:12:27,700 Gracias.