Mapeo entre clases persistentes utilizando el software Hibernate My Eclypse para conectar a una base de datos con XML

Autor: Fernando Alcantar Hernández

Tecnología e internet

06-06-2008

Descargar Original

La Intención de este Articulo dentro de este contexto, obedece a que aunque mi actividad profesional al 100% no se encuentre ligada a las bases de datos, es importante conocer la forma en como interactúan, para poder ofrecer al usuario final una aplicación de mucho potencial y que le pueda ser útil, al momento de requerirlo.

Es por ello que Hibérnate despertó inicialmente mi curiosidad por saber de que se trataba y posteriormente al irme adentrando, me resulto muy interesante cada vez mas, es por ello decidí redactar esta pequeña nota. Aunque prácticamente Hibérnate es muy amplio por lo que solo abarcaremos los aspectos mas básicos.

Resulta que Hibérnate es una herramienta de Mapeo objeto-relacional para la plataforma Java (y disponible también para .Net con el nombre de NHibernate) que facilita el mapeo de atributos entre una base de datos relacional tradicional y el modelo de objetos de una aplicación, mediante archivos declarativos (XML) que permiten establecer estas relaciones. Además de ser un entorno de trabajo que tiene como objetivo facilitar la persistencia de objetos Java en bases de datos relacionales y al mismo tiempo la consulta de estas bases de datos para obtener objetos.

En esta se ha utilizado el concepto, Clases Persistentes las cuales equivalen a una tabla de la base de datos, y un registro o línea es un objeto persistente de esta clase. Además de la palabra mapeo, que no es otra cosa que facilitar de forma sana, ordenada y normalizada entre las diferentes clases.

Antes de Continuar es necesario saber que tipo de problema busca solucionar hibérnate y principalmente se refiere al problema de la diferencia entre los dos modelos usados hoy en día para organizar y manipular datos: El usado en la memoria de la computadora (objetos) y el usado en las bases de datos (modelo relacional). Para lograr esto permite al desarrollador detallar cómo es su modelo de datos, qué relaciones existen y qué forma tienen. Con esta información Hibérnate le permite a la aplicación manipular los datos de la base operando sobre objetos, con todas las características de la POO. La programación orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas y módulos más fáciles de escribir, mantener y reutilizar. Como ya sabemos la POO (es un paradigma de programación que usa objetos y sus interacciones para diseñar aplicaciones y programas de computadora están basados en varias técnicas, incluyendo herencia, modularidad, polimorfismo, y encapsulamiento. Su uso se popularizó a principios de la década de 1990.

Actualmente son muchos los lenguajes de programación que soportan la programación orientada a objetos). Para las explicaciones del siguiente ejemplo, como ya lo comente lal principio manejaremos la creación de

Ahora Explicaremos que proceso se tiene que seguir para completar con hibérnate, toda la construcción de una aplicación sencilla:
Crear el nombre del proyecto, mediante presionar CTRL + N (Como se muestra en la figura).

Seleccionar un perfil para la conexión a la base de datos, Mandamos llamar el perfil de library Web. Especificando el nombre de usuario y contraseña (Como se muestra en la siguiente figura).

En la siguiente figura es necesario cerciorarse de que se tenga marcada la casilla de COPY JDBC DRIVER.

Ahora deberemos de crear un nombre descriptivo para la session factory (Hibérnate espera que haya una sola instancia de la clase de sesión de hibérnate por cada conexión.

Reducción de las bibliotecas de hibérnate, por defecto esta versión incluye una carga pesada de bibliotecas, por consiguiente algunas de ellas serán solamente necesarias para el desarrollo local, y algunas otras para implementación especiales de cache.

Creación de la base de datos mediante el siguiente código.
CREATE TABLE customer
(
id serial NOT NULL,
name text,
lastname text,
age int4,
CONSTRAINT customer_pk PRIMARY KEY (id)
) ;
CREATE TABLE book
(
id serial NOT NULL,
title text,
author text,
customer_fk int4,
available bool,
CONSTRAINT book_pk PRIMARY KEY (id)
) ;
ALTER TABLE book
ADD CONSTRAINT book_customer FOREIGN KEY (customer_fk) REFERENCES customer
(id) ON UPDATE RESTRICT ON DELETE RESTRICT;

Generar los archivos de mapeo, así como las clases. Como se aprecia en la siguiente imagen.

Abrir el perfil de la conexión, el cual se llama libray web, ya especificado anteriormente.

Seleccionar las tablas creadas (Book – Users), mediante el botón derecho y eligir “ Créate Hibérnate Mapping).

Seleccionar como destino el nombre del proyecto (Lybrary persistente),

Con estos pasos se habrá creado las capas de persistencia. Ademas de que se habran creado 2 nuevas entradas en nuestro paquete de exploracion

(HIBÉRNATE.CFG.XML)
<!-- mapping files -->
<mapping resource="de/laliluna/library/Book.hbm.xml"/>
<mapping resource="de/laliluna/library/User.hbm.xml"/>

BOOK.HBM.XML
<hibernate-mapping package="de.laliluna.library">
<class name="Book" table="book">
<id name="id" column="id" type="java.lang.Integer">
<generator class="sequence"/>
</id>
<property name="title" column="title" type="java.lang.String" />
<property name="author" column="author" type="java.lang.String" />
<property name="available" column="available" type="java.lang.Byte" />
<many-to-one name="customer" column="customer_fk" class="Customer" />
</class>
</hibernate-mapping>

MyEclipse creó dos archivos por clase. El primero es una clase abstracta. (AbstractBook) será sobreescrito cada vez que usted repita el procedimiento de la importación.
En la segunda clase (libro) usted puede adaptar cualquier cambio que desee realizar. Se genera solamente una vez.

Finalmente para que el ejemplo anterior quede aun mas claro sera necesario que todo usuario que inicie sus primeros ejemplos como su servidor, sera necesario bajar el software de la siguiente liga, http://www.hibernate.org, con la finalidad de que se puedan generar muchos ejemplos, no es un complicado solo requiere mayor tiempo, dedicación asi como la lectura de libros, manuales asi como el uso de Internet.

Referencias:

1.- http://mundogeek.net/archivos/2007/01/27/hibernate/ 2.- http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos
3.- http://viewvc.jboss.org/cgi-bin/viewvc.cgi/hibernate/core/trunk/documentation/manual/es-ES/src/main/docbook/content/persistent_classes.xml?revision=14075&content-type=text%2Fplain&pathrev=14153
4.- http://www.javahispano.org/contenidos/es/manual_hibernate/
5.- http://www.hibernate.org
7.- http://www.roseindia.net/hibernate/index.shtml

Nota: Es probable que en esta página web no aparezcan todos los elementos del presente documento.  Para tenerlo completo y en su formato original recomendamos descargarlo desde el menú en la parte superior

Fernando Alcantar Hernández

fernando.alcantararrobagmodelo.com.mx

Comentarios
comments powered by Disqus

Nuevas publicaciones

⇐ Hazte Fan en Facebook
⇐ Síguenos en Twitter
⇐ Agréganos en Google +
⇐ Suscríbete vía Email
"Si tú tienes una manzana y yo tengo una manzana e intercambiamos las manzanas, entonces tanto tú como yo seguiremos teniendo una manzana. Pero si tú tienes una idea y yo tengo una idea e intercambiamos ideas, entonces ambos tendremos dos ideas"
George Bernard Shaw
Comparte conocimiento
Contenidos publicados con licencia CC BY-NC-SA 3.0 a excepción de los casos en los que se indican derechos de autor específicos. Sugerimos contactar a los autores al usar material públicamente.