Download 02-hibernate ejemplo

Document related concepts

Hibernate wikipedia , lookup

Java Persistence Query Language wikipedia , lookup

Mapeo objeto wikipedia , lookup

Doctrine (PHP) wikipedia , lookup

Apache Cayenne wikipedia , lookup

Transcript
HIBERNATE
Universidad Nacional de Jujuy
Analista Programador Universitario
JTP Jorge R. Mendoza
Año 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 día.
Hibernate es una herramienta de mapeo
objeto/relacional (ORM) para entornos Java.
El término de mapeo objeto/relacional (ORM) se
refiere a la técnica de mapear una representación
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 aplicación,
mediante archivos declarativos (XML) que permiten
establecer estas relaciones.
Hibernate es software libre, distribuido bajo los términos
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 recuperación de datos
Esto puede reducir de manera importante el
tiempo de desarrollo que se tomaría con el
manejo de datos de forma manual en SQL y
JDBC.HIBERNATE usa de soporte JDBC
ARCHIVOS NECESARIOS PARA
IMPLEMENTAR HIBERNATE




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 más práctico
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 métodos setter y getter, como las clases
de dominio que veníamos haciendo, ej: Cliente.java y Producto.java
HIBERNATE CON NETBEANS
ESTRUCTURA ELEGIDA PARA NUESTRO
PROYECTO

Archivo de Configuracion de Hibernate

Interfaces DAO

Data AccessObject: desarrollan
los métodos de la interface mediante
el uso de hibernate

Los archivos de mapeo (.hbm.xml)
y POJOs (.java)

HibernateUtil.java
1- Archivo de Configuración:
hibernate.cfg.xml
1- Archivo de Configuración:
hibernate.cfg.xml
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 relación 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
1- Archivo de Configuración:
hibernate.cfg.xml
Mapping lo
agrega
Netbeans
despues de
crear los
hbm.xml
2-Los archivos de mapeo:
”Cliente.hbm.xml”
2-Los archivos de mapeo:
”Cliente.hbm.xml”
2-Los archivos de mapeo:
”Cliente.hbm.xml”
2-Los archivos de mapeo:
”Cliente.hbm.xml”
Si Netbeans no hace el mapeo completo, hay que
agregarlo
manualmente:

2-Los archivos de mapeo:
”Cliente.hbm.xml”
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 referirán 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
<generator>: indica que se
esta usando un generador
de clave que es una
secuencia propia de la base
de datos y su nombre es
CLIENTES_SEQ
2-Los archivos de mapeo:
”Cliente.hbm.xml”

Si no recuerda los nombres de las secuencias de sus
campos clave:
3-HibernateUtil.java

Vamos a crear una clase de ayuda HibernateUtil que se encargue del inicio y
haga más práctico el acceso a org.hibernate.SessionFactory.
3-HibernateUtil.java
3-HibernateUtil.java
Esto simplemente construye la configuración de Hibernate a partir del
archivo hibernate.cfg.xml.
Hasta aquí Netbeans nos ayudo con el
trabajo, ahora implementaremos el patrón
DAO y desarrollaremos los métodos
requeridos.
4-POJOs: ”Cliente.java”
Con sus respectivos setters
y getters
5-Interfaces: “ClienteDAO.java”
6- Data Access Object:
“ClienteDAOImpl.java”
6- Data Access Object: otro ejemplo
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 atrás usa
también HQL. Es como si fuera un asistente de consultas HQL que se realizan de forma más sencilla
En la línea donde se crea criteria vemos que le pasamos como parámetro la Clase Persona, es decir las
consultas que haga criteria se harán sobre la Clase Persona
Podemos usar la Clase Order para indicar que el resultado se ordene por algún atributo de la clase
Persona
6- Data Access Object: otro ejemplo
Estos son ejemplos de
métodos 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 métodos 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 parámetro en el
método.