JDBC y Hibernate
JDBC vs Hibernate
Java Database Connectivity (también conocida como JDBC) es una API específicamente creada para el lenguaje de programación Java. Define cómo un cliente puede acceder a una base de datos al proporcionar métodos para consultar y actualizar datos en una base de datos. Está orientado más específicamente hacia bases de datos relacionales. Se introdujo por primera vez en el mercado como parte de Java 2 Platform, Standard Edition, versión 1.1 (o J2SE). Se incluyó junto con una implementación de referencia de JDBC a ODBC, permitiendo las conexiones con la API a cualquier fuente de datos accesible de ODBC en el entorno de host de JVM.
Hibernate es una biblioteca de mapas orientada a objetos (u biblioteca ORM) específicamente diseñada para el lenguaje Java. Proporciona un marco para mapear un modelo de dominio orientado a objetos a una base de datos relacional tradicional. También resuelve los problemas de desajuste de impedancia relacional del objeto, es decir, problemas en los que un programa escrito en un lenguaje o estilo de programación orientado a objetos utiliza un sistema de gestión de bases de datos relacionales (o RDBMS). Esto se logra al reemplazar los accesos directos a la base de datos relacionados con la persistencia con funciones de manejo de alto nivel. Es un software gratuito de código abierto y se distribuye bajo la Licencia Pública General Menor de GNU.
JDBC funciona al permitir que existan una variedad de implementaciones y se utilicen para la misma aplicación. Proporciona un mecanismo mediante el cual los paquetes de Java correctos se cargan dinámicamente y se registran con el Administrador de controladores JDBC, que se utiliza como una fábrica de conexiones, de todo tipo, que crea conexiones JDBC. Estas conexiones soportan la creación y ejecución de sentencias. Pueden ser instrucciones de actualización (los SQL CREAR, INSERTAR, ACTUALIZAR y BORRAR, por ejemplo). También pueden ser declaraciones de consulta como SELECT. Una conexión JDBC también puede invocar procedimientos almacenados, es decir, aquellos procedimientos que se almacenan en el diccionario de datos de la base de datos.
Las funciones principales de Hibernate se asignan de las clases de Java a las tablas de la base de datos, así como de los tipos de datos de Java a los tipos de datos de SQL. También proporciona servicios de consulta y recuperación de datos. Es capaz de generar llamadas SQL, lo que libera al desarrollador del manejo manual de conjuntos de resultados y la conversión de objetos. Esto mantiene la aplicación portátil a todas las bases de datos SQL que son compatibles a través de la biblioteca. Asigna las clases de Java a las tablas de la base de datos mediante la configuración de un archivo XML (en el que Hibernate puede generar código fuente esquelético para las clases de persistencia) o mediante la anotación de Java (que hace que la acción anterior sea discutible). Hibernate también admite la asignación de tipos de valores personalizados, lo que hace posible tres escenarios específicos: anular el tipo de SQL predeterminado, elegido por Hibernate al asignar una columna a una propiedad; mapeando Java Enum a columnas como si fueran propiedades normales; y mapeando una sola propiedad a múltiples columnas.
Resumen:
1. JDBC es una API que define cómo un cliente puede acceder a una base de datos; Hibernate es una biblioteca ORM que proporciona un marco para mapear un modelo de dominio orientado a objetos a una base de datos relacional tradicional.
2. JDBC permite que existan varias implementaciones y las utilice la misma aplicación; Hibernate asigna desde clases de Java a tablas de bases de datos.