Usando Hibernate

Page 1

IMPLEMENTACION DE HIBERNATE EN UN PROYECTO DE SOTWARE

Alexander Montaña Bello

Resumen: En el proceso de desarrollo de sistemas de información empresarial requiere dedicar un momento para decidir cómo se va a administrar la persistencia de datos, en ocasiones se opta por usar patrones DAO, caso en el cual el desarrollador debe codificar tanto las clases de conexión como los BEAN y las clases de control que contienen las sentencias SQL en función del motor de bases de datos ya que cada motor contiene su dialecto SQL propio y en muchas ocasiones no completamente idéntico al de otros SGBD, se puede optar

por usar un framework de desarrollo especializado en el manejo de

persistencia, lo que evita la codificación de una gran cantidad de código ya que el framework lo genera con facilidad para el usuario. Este documento tiene como propósito dar una mirada al framework de persistencia en java Hibernate en el desarrollo de un proyecto de software usando Netbeans 5.0.1 como IDE.

Palabras clave: frameworks, software, persistencia de datos

Abstract: In the process of developing enterprise information systems is very important to dispose a moment to decide how to manage the data persistence, sometimes are used DAO patterns , in that case the developer must encode all the classes: connection classes, BEAN and control classes. The control classes contain the SQL sentences definition according to the Database manager System, that has its own dialect and more times different from others ones. Another option is to use a development specialized framework 1


to manage the data access, that avoids the coding of big quantity of code because the framework generates it automatically. This document pretends to look over Hibernate java persistence framework in a developing a software project using Netbeans 5.5.1 as IDE. Keywords: frameworks, software, data persistence Se requiere para implementar hibernate INTRODUCCIÓN

al desarrollo en Netbeans la instalación de

El presente documento surge durante el

un complemento del IDE en lo tocante al

desarrollo de un sistema informático para

framework, ese complemento se llama

el Centro Médico Deportivo del Oriente

XDoclet; una vez se tiene instalado y

Colombiano

varios

configurado el XDoclet se pueden crear

estudiantes de la Escuela de Ingeniería de

las clases necesarias para el manejo de la

Sistemas de La Universidad Pedagógica y

persistencia de una forma fácil y flexible

Tecnológica

de Colombia; el proyecto

ya que otorga la facilidad de cambiar de

comprende el desarrollo de una aplicación

SGBD con la sencillez de modificar un

web a tres capas, desarrollado en lenguaje

fichero XML de configuración, aunado a

java, que se ajuste con gran facilidad a

esto el empleo de un framework como

cualquier manejador de bases de datos.

Hibernate permite abstraer un modelo de

Para el desarrollo del proyecto se

la naturaleza de las bases de datos a uno

selecciona Netbeans 5.5.1 como Entorno

correspondiente en objetos propio de los

Integrado de desarrollo y PostgreSQL 8.1

lenguajes de programación orientado a

para la gestión de los datos, y se emplea

objetos como java.

Hibernate

1. PERSISTENCIA DE DATOS

por

como

parte

de

framework

de

persistencia de datos.

Un momento clave del proyecto es responder a la presunta ¿Cómo se va a 2


administrar el acceso a los datos de la

torna repetitivo para cada objeto del

aplicación? El manejo de la persistencia

modelo.

se puede realizar de varias maneras como

1.2. iBatis

son JDBC, iBatis, ORM‟s, EJB, EJB 3,

iBatis no se considera un ORM puro ya

JPA, entre otras.

que con él aún se debe escribir las sentencias SQL y el mapeo lo realiza en

1.1. JDBC

función de los resultados obtenidos con la

Es una interfaz de acceso a bases de

ejecución

datos, requiere la definición de objetos

comprende las capas de abstracción del

DAO y Control, estas últimas contienen

acceso a los datos a la que denomina capa

el

consultas,

DAO y los mapas SQL que realiza un

inserciones, supresiones de datos y las

mapeo entre los JavaBeans y SQL,

rutinas necesarias para manipular los

cuando se obtiene el resultado de la

datos de la Base. Presenta algunos

consulta SQL iBatis genera un fichero

inconvenientes en cuanto a que el código

XML que permite reflejar en objetos

de manipulación de los datos es propio

dicho resultado. iBatis es fácil de usar,

del SGBD y en casos diferente de otros,

ofrece un control total en las sentencias

por lo que una cambio de SGBD implica

SQL, permite un mapeo directamente a

muchos

aplicación,

un xml, es facilmente configurable, pero

adicionalmente en programador además

exige del programador conocimientos del

del lenguaje en la codificación de la

SQL, además ofrece baja portabilidad.

código

SQL

cambios

de

en

las

la

aplicación debe conocer y manejar el lenguaje SQL, finalmente el código se

3

de

la

sentencia.

iBatis


1.3. Herramientas ORM

Christian Bauer han escrito varios libros

Las herramientas de Mapeo Objeto

de referencia de Hibernate como es el

Relacional

una

caso de los citados en este documento;

abstracción del modelo relacional a un

por la comunidad tan amplia y activa que

modelo de objetos que es lo que se usa en

tiene entorno existe mucha información y

el lenguaje de programación java.

muy buen soporte, de modo que se ha

Aquí es donde se usa XDoclet que es una

convertido en la herramienta opensource

herramienta de generación de ficheros

más

XML a partir de ciertas marcas.

persistencia de datos para sistemas J2EE

Los

en

ORM

esencia

hacen

proporciona

un

mapeo

completa

para

el

manejo

de

y J2SE.

objeto/relacional, de entidades a objetos

El concepto de persistencia consiste en el

lo que reduce casi en un 30% el código a

almacenamiento de datos en una Base de

cargo del desarrollador.

