Hibernate

Hibernate
Información sobre la plantilla
Hibernate.gif
Es una herramienta de Mapeo Objeto-Relacional (ORM por sus siglas en inglés, Object-Relational Mapping) para la plataforma Java.
CreadorGavin King
Última versión estableHibernate 3.6.4
Sistemas Operativos compatiblesWindows, Linux
IdiomaInglés
LicenciaGNU LGPL
Sitio web
http://www.hibernate.org/downloads

Hibernate. Herramienta que facilita el mapeo de atributos entre una base de datos relacional tradicional y el modelo de objetos de una aplicación mediante archivos declarativos XML o anotaciones en los beans (componente que se puede reutilizar y que puede ser manipulado visualmente por una herramienta de programación en lenguaje Java) de las entidades que permiten establecer estas relaciones.


Historia

Hibernate fue una iniciativa de un grupo de desarrolladores dispersos alrededor del mundo conducidos por Gavin King. Tiempo después, JBoss Inc. (empresa comprada por Red Hat) contrató a los principales desarrolladores de Hibernate y trabajó con ellos en brindar soporte al proyecto.

La rama actual de desarrollo de Hibernate es la 3.x, la cual incorpora nuevas características, como una nueva arquitectura Interceptor/Callback, filtros definidos por el usuario, y —opcionalmente— el uso de anotaciones para definir la correspondencia en lugar de (o conjuntamente con) los archivos XML. Hibernate 3 también guarda cercanía con la especificación EJB 3.0 (aunque apareciera antes de la publicación de dicha especificación por Java Community Process) y actúa como la espina dorsal de la implementación de EJB 3.0 en JBoss.


Características

Es software libre, distribuido bajo los términos de las licencias GNU y Licencia Pública General Reducida (LGPL por sus siglas en inglés, Lesser General Public License) y uno de sus mayores atractivos lo constituye el manejo de consultas y su trabajo con bases de datos. (Hibernate, 2010)

Hibernate, como todas las herramientas de su tipo busca solucionar el problema de la diferencia entre los dos modelos de datos coexistentes en una aplicación: el usado en la memoria de la computadora (orientación a objetos) y el usado en las bases de datos (modelo relacional). Para lograr esto permite al desarrollador detallar cómo es su modelo de datos, qué relaciones existen y qué forma tienen. Con esta información le permite a la aplicación manipular los datos de la base operando sobre objetos, con todas las características de la Programación Orientada a Objetos (OOP por sus siglas en inglés, Object Oriented Programming).

Hibernate convertirá los datos entre los tipos utilizados por Java y los definidos por SQL, generará las sentencias de este y liberará al desarrollador del manejo manual de los datos que resultan de la ejecución de dichas sentencias, manteniendo la portabilidad entre todos los motores de bases de datos con un ligero incremento en el tiempo de ejecución. (Hibernate, 2010)

Este ofrece también un lenguaje de consulta de datos llamado Hibernate Query Language (HQL por sus siglas en inglés), al mismo tiempo que una Aplication Programming Interface (API por sus siglas en inglés, Interfaz de programación de aplicaciones) para construir las consultas programáticamente (conocida como "criteria"). (Hibernate, 2010)


Ventajas

Una ventaja es la total independencia con el motor de base de datos ya que se tiene totalmente independiente la capa de datos con la capa de lógica de negocio. Por tanto bastará con cambiar una línea de un fichero de conexión y se tendrá la aplicación rodando bajo otro motor de base de datos.

Esta herramienta brinda facilidad de programación ya que la orientación a objetos facilita muchísimo el pasar de un diagrama a código fuente.


Fuente

  1. http://www.programacion.com/articulo/persistencia_de_objetos_java:_el_camino_hacia_hibernate_251
  2. http://www.davidmarco.es/tutoriales/hibernate-reference/
  3. http://olex.openlogic.com/packages/hibernate/3.6.1.Final