12
1.1.1. CONFIGURACION DE HIBERNATE Por Alexander Montaña Existe bastante información en cuanto a la configuración de Hibernate pero escasa en cuanto a cómo implementarlo y hacerlo operativo en el herramienta de desarrollo del proyecto al cual se refiere este documento y es una excelente oportunidad para hacerlo por esto se presenta en este aparte el detalle de la configuración de Hibernate en Netbeans IDE 5.5.1, con el kit de desarrollo de java JDK 6 Update 3. Para este trabajo se requiere tener instalado la JDK de java y el IDE se necesita una conexión a internet, el núcleo de Hibernate y el módulo de XDoclet 1 ; en el ayudante del centro de actualización ubicado en el menú Herramientas/Centro de actualización permite agregar manualmente el módulo NBXDoclet buscando el archivo “sf- netbeans-nbxdoclet-update-0.5.nbm” y luego instalándolo para ver los detalles vea el Anexo 1: INSTALACION DE NBXDoclet. Una vez instalado el plugin de NBXDoclet puede crear un nuevo proyecto en java y en el paquete de recursos agregar un nuevo archivo HibernateBean. El HibernateBean es la clase POJO que será la imagen de la tabla del modelo relacional al modelo orientado a objetos. Asumamos que en el SGBD postgres tenemos una base de datos llamada mybdatos y ella contiene una tabla que se llama persona, como se ve en la siguiente imagen, el proceso de mapeo de esta tabla a objetos se hace de la siguiente manera. 1 XDoclet es una herramienta para la generación de código o XML a partir de marcas incluidas en los comentarios de un programa y que se denominan “doclets”.

Configurando Hibernate

Embed Size (px)

DESCRIPTION

Configuración de Hibernate con Netbeans y PostgreSQL

Citation preview

1.1.1. CONFIGURACION DE HIBERNATE

Por Alexander Montaña

Existe bastante información en cuanto a la configuración de Hibernate pero escasa en cuanto a cómo implementarlo y hacerlo operativo en el herramienta de desarrollo del proyecto al cual se refiere este documento y es una excelente oportunidad para hacerlo por esto se presenta en este aparte el detalle de la configuración de Hibernate en Netbeans IDE 5.5.1, con el kit de desarrollo de java JDK 6 Update 3.

Para este trabajo se requiere tener instalado la JDK de java y el IDE se necesita una conexión a internet, el núcleo de Hibernate y el módulo de XDoclet1; en el ayudante del centro de actualización ubicado en el menú Herramientas/Centro de actualización permite agregar manualmente el módulo NBXDoclet buscando el archivo “sf-netbeans-nbxdoclet-update-0.5.nbm” y luego instalándolo para ver los detalles vea el Anexo 1: INSTALACION DE NBXDoclet.

Una vez instalado el plugin de NBXDoclet puede crear un nuevo proyecto en java y en el paquete de recursos agregar un nuevo archivo HibernateBean.

El HibernateBean es la clase POJO que será la imagen de la tabla del modelo relacional al modelo orientado a objetos.

Asumamos que en el SGBD postgres tenemos una base de datos llamada mybdatos y ella contiene una tabla que se llama persona, como se ve en la siguiente imagen, el proceso de mapeo de esta tabla a objetos se hace de la siguiente manera.

1 XDoclet es una herramienta para la generación de código o XML a partir de marcas incluidas en los

comentarios de un programa y que se denominan “doclets”.

El proceso de creación del POJO para esta tabla es el siguiente:

Se le da el nombre a la clase Java en nuestro caso es Persona, de clic en siguiente y defínale la tabla a la se va a relacionar, el atributo al que se va a enlazar la llave primaria en la clase y su tipo de dato en java, la columna correspondiente a la llave primaria, su tipo de dato en la Base de datos y el método de generación de clave para nuestro caso va a ser assigned que significa asignada por el usuario.

A continuación se definen las demás propiedades del BEAN es decir la propiedad que relaciona los atributos nombres y apellidos de la tabla.

