Вы находитесь на странице: 1из 10

HIBERNATE

Captulo 1: Introduccin
Hibernate trabaja con una sesin. Una sesin es una unidad de trabajo
que representa una comunicacin a la BD.
Hibernate JPA es lo mismo, solo que usando anotaciones. Las anotaciones
bsicas (y que enseo en los tutoriales posteriores) son tomadas de la
especificacin de JPA, la cual es la especificacin "oficial" de ORM de SUN
(que en realidad tom prestado mucho de Hibernate).
Hibernate tiene sus propias anotaciones, las cuales permiten hacer ms
cosas que las anotaciones JPA (ya que estas pensadas para ser usadas de
forma genrica con distintos proveedores de persistencia como
eclipselink).

Captulo 2: Hibernate en NetBeans y en


Eclipse
2.1 Hibernate en NetBeans
Tenemos la opcin de trabajar hibernate con un proyecto web, con un
proyecto en consola, con un proyecto EJB, etc.
Proyecto Java (web, consola) + Hibernate (3.6 o superior) +
archivos XML:
Los pasos para la configuracin son los siguientes:
1 Tener creada la BD con las tablas correctamente relacionadas:
Normalmente partiremos de un modelo relacional para crear
nuestros POJOs (o entidades). Es por eso que debemos definir bien
las relaciones entre tablas y estar seguros de colocar los nombres
apropiados para que ms adelante no tengamos que estar
haciendo cambios en nuestro aplicativo java.
2 Crear la cadena de conexin para la BD con la que trabajaremos
Accedemos a la pestaa servicios, hacemos clic derecho sobre
Databases, escogemos New Connection, etc.
Nota:
Si trabajamos con una BD en SQL Server, en el ltimo paso, el
asistente nos pide indicar el esquema, escoger dbo o algn otro
que hayamos usado para alojar nuestra BD.
3 Crear un proyecto Java (web, consola, etc)
Nota:
Si escogimos un proyecto java web y en el ltimo cuadro del
asistente de creacin del proyecto, marcamos la opcin Hibernate,
tener en cuenta que es la versin 3.5.
4 Agregar manualmente las libreras o JARs de Hibernate contenidas
en el cuadro rojo superior de la parte de HibernateLibraries como
se ve en la figura 2.4.
Estos JARs estn contenidos en el archivo hibernate-distribution3.6.10.Final-dist.
5 Crear archivo de configuracin de Hibernate
Al finalizar la creacin del proyecto, crear un archivo de tipo XML y
de nombre hibenate.cfg.xml en la raz del classpath de la
aplicacin, tambin conocido como el paquete default. Este archivo

se denomina archivo de configuracin de hibernate y alberga toda


la informacin necesaria para la conexin a la BD.
En realidad todas las formas que tenemos
para hacer la
configuracin de hibernate para nuestro proyecto la podemos
hacer en estos 3 lugares:
Un archivo de propiedades llamado "hibernate.properties".
Un archivo XML llamado "hibernate.cfg.xml" como acabamos de
ver. Es el ms usado.
En cdigo dentro de la misma aplicacin.
Los archivos de configuracin pueden tener cualquier nombre, pero
Hibernate buscar por default los archivos con los nombres que se
ha mencionado, en la ubicacin predeterminada (la raz del
classpath de la aplicacin). Si queremos usar archivos con otros
nombres deberemos especificarlo en el cdigo.
6 Generar los POJOs:
Si deseamos generar los POJOs de acuerdo a las tablas creadas,
creamos el archivo de ingeniera reversa mapeando el catlogo de
la BD y seleccionando las tablas con las que deseamos trabajar.
Vemos que en hibernate.cfg.xml, se adicionaron las tablas
escogidas en este paso.
Haciendo uso del asistente de NetBeans, creamos los archivos de
mapeo hibernate (xml) y los POJOs de la BD o tambin llamados
beans.
Entonces, se crear por cada tabla dos archivos:
un archivo XML mapeando clase-tabla.
un 2do archivo .java que viene a ser la entidad.
7 Crear el archivo HibernateUtil en un paquete de nombre
hibernate.util por ejemplo.
Este es una clase de utilidad en el cual se implementa el inicio de
sesin de Hibernate.
NOTA:
Aunque el hecho de trabajar con archivos XML es bastante til (en
algunas situaciones) puede ser bastante engorroso, especialmente en
aplicaciones muy grandes.

Proyecto Java (web, consola) + Hibernate (3.5 o inferior) +


XML o Anotaciones:
Para trabajar con anotaciones creamos un nuevo proyecto o si ya
tenemos uno en el que estemos trabajando con XML, podemos incluir
anotaciones.
1 Agregar las libreras
Luego de crear el proyecto Java web habiendo marcado la opcin
hibernate (versin 3.5) en la ltima parte del asistente de creacin
del proyecto, es necesario agregar las libreras contenidas en el
cuadro rojo inferior de la parte de HibernateAnotaciones como se
ve en la figura 2.4.
Estos JARs estn contenidos en el archivo "hibernateannotations.zip"
Una vez que tengamos las entidades o pojos ya definidos, antes de
comenzar debo decir que en realidad Hibernate no trabaja solo cuando
usamos anotaciones. Si recuerdan, cuando creamos la biblioteca de
"HibernateAnotaciones" entre los archivos que agregamos para
conformarla se encontraba "ejb3-persistence.jar". Este archivo
contiene las clases de un Framework llamado "JPA" o "Java Persistence
API", la cual es el API "oficial" de persistencia para aplicaciones Java.
Trabaja utilizando lo que se conoce como un "proveedor de
persistencia" que es quien se encarga de hacer el verdadero trabajo
con la base de datos. En este caso Hibernate ser el proveedor de
persistencia. Las anotaciones que usaremos si son de JPA. Hibernate
tambin proporciona algunas anotaciones, pero son por si queremos
agregar funcionalidad extra, lo cual escapa al objetivo de este tutorial.
NOTA
Aunque usar anotaciones es muy prctico, tiene el inconveniente de
que las anotaciones slo son vlidas en entornos que empleen Java 5 o
superiores. Por tanto puede darse el caso de que una aplicacin que
hemos diseado con anotaciones tenga que ser migrada para
adaptarla a un cliente que usa en su entorno Java 1.4 (y al que no
podamos convencer para cambiar de versin de Java).
Adjuntar javadocs

2.2 Hibernate en Eclipse


Ya sea si deseamos trabajar con archivos XML o con anotaciones, para
empezar a trabajar es similar a trabajar en NetBeans.
1 Crear un proyecto java del tipo que queremos trabajar (consola,
web, ejb, etc)
2 Agregar las libreras
a. Una vez creado, accedemos a las propiedades del proyecto con
clic derecho y llegamos a la figura 2.1 y luego a la 2.2.
b. En la figura 2.2 seleccionamos opcin Next.
c. En l figura 2.3 seleccionamos User Libraries y as hasta crear
nuestra propia biblioteca conteniendo a los respectivos JARs que
nos permitirn trabajar con hibernate.
d. Al final debemos de tener agregadas las libreras de la figura 2.4.
NOTA:
A partir de hibernate 3.6.x se eliminaron los jar de los annotations
(hibernate-annotations.jar e hibernate-commons-annotations.jar) y
pusieron esas clases directamente en el mismo jar de hibernate
(hibernate3.jar), mientras que en hibernate 3.5.x y anterior los
annotations estaban en sus propios jars por separado.

Figura 2.1

Figura 2.2

Figura 2.3: Luego de acceder al botn User Libraries... ubicamos


las libreras con las que deseamos trabajar.

Figura 2.4: Si se trabaja con Hibernate 3.6 o una versin superior


ya no es necesario agregar la parte de HibernateAnotaciones dado
que los JARs que estn ah ya estn en el archivo hibernate3.jar.

Adjuntar javadocs
Para adjuntar la documentacin oficial de Hibernate (javadocs), seguir
los siguientes pasos:

1
2
3

Men Window, opcin Preferences.


En la figura 2.5, seleccionar la opcin Editar.
En la figura 2.6, indicar la
documentacin de hibernate.

ruta

Figura 2.5

donde

se

encuentra

la

Figura 2.6

Captulo 3: Relaciones
Para mayor informacin sobre el tema revisar los aplicativos:
Sistema_Noticias_Hibernate
BrunoHans_Practica_Hibernate-Anot

3.1 Uno a Uno

3.2 Uno a muchos

3.3 Muchos a uno

3.4 Muchos a muchos

NOTAS
1. En un objeto, si una variable es establecida como transient, significa
que su valor no ser includo como parte del estado de un objeto
serializado. En otras palabras, Todos los atributos que no estn
marcados
como
"transient"
o
con
la
anotacin
"javax.persistence.Transient" sern persistidas.
2. En nuestras clases entidad tenemos que implementan la interfaz
Serializable. Esto no es obligatorio pero es una buena prctica ya
que esto permite a las entidades poder ser serializadas, el cual es
un proceso que hace que los objetos puedan viajar a travs de un
stream desde un origen y ser recreados en el destino. Esto nos

permite, por ejemplo, en sistemas distribuidos, crear nuestras


entidades en un servidor y enviarlos a otros a travs de la red.

Вам также может понравиться