Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Universidad Nacional de Jujuy Analista Programador Universitario JTP Jorge R. Mendoza Ao 2010
HIBERNATE
El trabajar con software orientado a objetos y con una base de datos relacional puede llegar a ser engorroso y puede llegar a tomar bastante tiempo en los entornos empresariales de hoy en da. Hibernate es una herramienta de mapeo objeto/relacional (ORM) para entornos Java. El trmino de mapeo objeto/relacional (ORM) se refiere a la tcnica de mapear una representacin de datos desde un modelo de objeto a un modelo de datos relacionales con un esquema basado en SQL.
HIBERNATE
Hibernate es una herramienta de Mapeo Objeto Relacional que facilita el mapeo de atributos entre una base de datos relacional tradicional como Oracle, Postgres, etc. y el modelo de objetos de una aplicacin, mediante archivos declarativos (XML) que permiten establecer estas relaciones. Hibernate es software libre, distribuido bajo los trminos de la licencia GNU LGPL.
HIBERNATE
Se ocupa del mapeo desde las clases Java a las tablas de las bases de datos Mapeo desde los tipos de datos de Java a los tipos de datos de SQL Facilita la consulta y recuperacin de datos Esto puede reducir de manera importante el tiempo de desarrollo que se tomara con el manejo de datos de forma manual en SQL y JDBC.HIBERNATE usa de soporte JDBC
1-El archivo de configuracion de Hibernate: hibernate.cfg.xml 2-Los archivos de mapeo: Cliente.hbm.xml;Producto.hbm.xml 3-HibernateUtil.java: creamos una clase HibernateUtil que se encargue del inicio de sesion y haga ms prctico el acceso a org.hibernate.SessionFactory. 4-POJOs: Cliente.java;Producto.java
Hibernate funciona asociando a cada tabla de la base de datos un Plain Old Java Object (POJO, a veces llamado Plain Ordinary Java Object). Un POJO es similar a una Java Bean, con propiedades accesibles mediante mtodos setter y getter, como las clases de dominio que venamos haciendo, ej: Cliente.java y Producto.java
el uso de hibernate
y POJOs (.java)
HibernateUtil.java
Este campo nos indica que hay un archivo llamado OracleDialect ubicado en el paquete org.hibernate.dialect de la biblioteca Hibernate; 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
tag <id>: Este tag permite mapear la clave primaria de la tabla Clientes con el atributo correspondiente de la clase Cliente.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 de los atributos de la clase con respecto a los campos de la tabla
3-HibernateUtil.java
Vamos a crear una clase de ayuda HibernateUtil que se encargue del inicio y haga ms prctico el acceso a org.hibernate.SessionFactory.
3-HibernateUtil.java
3-HibernateUtil.java
Hasta aqu Netbeans nos ayudo con el trabajo, ahora implementaremos el patrn DAO y desarrollaremos los mtodos requeridos.
4-POJOs: Cliente.java
5-Interfaces: ClienteDAO.java
Usamos una Clase Criteria. En hibernate las consultas se hacen usando HQL que es la sigla de Hibernate Query Language, que es un lenguaje de consulta sobre objetos, a diferencia de SQL que se aplica sobre entidades de bases de datos. Criteria es una API que permite realizar consultas generales de una forma sencilla, que por atrs usa tambin HQL. Es como si fuera un asistente de consultas HQL que se realizan de forma ms sencilla En la lnea donde se crea criteria vemos que le pasamos como parmetro la Clase Persona, es decir las consultas que haga criteria se harn sobre la Clase Persona Podemos usar la Clase Order para indicar que el resultado se ordene por algn atributo de la clase Persona
Estos son ejemplos de mtodos insert, update, delete, getPersona, deber reemplazar la clase por la que requiera su interface.
Vemos que es similar al getAll ya que usa Criteria, pero usa Restrictions, que 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.