A continuación y por ser el primer POJO del proyecto se establecen los parámetros de conexión según se muestra la figura es probable que le solicite autorización para descargar las librerías correspondientes para ese manejador y que le pida asociar las librerías de Hibernate ubicadas en una carpeta llamada ‘jars de hibernate’ incluida en el CD que acompaña este material.

En este punto se tiene el POJO creado y se pueden ver los doclets, las etiquetas

Se puede ver el archivo de mapeo Objeto Relacional de este POJO a su respectiva tablas y define como se relaciona la clase con la tabla y las propiedades de la primera con los atributos de la segunda acoplando el modelo relacional con el modelo

Etiqueta que define con que

tabla se relaciona este POJO.

Definición que enlaza la propiedad de la

clase con el atributo de la Base de datos.

orientado a objetos, es un archivo XML al que es pertinente dedicarle unas líneas para un breve análisis.

Presenta un encabezado propio de los archivos XML.

Empieza la etiqueta <hibernate-mapping> que permite en sus atributos definir características como el esquema de la base de datos.

El elemento <class> permite especificar tanto la clase como la tabla a la que mapea el archivo.

Para asociar una propiedad de la clase con la llave primaria de la tabla se usa el bloque <id></id> y para hacer lo propio entre otras propiedades de la clase y sus respectivos atributos de la tabla se emplea el elemento <property>

El paso a seguir es crear el archivo de gestión de la conexión en hibernate que se llama HibernateUtil.

El archivo tiene la siguiente apariencia y gestiona la apertura, obtención y cierre de las conexiones con la base de datos.

Se procede a crear el archivo Facade correspondiente al POJO que creamos con antelación así:

En el archivo Persona.java pulsamos Ctrl + Space y en el menú contextual seleccionamos HibernateFacade que se creará y tendrá un método llamado savePersona(Persona persona), método que se usará para guardar un objeto Persona a la Base de datos.

Ahora podemos probar desde nuestra visual web page el método así.

Se crea un botón y se edita su código del evento como sigue:

Al ejecutar el proyecto y dar clic en el botón guarda este objeto persona a la base de datos y se puede verificar en el SGBD.

Para crear consultas basta diseñarlas y el modulo de XDoclet presenta una interfaz agradable para su diseño con el cursor fuera de un método abra el menú contextual y seleccione HQL generador. En el lenguaje HQL diseñamos nuestras consultas en términos de objetos y es Hibernate el que se encarga de cambiarlo al dialecto con el que se desee trabajar, Hibernate tiene soporte para los dialectos de DB2, MySQL, SAP DB, ORACLE, Sybase, Postgress, Mckoi SQL, Interbase, Pointbase, PostgreSQL, HypersonicSQL, Microsoft SQL Server e Ingres.

Despliegue a la izquierda el nodo Persona y seleccione el atributo por el que se quiere realizar la búsqueda, de clic en agregar, colóquele nombre a la consulta y el signo ‘?’ en la condición significa que tomará el valor por parámetro.

Como se puede ver la consulta queda explicita en lenguaje muy similar al SQL.

Para comprobar cómo se comporta haga los siguientes cambios al método action() del botón como sigue y ejecute el programa y revise la consola de salida.

En las aplicaciones que utilizan el framework de Hibernate existen entre otros 4 objetos dignos de explicar por su importancia y son los siguientes:

Configuration: lee del archivo hibernate.properties la información de conexión tales como el dialecto, la url de conexión, el usuario, su respectiva clave, el driver usado para conectarse, entre otros datos y los mantiene.

El archivo de hibernate.properties mantiene la información de aspectos relativos al manejador de base de datos y las conexiones a él. Puede contener mucha información pero requiere un mínimo necesario para que funcione y es: el dialecto, el driver usado para la conexión, la url de conexión, el usuario y la contraseña.

SessionFactory: es creado por un objeto Configuration y es el que se encarga de crear conexiones a la base de datos.

Session: mantiene la comunicación entre la base de datos y la aplicación, permitiendo añadir, borrar, modificar, editar objetos en la base de datos.

Transaction: crea unidades de trabajo con el propósito de garantizar la transaccionalidad. Para información más detallada y profundizar en la parte técnica de framework Hibernate se puede consultar en su web oficial www.hibernate.org