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

Persistance des données Java Discussion :

Qu'est-ce que la Persistance ? Hibernate est-il nécessaire ?


Sujet :

Persistance des données Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2012
    Messages : 37
    Par défaut Qu'est-ce que la Persistance ? Hibernate est-il nécessaire ?
    Bonjour,

    Je suppose que cette question a été posée des milliers de fois, mais après plusieurs semaines de recherches j'en suis toujours au même point.

    J'ai repris le code d'un logiciel pseudo Open Source suite à sa disparition sur le net. C'est un logiciel dont le coeur est une BDD (driver H2db). Il a été développé avec Hibernate et tout un tas de librairies annexes, plus ou moins exotiques. Au-delà de la simple compréhension du code, je me pose des questions sur la stratégie suivie par le développeur initial. Et j'en viens à ma question.

    Sachant que l'application est du type mono-poste, mono-utilisateur, mono-document, qu'elle est l'utilité de la persistance? D'après ce que j'ai pu comprendre la persistance est nécessaire dans le cas d'accès simultanés, mais en l'espèce ce n'est pas le cas. Quand on explore la base pour faire une liste d'objets liés, on exploite la-dite liste avant de faire autre chose. Du coup je trouve que toute la partie Hibernate ne fait qu'encombrer le code et accroître considérablement le temps de réponse, surtout au lancement du logiciel.

    Donc si quelqu'un pouvait m'expliquer dans des termes simples pourquoi la persistance est obligatoire...

    Merci d'avance.

  2. #2
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Par défaut
    Bonjour,

    Le terme persistance désigne avant tout le fait de conserver des données dans le temps. Donc cela n'a rien de spécifique à Hibernate, ni même à une base de données car le simple fait de décharger des données présentes en mémoire, dans un fichier, est déjà de la persistance. De surcroît, n'importe quel fichier contenant de l'information structurée et organisée peut être considéré comme une base de données.

    L'objectif primaire d'Hibernate n'est pas celui que tu indiques. Son rôle est de faire le lien entre deux mondes, la technologie Java (objet) et la technologie utilisée pour la persistance des données (BDD, fichier...).

    Hibernate a évidemment des avantages et des inconvénients et son intérêt dépend effectivement du contexte, notamment le temps qu'on a pour développer l'application, la connaissance qu'on en a, la réutilisabilité d'éventuels composants métiers déjà en phase avec Hibernate et aussi, les perspectives d'évolutions de l'application. Les critères (mono-*) que tu donnes peuvent compter mais ne sont pas primordiaux.

    Si l'application comporte 3 requêtes simples, 3 tables avec peu de champs, qu'elle n'est pas censée évoluer plus que ça, introduire Hibernate peut s'avérer inutile mais difficile d'en juger juste comme ça...

    Si on ne maîtrise pas bien Hibernate, en faire usage peut s'avérer totalement contre-productif. Dans le cas contraire, ce n'est pas forcément une mauvaise idée, le tout étant de savoir comment en tirer partie au maximum, sans que ça ne surcharge inutilement le développement et que ça ne pénalise les performances lors de l'exécution.

    Ceci étant dit, l'apprentissage d'Hibernate a un coût certain. De plus, pour bien le comprendre, il faut également bien maîtriser les bases de données relationnelles, ce qui est loin d'être négligeable...

    En résumé, en l'état il sera difficile de dire si le choix qui a été fait d'introduire Hibernate l'a été pour de bonnes ou de mauvaises raisons.
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2012
    Messages : 37
    Par défaut
    Tout d'abord un grand merci pour cette réponse. Dès la première phrase j'ai compris que ... je n'avais rien compris jusqu'à maintenant. D'un coup quelques pièces du puzzle se mise en place toute seule. La notion de persistence (je reprends le terme anglosaxon) m'était donc complètement étrangère, à juste raison puisque je vis avec depuis très longtemps. C'était donc pour moi quelque chose de tellement naturelle je ne pouvais pas m'imaginer que c'était tout simplement ce qu'on appelait dans des temps anciens la conservation des données.

    Le reste de la réponse m'éclaire tout à fait par rapport à mon interrogation de départ. Si les notions de base de la théorie des bases de données ne m'est pas étrangère, je manque effectivement d'expérience en la matière, mais j'apprends vite. L'explication du rôle d'Hibernate en tant qu'interface entre deux mondes me convient tout à fait, en plus elle a le mérite d'être simple et compréhensible, bien plus que tout ce que j'avais lu auparavant.

    Il ne me reste plus qu'à apprendre Hibernate et la manipulation de tous les outils satellites. Oui, finalement Hibernate a été un bon choix pour ce logiciel (quelque chose comme 7 tables et des liens dans tous les sens, d'où l'intérêt d'une BDD).

    Encore merci pour votre réponse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Persistance : qu'est ce que c'est?
    Par Hell dans le forum Persistance des données
    Réponses: 8
    Dernier message: 18/03/2013, 13h37
  2. Réponses: 5
    Dernier message: 02/12/2009, 14h57
  3. Réponses: 5
    Dernier message: 04/07/2006, 10h17
  4. [Hibernate] Est ce que j'ai bien compris?
    Par questionneuse dans le forum Hibernate
    Réponses: 17
    Dernier message: 07/01/2006, 16h38
  5. [Zope]Est-ce que la doube-clic est gérable??
    Par keumlebarbare dans le forum Zope
    Réponses: 2
    Dernier message: 09/06/2005, 11h56

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