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