datos relacional a través de SQL[1]. Hibernate genera una imagen en términos de objetos de una tabla de la base de

2. HIBERNATE Hibernate

es

un

de

datos, genera un fichero XML que enlaza

persistencia que se tuvo sus inicios en el

los dos modelos (el objetual y el

año 2001 y hoy se ha convertido en una

relacional).

herramienta que ofrece una solución

Las consultas que se quieran realizar no

completa para el problema del manejo de

se diseñan en lenguaje SQL sino en HQL

persistencia en java puntualmente aunque

un lenguaje de consulta personalizado de

para la tecnología .NET existe su

Hibernate que por supuesto es objetual y

homologo

que el framework se encarga de llevarlo

NHibernate,

framework

su

principal

promotor Gaving King en compañía de 4


al dialecto SQL apropiado según el

tiene por cada atributo de la tabla una

SGBD.

propiedad en la clase, sus respectivos

Una sentencia SQL para guardar un

métodos de acceso y unas marcas que va

registro en una tabla tpersona seria algo

generando el XDoclet donde queda

parecido a: INSERT INTO tpersona

expreso que tipo de dato tiene una

VALUES(„alexander‟, „montaña‟).

propiedad en su correspondiente atributo

La misma sentencia en HQL seria

de la base de datos entre otros dato.

sesión.save(persona), donde persona es una instancia de la clase que es imagen de la tabla tpersona; aparentemente ha desaparecido el código SQL pero no es así, simplemente Hibernate para ejecutar la

sentencia

revisa

el

archivo

de

configuración de Hibernate que es el Hibernate.properties que es el archivo que

En la anterior figura se puede observar

mantiene

para

que el BEAN Persona su imagen en la

establecer una conexión con el SGBD

base de datos en la tabla PERSONA(1er

como son la URL, el driver de conexión,

bloque de comentarios) y el recuadro

el usuario y la contraseña. Con estos

corresponde a la propiedad nombres en la

datos establece la conexión y obtiene una

clase que es de tipo String y está sujeto al

sesión a través de la cual puede

atributo nombres de la tabla cuyo tipo de

comunicar la aplicación con el SGBD. La

dato es varchar(25) y que no acepta

tabla tpersona debe tener su abstracción

valores nulos. Con La información que

en lenguaje objetual que es un BEAN que

contiene la clase Persona Hibernate

los

datos

mínimos

5


genera un archivo XML que establece la

sería un único registro o muchos de ellos

relación entre ambas abstracciones y que

no retorna un resultSet como se esperaría

se

vía JDBC sino un objeto Persona para el

denomina

Persona.hbm.xml

algo

similar a lo siguiente

primer caso o un List de objetos Persona con los datos correspondientes, por lo que se obtiene con Hibernate un objeto limpio, al cual no hay que depurarlo ni formarlo.

Hibernate genera un archivo llamado HibernateUtil que permite con base en su archivo de propiedades de configuración

De este modo en la aplicación no hay

(hibernate.properties) crear, obtener y

lenguaje

cerrar sesiones con la base de datos a

SQL

sino

objetual

y

es

responsabilidad de Hibernate poner cada

través de un objeto sessionFactory. Para

sentencia

cada BEAN se debe generar un archivo

en

el

dialecto

apropiado,

Hibernate soporta los siguientes dialectos:

denominado <nombre_del_Bean>Facade

DB2, MySQL, SAP DB, Oracle, Ingres,

que contiene la definición de las consultas

Sybase,

y transacciones con la base de datos.

Interbase,

Las transacciones están en lenguaje objetual, si es una consulta cuyo resultado 6

Postgress, Pointbase,

Mackoi

SQL,

PostgreSQL,


HipersonicSQL, Microsoft SQL Server,

CONCLUSIONES

Informix y FrontBase.

Existe bastante información en cuanto a

Estas tareas están automatizadas en

Hibernate como estructura de soporte

entornos de desarrollo como Netbeans al

para el manejo de persistencia de datos en

instalarse el plugin nbXDoclet y existe un

java

wizard

implementación concreta en un entorno

muy amigable

para

generar

pero

poca

en

cuanto

a

la

consultas en HQL.

integrado de desarrollo.

Para instalar Hibernate se debe descargar

En proyectos empresariales el tiempo es

las librerías necesarias [2], descargar el

vital por lo que es importante restarle el

complemento

para

tiempo invertido en las tareas repetitivas

el

y dejar que la maquina las haga de forma

Netbeans[3]

de

XDoclet

instalar

según

complemento desde el IDE y asociarle las

automática.

librerías de Hibernate, durante este

La mejor opción para el manejo de

proceso descarga las librerías necesarias

persistencia depende del tipo de proyecto,

para hacer “hablar” a Hibernate con el

la capacitación y experiencia

SGBD.

integrantes del equipo desarrollo, el

Una vez se tiene instalado y configurado

tamaño del proyecto, el grado de madurez

se puede crear el BEAN, el HibernateUtil

de la herramienta y la cantidad y calidad

y

de la documentación de la misma.

el

pudiéndose

FACADE usar

la

correspondiente herramienta

de los

y

aprovechar todas sus capacidades.

REFERENCIAS BIBLIOGRAFICAS [1] BAUER, Christian y KING, Gavin. Java persistence with hibernate. United States of America, ed. Manning Publication Co. 2007. P. 5.

7


[2] http://www.hibernate.org/6.html

[3]http://sourceforge.net/project/downl oading.php?groupname=nbxdoclet&filen ame=sf-netbeans-nbxdoclet-update0.5.nbm&use_mirror=ufpr BAUER, Christian y KING, Gavin. Hibernate in action. United States of America, ed. Manning Publication Co. 2005.

8


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.