IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

JPA, Hibernate, JDBC ou DAO


Sujet :

JDBC Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    etudiant ingenieurie informatique
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : etudiant ingenieurie informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Points : 8
    Points
    8
    Par défaut JPA, Hibernate, JDBC ou DAO
    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

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    JPA, Hibernate, JDBC ou DAO
    JPA est une spécification, qui est implémenté par Hibernate, OpenJPA, Toplink, ...
    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+.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    etudiant ingenieurie informatique
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : etudiant ingenieurie informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Points : 8
    Points
    8
    Par défaut
    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

  4. #4
    Membre éclairé
    Avatar de yimson
    Homme Profil pro
    Consultant Big Data
    Inscrit en
    Janvier 2009
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant Big Data
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 215
    Points : 747
    Points
    747
    Par défaut
    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

  5. #5
    Membre expérimenté

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Points : 1 660
    Points
    1 660
    Par défaut
    Citation Envoyé par yimson Voir le message
    Hibernate est l'implémentation de base.
    Non, Eclipselink est l'implémentation de base.
    Langages : Java, SQL
    Outils : Eclipse, Intellij
    SGBD : Oracle, PostgreSQL
    Mes Articles

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Stessy Voir le message
    Non, Eclipselink est l'implémentation de base.
    L'implémentation de base dépend du serveur, pour JBoss, c'est Hibernate alors que pour Glassfish, c'est EclipseLink
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    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

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/02/2009, 15h37
  2. [JPA / Hibernate] Cascade qui ne cascade pas !
    Par dazz_x dans le forum Persistance des données
    Réponses: 1
    Dernier message: 11/09/2007, 13h35
  3. JPA / Hibernate.
    Par Ho(c)ine. dans le forum Persistance des données
    Réponses: 2
    Dernier message: 23/08/2007, 15h39
  4. [Hibernate Tools] Template DAO
    Par ericw78 dans le forum Hibernate
    Réponses: 3
    Dernier message: 06/04/2007, 11h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo