Quelle est la différence entre JPA et JDBC?


Réponse 1:

JDBC est un outil standard pour se connecter directement à une base de données et exécuter SQL par rapport à celle-ci, par exemple sélectionnez * dans TableName, etc. , insérer des procédures, etc. C'est l'une des technologies sous-jacentes derrière la plupart des DBA Java (y compris les fournisseurs JPA).

Un problème majeur avec les applications JDBC traditionnelles est que l'utilisateur peut souvent avoir du code merdique où la logique est mélangée avec SQL, de nombreux mappages entre les ensembles de données et les objets se produisent, etc.

JPA est un outil officiel pour la cartographie relationnelle objet. JPA est une technologie qui permet à l'utilisateur de mapper entre les objets dans le code et les tables de base de données. JPA peut «cacher» le SQL au développeur afin que tout ce qu'il traite au sein des classes Java, et le fournisseur vous permette de les enregistrer et de les charger à distance. Généralement, les fichiers de mappage XML ou les annotations sur les setters et les getters peuvent être utilisés pour informer le fournisseur JPA. quels champs de l'objet utilisateur correspondent à quels champs de la base de données. hibernate est le fournisseur JPA le plus populaire.

quelques autres exemples, y compris OpenJPA, toplink, etc.

Hibernate et d'autres fournisseurs populaires pour JPA écrivent SQL et utilisent JDBC pour lire et écrire depuis et vers la base de données.

Je vous remercie.

si vous aimez ma réponse, votez pour.


Réponse 2:

Ce serait un peu complexe de comprendre la différence entre les deux si vous êtes débutant. Je pense que vous devriez commencer par comprendre la différence entre JDBC et Hibernate en premier. J'espère que vous savez ce qu'est JDBC, toujours comme une brève description: JDBC signifie Java Database Connectivity. JDBC est une API Java pour se connecter et exécuter la requête avec la base de données. Il fournit des pilotes pour se connecter à la base de données. Vous pouvez utiliser l'API JDBC pour accéder aux données tabulaires stockées dans n'importe quelle base de données relationnelle. À l'aide de l'API JDBC, nous pouvons enregistrer, mettre à jour, supprimer et récupérer des données de la base de données.

Maintenant, qu'est-ce que Hibernate? C'est un framework contrairement à JDBC, vous devez importer les bibliothèques Hibernate avant de l'utiliser, tandis que JDBC fait partie de J2SE lui-même. Hibernate fait la même chose pour laquelle JDBC est développé, mais vous pouvez dire qu'Hibernate est un niveau avancé de JDBC. Hibernate simplifie le développement d'applications Java pour interagir avec la base de données. C'est un outil ORM, cela signifie qu'il mappe les objets java avec les tables db. Une classe java peut représenter une table en db. Par exemple, si vous avez mappé la table "emp_26" en tant que classe Employee dans Hibernate, vous écririez une requête orientée objet simple pour récupérer tous les employés de la table empl_26: "from Employee" // in Hibernate "select * from emp_26" // in JDBC.

Il y a beaucoup de fonctionnalités qu'Hibernate fournit comme le cache, le mappage d'association, le mappage d'héritage, HQL, la pagination et bien d'autres qui ne sont pas disponibles dans JDBC.

Pour JPA, c'est une spécification, c'est un ensemble de classes et d'interfaces. JPA a besoin d'un outil pour le mettre en œuvre et cet outil peut être Hibernate. En implémentant JPA, vous pouvez faire la même chose qu'Hibernate, mais au format JPA.Si JPA est une danse, Hibernate ou un autre outil est nécessaire pour lui fournir une scène de danse. Soit dit en passant, cela ne signifie pas qu'Hibernate ne peut pas danser sans JPA, Hibernate a également sa propre danse.


Réponse 3:

JDBC est une norme pour se connecter à une base de données directement et exécuter SQL contre elle - par exemple SELECT * FROM USERS, etc. Des ensembles de données peuvent être retournés que vous pouvez gérer dans votre application, et vous pouvez faire toutes les choses habituelles comme INSERT, DELETE, exécuter des procédures stockées, etc. C'est l'une des technologies sous-jacentes derrière la plupart des accès aux bases de données Java (y compris les fournisseurs JPA).

L'un des problèmes avec les applications JDBC traditionnelles est que vous pouvez souvent avoir du code merdique où de nombreux mappages entre les ensembles de données et les objets se produisent, la logique est mélangée avec SQL, etc.

JPA est une norme pour le mappage relationnel objet. Il s'agit d'une technologie qui vous permet de mapper entre les objets dans le code et les tables de base de données. Cela peut «masquer» le SQL au développeur afin que tout ce qu'il traite soit des classes Java, et le fournisseur vous permet de les enregistrer et de les charger comme par magie. Généralement, les fichiers de mappage XML ou les annotations sur les getters et les setters peuvent être utilisés pour indiquer au fournisseur JPA quels champs de votre mappage d'objet vers quels champs de la base de données. Le fournisseur JPA le plus célèbre est Hibernate, c'est donc un bon point de départ pour des exemples concrets.

D'autres exemples incluent OpenJPA, toplink, etc.