Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Clase 1 de Hibernate
2
3
Clase 1 de Hibernate
Paso 2: Ahora agregamos el driver de la base de datos. En nuestro caso es Oracle.Para ello procedemos
exactamente igual que en el paso anterior, salvo que en vez de seleccionar Add Library se elige Add
JAR/Folder y se ubica en el explorador la ruta en la cual se halla el driver.
Clase 1 de Hibernate
Es decir se ve que estn agregados el conjunto de archivos de hibrnate y el driver JDBC de Oracle
Paso 3: Configurar la gestin del acceso a la base de datos para que lo realice Hibernate
En clases anteriores vimos que podamos gestionar el acceso a base de datos usando una Clase java
(Conexin.java) en la cual registrbamos el driver y luego configurbamos como conectarnos a la base
de datos.
Usando NetBeans para hibernate esta operacin la podemos realizar mediante un asistente.
Primero para seguir respetando el Patrn DAO creamos el paquete dao de tal forma que la organizacin
quede as
Luego seleccionamos el paquete dao, hacemos botn derecho, elegimos la opcin nuevo y por ltimo la
sub opcin otro.
Clase 1 de Hibernate
Con lo cual se abrir esta pantalla, en la cual elegimos la categora hibernate y luego elegimos crear un
Hibernate Configuration File
Luego pasamos a la siguiente pantalla, donde nos pide que coloquemos un nombre, en general se suele
dejar el nombre por defecto (hibernate.cfg) al menos que estemos trabajando con varias bases de
datos, entonces podramos indicar a que base de datos corresponde cada archivo de configuracin. Por
lo tanto para este caso lo que hacemos es saltar a la siguiente pantalla, en la cual debemos elegir una
conexin a base de datos. Si ya existe, solo debemos seleccionarla, sino elegimos crear una nueva, tal
como lo muestra la siguiente pantalla
Clase 1 de Hibernate
Al hacer esto aparece la siguiente pantalla, la cual completamos de tal forma que quede como se ve en
la siguiente pantalla
Estos datos no son al azar, es la misma informacin que habamos colocado en nuestra clase
Conexin.java (OracleConnection.java en la ltima versin).
Luego de dar Ok. les pide elegir el Esquema de la base de datos, aqu deben elegir el esquema que hayan
creado ustedes. Algunos crearon sus tablas en el esquema System, otros crearon sus propios esquemas.
En mi caso yo cree el esquema apu. Por lo tanto se elige el esquema apu.
Clase 1 de Hibernate
Tambin se puede observar que cuando eligen un esquema Netbeans intenta establecer la conexin con
los parmetros definidos en la pantalla anterior a esta. Si lo logra se visualiza la legenda Connection
established (Conexin Establecida)
Cuando se ha establecido la conexin y se acepta, volvemos a la pantalla donde establecamos la
conexin, en donde se muestra nuestra conexin, quedando almacenada en Netbeans para posteriores
proyectos y adems se puede ver que el Campo Database Dialect dice
org.hibernate.dialect.OracleDialect
Este campo nos indica que hay un archivo llamado OracleDialect ubicado en el paquete
org.hibernate.dialect de la biblioteca Hibernate que agregamos en el primer paso; el cual posee la
relacin entre los tipos de datos de la base de datos Oracle y los tipos de datos de JAVA. Es el encargado
de que el mapeo de ambos tipos de datos se realice de forma correcta.
Si elegimos la opcin XML como lo indica la pantalla anterior podremos ver el contenido del archivo xml
Clase 1 de Hibernate
Los archivos XML se han convertido en un estndar muy usado para el intercambio de informacin y
configuracin de aplicaciones, de reglas, de formatos de solicitud de requerimientos a travs de la web ,
de la estructura de arquitecturas de frameworks como hibernate, por lo tanto su aprendizaje se vuelve
un requerimiento de todo buen programador y recomiendo que lo aprendan.
Bsicamente para entender este archivo fjense que hay nombres llamados property cuyo nombre estn
en anaranjado. Estos elementos en azul se denominan tags, y el name lo que hace es como definir una
variable de ese tipo de tag. Es como si fuera la Clase Property y lo que est en anaranjado sea un
atributo.
Observen que un tag tiene un principio y un fin por ejemplo
<property> </property>
Es decir la informacin queda en el medio del inicio y fin del tag
Entonces sin entrar en mayor profundidad, los valores claves estn definidos en tags que hibernate ya
tiene definidos con un nombre especfico y cuyo valor es lo que nosotros hemos ingresado en el
asistente (el nombre del driver, la url, el usuario y password, el dialecto)
Paso 4: Crear un manejador del archivo hibernate.cfg.xml. Necesitamos poder usar ese archivo cuando
vamos a realizar un alta, baja, modificacin o consulta. Hay varias formas de hacer esto. Netbeans nos
genera en forma automtica una clase java que se encarga de esta tarea. Su nombre es
HibernateUtil.java. Para crearla hacemos los mismos pasos para crear un archivo
ConfigurationHibernate File, solo que en vez de elegir este archivo hay uno que se llama HibernateUtil
Clase 1 de Hibernate
Clase 1 de Hibernate
Esta opcin nos va a crear la clase Personas y el archivo de mapeo desde la tabla Personas que ya debe
estar creada antes, al seguir los siguientes pasos
En la pantalla siguiente no modificamos nada y pasamos a la siguiente.
Clase 1 de Hibernate
Lo que visualiza son las tablas de la base de datos a la cual estamos conectada por medio del archivo
hibernate.cfg.xml. En este caso solo tengo 2 tablas que son las que use en los ejemplos anteriores.
Agregamos la tabla Personas y pasamos a la siguiente pantalla
Aqu se ve que estn tildados Domain Code (.java): Esta opcin es la que crear la clase
Personas.java
Tambin est tildada Hibernate XML Mappings (.hbm.xml): Esta opcin es la que crea el archivo
que mapea la tabla Personas con la Clase Personas.java
10
Clase 1 de Hibernate
Como se ve esta clase es simplemente un Java Bean. No haran falta mayores explicaciones. Salvo que
para la convencin que venimos manejando el nombre Personas.java no sera del todo correcto.
Por eso modificaremos el nombre de la clase a Persona.java
Ahora veamos el archivo Personas.hbm.xml
11
Clase 1 de Hibernate
Las lneas 7 al 10 configuran el taf <id>: Este tag permite mapear la clave primaria de la tabla
Personas con el atributo correspondiente de la clase Persona.java:
Los name siempre se referirn a atributos de clases mientras que los column son los campos de
la tabla
En los property van los mapeos del resto de los atributos de la clase con respecto a los campos
de la tabla.
Fijarse que tienen el mismo formato
Ahora bien, otro aspecto no elegante de esta opcin es que el archivo de mapeo est en el paquete
dominio. Lo correcto sera que est en otro paquete.
Lo que haremos entonces es crear el paquete hibernate y luego moveremos con la opcin refactor el
archivo Personas.hbm.xml a ese paquete, entonces debera quedar as
12
Clase 1 de Hibernate
Fijarse que en la lnea 10 se agreg el tag <mapping>. Esto le sirve al archivo para saber dnde est el
archivo de mapeo. Este tag lo agreg Netbeans al crear el archivo Personas.hbm.xml.
Como usamos la opcin refactor para mover el archivo esta lnea refleja este cambio, pero es una buena
actitud fijarse si el IDE hizo lo que tena que hacer
Paso 6: Aplicar el PATRON DAO usando Hibernate
Bien ahora hacemos lo que ya vimos antes
1) Creamos una interface PersonaDAO en el paquete dao
13
Clase 1 de Hibernate
14
Clase 1 de Hibernate
Vemos que es similar al getAll ya que usa Criteria. La novedad es el uso de la Clase Restrictions.
Restrictions es una clase con mtodos para indicar que un atributo sea mayor, menor, igual, etc. En
este caso indicamos que el atributo idPersona sea igual al valor de idPersona que viene como
parmetro en el mtodo.
Nota: En este mtodo asumo que si va a existir una persona con ese nmero. Se podra antes
verificar que exista el mismo. Por ejemplo usando otro mtodo que devuelva true si existe, o
verificando que exista y almacenando el mismo en una variable, etc
En las siguientes clases vamos a usar hibernate para los casos de relaciones de tablas 1-n y n-n y
veremos otras caractersticas de Criteria. Incluso si podemos veremos algo de HQL. Espero les sirva
este archivo
15