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 :

[Mapping O/R] - Pour ou contre les procédures stockées


Sujet :

Persistance des données Java

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 298
    Points : 484
    Points
    484
    Par défaut [Mapping O/R] - Pour ou contre les procédures stockées
    Salut à tous,
    Faut-il, oui ou non, utiliser les procédures stockées et/ou les triggers, avec des outils de Mapping O/R ( Hibernate, Ibatis,.... ). ?

    J'ai l'impression que les développements orientés objets ne sont pas "fan" de l'utilisation des procédures stockés et triggers dans les bases de données relationelles.

    Lu dans la préface de la documentation officielle de Hibernate :
    Hibernate n'est probablement pas la meilleure solution pour les
    applications centrées sur les données qui n'utilisent que les procédures stockées pour implémenter la logique
    métier dans la base de données, il est le plus utile dans les modèles métier orientés objets dont la logique métier
    est implémentée dans la couche Java dite intermédiaire.
    Ce n'est pas la première fois que je lis, dans les différents tutos, des remarques du style : " Les procédures stockées, faut faire avec....".

    Aujourd'hui, je part de zéro, avec une base mySQL 5.0. J'ai donc toute liberté pour choisir ma stratégie de développement :
    - Implémentation de proc stockées et triggers
    - Mettre toute l'implémentation dans la couche métier


    Quelle implémentation me conseillez-vous, et pourquoi ?

  2. #2
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    effectivement, en général, on evite de se passer des procedures stockées et plus généralement, des spécificités des sgbd.

    pourquoi :
    parce que l'idée du code objet, c'est d'avoir tout le code métier au meme endroit, et dans un langage simple et facile a relire (java, c'est quand meme plus facile a lire, et a debbugger que du pl-sql par exemple)
    et parce que avec hibernate, si tu n'utilises pas de prock stok, ton programme reste multi-base de données en changeant que une seule ligne de conf. pratique.

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 298
    Points : 484
    Points
    484
    Par défaut
    Ok, merci pour la réponse.
    Il faut donc que je m'adapte et que je change mes habitudes de programmeur. J'avais plutôt l'habitude de bc utiliser les procédures stockées.

    Je vais quand même garder ce qui me permet de maintenir l'intégrité référentielle de mon SGBD :
    - Contraintes
    - Trigger

  4. #4
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    les contraintes, on a jamais parlé de les enlever

    pour le reste, c'est un choix. Il faut voir ton interet.ce n'est qu'une regle générale, mais si tu penses developper 5 fois plus vite en prock qu'en java, si la portabilité de l'application d'une base a l'autre n'a pas d'interet pour toi, faut quand meme reflechir !

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 298
    Points : 484
    Points
    484
    Par défaut
    Citation Envoyé par lunatix
    les contraintes, on a jamais parlé de les enlever

    pour le reste, c'est un choix. Il faut voir ton interet.ce n'est qu'une regle générale, mais si tu penses developper 5 fois plus vite en prock qu'en java, si la portabilité de l'application d'une base a l'autre n'a pas d'interet pour toi, faut quand meme reflechir !
    Je suis en phase d'auto-formation. J'essaye de ne pas prendre trop de mauvaise habitude et de m'adapter aux pratiques courantes du monde Java.
    Aujourd'hui, je suis seul et sans contraintes. Demain, je serai dans des équipes Java ( enfin, j'espère ! )

    J'irai beaucoup plus vite si je m'imposait pas de travailler avec Spring ( MVC + IoC ) et Hibernate .
    A faire l'effort, autant faire l'effort jusqu'au bout, même si je galère pas mal
    Merci pour les infos.

  6. #6
    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 : 51
    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
    Points : 17 036
    Points
    17 036
    Par défaut
    Citation Envoyé par lunatix
    effectivement, en général, on evite de se passer des procedures stockées et plus généralement, des spécificités des sgbd.
    ?

  7. #7
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    j'ai bien foiré la

    on evite d'utiliser bien sur

  8. #8
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Attention quand même dans le cas de pbs de performance particuliers.
    Il peut être utile de faire des entorses dans ce cas.
    Attention à ne pas faire table rase de tout pour choisir une unique techno. La problématique du stockage des données et de l'accès à ces données est trop sensible pour que l'on n'y prête pas plus d'attention. Gare aux puristes de l'objet !

  9. #9
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 298
    Points : 484
    Points
    484
    Par défaut
    Citation Envoyé par ego
    Attention quand même dans le cas de pbs de performance particuliers.
    ...
    La problématique du stockage des données et de l'accès à ces données est trop sensible pour que l'on n'y prête pas plus d'attention. Gare aux puristes de l'objet !
    J'approuve à 100%.

    J'essaye d'avoir une approche pragmatique, et je suis très loin d'être un puriste de l'approche objet
    J'essaye de développer par itération successive. Chaque nouveau cycle doit pouvoir corriger les erreurs de choix du cycle précédent.

    Certains choix sont fortement impactant et seront dur à changer. Le framework Spring fait partie de ses choix sur lequel le droit à l'erreur est minime.

    Pour les autres briques, je part du principe que je doit pouvoir ré-écrire ma brique à l'itération suivante.

    J'ai choisit Hibernate surtout pour la documentation abondante en français. ça ne me posera aucun problème dans le futur de ré-écrire la couche DAO avec Ibatis ou de passer directement par JDBC sans aucune couche de mapping O/R.

    J'espère pouvoir pallier les pb de performance d'accès aux données inhérent à la conception objet en passant par des systèmes de cache.

    Si les pb persistent, ça ne me posera aucun pb de me remettre à nouveau en cause et de passer par des procédures stockées.

    J'ai vraiment la chance de ne pas avoir de contraintes extérieures, pour l'instant.

Discussions similaires

  1. Êtes-vous pour ou contre les "strict type hints" ?
    Par RideKick dans le forum Langage
    Réponses: 44
    Dernier message: 21/03/2012, 21h18
  2. Pour ou contre les singletons
    Par Le Mérovingien dans le forum Débuter
    Réponses: 15
    Dernier message: 31/07/2009, 11h33
  3. Réponses: 8
    Dernier message: 03/08/2008, 23h12
  4. [travail] Pour ou contre les bureaux open-space ?
    Par Mat.M dans le forum La taverne du Club : Humour et divers
    Réponses: 31
    Dernier message: 08/04/2008, 12h58

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