¿Cuál es la diferencia entre JPA y JDBC?


Respuesta 1:

JDBC es una herramienta estándar para conectarse a una base de datos directamente y ejecutar SQL contra ella, por ejemplo, seleccione * de TableName, etc. Se pueden devolver conjuntos de datos que el usuario puede manejar en su aplicación, y puede hacer todas las cosas habituales como actualizar, eliminar , insertar procedimientos, etc. Es una de las tecnologías subyacentes detrás de la mayoría de los DBA de Java (incluidos los proveedores de JPA).

Uno de los principales problemas con las aplicaciones JDBC tradicionales es que el usuario a menudo puede tener algún código malo donde la lógica se mezcla con SQL, se producen muchas asignaciones entre conjuntos de datos y objetos, etc.

JPA es una herramienta oficial para el mapeo relacional de objetos. JPA es una tecnología que permite al usuario mapear entre objetos en código y tablas de bases de datos. JPA puede "ocultar" el SQL del desarrollador para que se ocupe de todas las clases de Java, y el proveedor le permite guardarlo y cargarlo de forma remota. En su mayoría, los archivos de mapeo XML o las anotaciones en setters y getters se pueden usar para informar al proveedor de JPA. qué campos en el objeto de usuario se asignan a qué campos en la base de datos. hibernate es el proveedor de JPA más popular.

algunos otros ejemplos, incluidos OpenJPA, toplink, etc.

Hibernate y otros proveedores populares para JPA escriben SQL y usan JDBC para leer y escribir desde y hacia la base de datos.

Gracias.

Si te gusta mi respuesta, vota.


Respuesta 2:

Sería un poco complejo entender la diferencia entre ambos si eres un principiante. Creo que deberías comenzar por comprender primero la diferencia entre JDBC e Hibernate. Espero que sepas qué es JDBC, aún como una breve descripción: JDBC significa Java Database Connectivity. JDBC es una API de Java para conectar y ejecutar la consulta con el db. Proporciona controladores para conectarse con la base de datos. Puede usar la API JDBC para acceder a los datos tabulares almacenados en cualquier base de datos relacional. Con la ayuda de JDBC API, podemos guardar, actualizar, eliminar y obtener datos de la base de datos.

¿Y ahora qué es Hibernate? Es un marco diferente a JDBC, tiene que importar las bibliotecas de Hibernate antes de usarlo, mientras que JDBC es parte de J2SE. Hibernate hace lo mismo para lo que JDBC está desarrollado, pero se puede decir que Hibernate es un nivel avanzado de JDBC. Hibernate simplifica el desarrollo de la aplicación Java para interactuar con la base de datos. Es una herramienta ORM, lo que significa que asigna los objetos java con las tablas db. Una clase java puede representar una tabla en db. Por ejemplo, si asignó la tabla "emp_26" como clase Employee en Hibernate, entonces escribiría una consulta simple orientada a objetos para obtener todos los empleados de la tabla empl_26: "from Employee" // en Hibernate "select * from emp_26" // en JDBC

Hibernate ofrece muchas características como caché, mapeo de asociación, mapeo de herencia, HQL, paginación y muchas más que no están disponibles en JDBC.

Al llegar a JPA, es una especificación, es un conjunto de clases e interfaces. JPA necesita una herramienta para implementarla y esa herramienta puede ser Hibernate. Al implementar JPA, puede hacer lo mismo que Hibernate, pero en el formato de JPA. Si JPA es un baile, entonces Hibernate o alguna otra herramienta es necesaria para proporcionarle una etapa de baile. Por cierto, no significa que Hibernate no pueda bailar sin JPA, Hibernate también tiene su propio baile.


Respuesta 3:

JDBC es un estándar para conectarse a un DB directamente y ejecutar SQL contra él, por ejemplo, SELECT * FROM USERS, etc. Se pueden devolver conjuntos de datos que puede manejar en su aplicación, y puede hacer todas las cosas habituales como INSERT, DELETE, ejecutar procedimientos almacenados, etc. Es una de las tecnologías subyacentes detrás de la mayoría de los accesos a bases de datos Java (incluidos los proveedores JPA).

Uno de los problemas con las aplicaciones JDBC tradicionales es que a menudo puede tener algún código malo donde se producen muchas asignaciones entre conjuntos de datos y objetos, la lógica se mezcla con SQL, etc.

JPA es un estándar para el mapeo relacional de objetos. Esta es una tecnología que le permite mapear entre objetos en código y tablas de bases de datos. Esto puede "ocultar" el SQL del desarrollador para que lo único que manejen sean clases de Java, y el proveedor le permita guardarlas y cargarlas mágicamente. En su mayoría, los archivos de mapeo XML o las anotaciones en getters y setters se pueden usar para decirle al proveedor de JPA qué campos en su mapa de objetos a qué campos en la base de datos. El proveedor de JPA más famoso es Hibernate, por lo que es un buen lugar para comenzar con ejemplos concretos.

Otros ejemplos incluyen OpenJPA, toplink, etc.