quelles sont les critères prises en compte pour choisir la technologie de persistance qu'il faut choisir dans mon application?
- JPA
- Hibernate
- JDBC
- DAO
et merci
quelles sont les critères prises en compte pour choisir la technologie de persistance qu'il faut choisir dans mon application?
- JPA
- Hibernate
- JDBC
- DAO
et merci
JPA est une spécification, qui est implémenté par Hibernate, OpenJPA, Toplink, ...JPA, Hibernate, JDBC ou DAO
Hibernate est un framework ORM (object relational mapping) pour faciliter la manipulation des données.
JDBC est un interface utilisé pour se connecter à la base de données.
DAO c'est le couche de l'application qui fait les requêtes à la base de données.
On ne choisie pas entre ces quatre mais si tu veux utiliser JPA, tu dois choisir le framework qui l'implémente. Pour le JDBC, le driver à utiliser dépend de la base de données utilisé.
A+.
merci pour ta reponse! ban je suis suis nouveau dans ces tehnologie, j'ai pas bien compris, tu veux dire qu'il n y a pas des point commune entre eux??
merci de m'expliquer plus
Bonjour,
Cher Amiri, Andy a été clair.
En effet,
JPA (Java Persistence API) est une spécification. C'est un ensemble de règles qui régissent la façon dont la persistance des données doit être gérée dans des applications Java. Ce sont des personnes qui siègent à une réunion qui s'appelle le JCP (Java Community Process http://www.jcp.org/en/home/index) qui rédigent ce qu'on appelle les JSR (Java Specification Request, si je ne me trompe pas la plus récente concernant la persistance est la JSR 338).
Hibernate est une implémentation de la spécification JPA décrite ci-dessus. Une fois que les spécifications ont été définies, une équipe de développement se charge de les implémenter afin d'en produire un outil comme Hibernate, Toplink, Eclipselink, etc. Hibernate est l'implémentation de base.
JDBC est une interface de programmation qui permet aux programmes Java d’accéder à plusieurs sources de données, notamment les bases de données (Oracle, MySQL, ...). JDBC se situe entre ton programme et la base de données.
DAO (Data Access Object) est ce qu'on appelle en génie logiciel un pattern de conception. Il permet de définir comment fonctionnera la couche d'accès aux données de ton programme.
Il faut te dire une chose tous ces éléments ont un lien en commun, c'est de permettre d’écrire de bons programmes, des programmes qui fonctionnent bien. Et aussi vu que tu es nouveau, tu pourras mieux comprendre ces concepts avec le temps.
Conseils: il fut lire, participer aux forums, essayer de faire des programmes et le reste suivra
Bon courage
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Pour ce qui est de la question de base, le pattern DAO peut être utilisé avec JPA ou Hibernate ou JDBC, ça n'a rien à voir, on pourrait même imaginer ce pattern pour accéder à autre chose qu'une base de données.
Si tu ne vois que les bases de données, on limitera le choix à JDBC, JPA, Hibernate (natif).
Comme ça à été dit, JPA est une "norme", Hibernate en est UNE implémentation.
Mais on peut utiliser Hibernate nativement, donc sans JPA. On bénéficie de plus de fonctionnalités (celles qui ne font pas partie de la norme JPA).
La question qu'il faut se poser pour faire un choix est plutôt de l'ordre de la performance et de la portabilité. Le plus performant est JDBC (d'ailleurs, les autres s'appuient dessus) mais c'est aussi celui qui nécessite le plus de code.
JPA ou Hibernate ont l'avantage de voir les tables sous forme d'objets java.
L'apprentissage est nettement plus long et on arrive vite aux limites et à des performances nettement moins bonnes si on ne fait pas attention au mapping.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager