HIBERNATE - WordPress.com

Download Report

Transcript HIBERNATE - WordPress.com

Introducción a
HIBERNATE
Primeros pasos para el mapeo entre modelo O.O
y modelo Relacional usando Hibernate en JAVA
JOSÉ LUIS REDONDO GARCÍA.
GRUPO QUERCUS ENGINEERING SOFTWARE, UEX
ORM
 Un
ORM o Mapeador Objeto-Relacional es un
framework que propone una nueva forma de modelar
los datos, y que permite solucionar la diferencia que
existe entre los paradigmas de la POO (Programación
Orientada a Objetos) y el modelo Relacional.
 El modelo Relacional trata con relaciones y conjuntos por
lo cual tiende a ser de carácter matemático, mientras que
el modelo de la POO trata con objetos y las asociaciones
entre ellos; el problema entre estos dos modelos surge en
el momento de querer persistir los objetos de negocio.
ORM
 Escritura mediante JDBC  abrir una conexión, crear una
sentencia en SQL y copiar todos los valores de las propiedades
de un objeto en la sentencia, ejecutarla y así almacenar el
objeto.


Sencillo para un caso simple.
Complicado si el objeto posee muchas propiedades, o bien se
necesita almacenar un objeto que a su vez posee una colección
de otros elementos. Se necesita crear mucho más código,
además del tedioso trabajo de creación de sentencias SQL.
 Lectura mediante JDBC  mismo problema que la escritura.
 Este problema se conoce con el nombre de “Impedancia
Objeto-Relacional”  conjunto de dificultades técnicas que
surgen cuando una base de datos relacional se usa en conjunto
con un programa escrito bajo POO.
ORM
 Ejemplo de “Impedancia Objeto-Relacional”
 Objeto Agenda Telefónica con atributo una colección de
objetos de la clase Persona, en la que a cada persona le
corresponde su correspondiente atributo “teléfono”.
 Al transformar esto a relacional se ocuparía más de una
tabla para almacenar la información  varias sentencias sql
y mucho código.
ORM
 ¿Por qué necesitamos un ORM?
ORM
 Los ORMs (además de mapear)
 Permiten reducir susceptiblemente el código necesario para llevar
a cabo las operaciones de persistencia y recuperación de objetos
 Proporcionan interfases más simples para el manejo de objetos a
través de su propio lenguaje de consulta
 Proveen al programador de configuraciones que le permiten
optimizar los tiempos de respuesta en sus correspondientes
aplicaciones
 ORMs más conocidos
 Hibernate  Código libre
 Toplink  Oracle
 JPA (viene con EJB 3.0 y toma las ideas de Hibernate)  Sun
ORM
 Una herramienta ORM trata de hacer todas estas
operaciones de mapeo pesadas por nosotros.
 Con una buena ORM, sólo tendremos que definir la
forma en la que establecemos la correspondencia entre
las clases y las tablas una sola vez (indicando que
propiedad se corresponde con que columna, que clase
con que tabla, etc.).
 Después de esto, podremos utilizar los objetos de nuestra
aplicación y decirle a nuestra ORM que los haga
persistentes,
con
una
instrucción
similar
a:
orm.save(myObject).
Hibernate
Ventajas y Desventajas
 Ventajas
 Facilidad de Programación
 Apta para aplicaciones transaccionales sin procesamiento
masivo.
 Desventajas
 Disminución de rendimiento.
 Gran cantidad de ficheros de configuración.
 No apta para aplicaciones de gran manejo de datos
Componentes
 Configuración de las librerías (.jar) necesarias
 Archivo de Configuración de Hibernate.
 Archivos de Mapeo de Clases vs BD
 Clase Utilitaria de Hibernate
 Clases de nuestra Aplicación.
Librerías Necesarias
 Se requieren de ciertos .jar para poder funcionar:
Configuración de Hibernate
 Es un archivo xml que contiene la configuración
principal del hibernate. (hibernate.cfg.xml)
 Contiene la información de la conexión.
 Contiene la información de la forma del manejo de
la transacción.
 Entre otros
 Ver
(http://docs.jboss.org/hibernate/stable/core/refer
ence/en/html/tutorial-firstapp.html#tutorialfirstapp-configuration )
Mapeo de Clases (<clase>.hbm.xml)
Clase Utilitaria
 Mantiene el manejo de la conexión.
 Mantiene los métodos de búsqueda y actualización
genérica.
Hibernate vs JDBC