Frameworks de persistencia.Diferencias

Existen varios frameworks de persistencia como Hibernate, Ibatis, OpenJPA, etc… pero hoy voy a tratar las principales diferencias entre los dos primeros. Antes de nada aclarar que un framework de persistencia es un marco de trabajo que se sitúa entre la lógica de negocio y la capa de base de datos, abstrayendo uno del otro.

Hibernate es una herramienta ORM que facilita el mapeo de los atributos de una base de datos relacional con el modelo de datos de la aplicación. Este mapeo se hace mediante archivos XML o anotaciones en los beans. También ofrece la posibilidad de utilizar un lenguaje de consulta de datos HQL (Hibernate Query Lenguage).

Por su parte, Ibatis , asocia los beans del modelo de la aplicación con sentencias SQL contenidos en ficheros XML.

Entre sus diferencias principales destaca que Hibernate es ORM e Ibatis no lo es, básicamente por que Ibatis no hace el mapeo directo de los atributos de la base de datos con los beans del modelo de datos e Hibernate es plenamente capaz de hacerlo. Ibatis necesita que hagamos una sentencia SQL para la relación entre ambas capas. Debido a esto mismo, Ibatis genera menos problemas de funcionamiento o desarrollo ya que siempre sabes que es lo que se está lanzando a la base de datos.

Es cierto que Hibernate facilita el desarrollo al no tener por que tener conocimiento alguno acerca de SQL, pero el no conocer lo que se hace de una manera tan clara como en Ibatis, lo desaconseja para desarrollos en los que la definición del modelo de datos está ya definido o si las relaciones en el modelo de datos van a ser complejas.

Otra diferencia, en este caso, mas positiva para Hibernate es que al utilizar su propio lenguaje de consulta de datos, lo convierte en multimotor de base de datos. Ibatis por su parte, soporta el cacheado de consultas incluso en distribuido para entornos con contenedores en cluster.

Por otro lado Ibatis consta con soporte para procedimientos almacenados e Hibernate solo a partir de la versión 3.

En definitiva, son cosas parecidas, con un resultado similar, sin embargo, Hibernate podemos decir que sigue mas orientado a la filosofía básica de los frameworks, ya que nos separa mas esas capas permitiendo que se encargue el mismo de hacer las consultas e Ibatis hace que tengas que “definir” tu mismo el enlace, esto hace que se tenga mucho mas control sobre lo que estamos haciendo, pero nos separa de esa abstracción de los framworks MVC.

<O,_,O/>