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 :

Procédure stockée VS Prepared statement


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2008
    Messages : 35
    Par défaut Procédure stockée VS Prepared statement
    Salut

    Je suis en train de développer une application Java/Struts sur du Oracle.
    Pour faire des requêtes (select, insert, update), il vaut mieux utiliser :
    1. des procédures stockées
    2. des Prepared statement
    3. (Hibenarte)


    Je mets Hibernate à part parce qu'il n'est pas prévu qu'on utilise ce framework, mais c'est plus pour ma culture personnelle.

    Merci de me donner vos avis/remarques sur ces différentes moyens pour effectuer des requêtes.

    Potaw

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut
    Cela dépend vraiment des cas mais je dirais :
    - utilisation de procédures stockées pour des lancements en batch de procédures longues/complexes
    - utilisation de requêtes SQL pour les insertion/récupération/suppression d'informations "simples" en jdbc classique, Hibernate, iBatis, JPA selon la culture de l'entreprise et des recommandations des architectes.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2008
    Messages : 35
    Par défaut
    Ok, merci pour ta réponse.
    C'est vrai aussi que la maintenance est plus aisé lorsqu'on est JDBC classique...

    Merci

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    les procédure stockées sont a éviter si possible, elle posent des problèmes lors des mises à jour de ton application. Il est simple de mettre à jour un preparedStatement jdbc, moins de mettre à jour un structure de table ou des procédures stockées

  5. #5
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut Un peu de théorie
    Les procédures stockées sont à utiliser si on décide de séparer :
    - le rôle du développeur Java (le "javaiste")
    - le rôle du développeur de procédure Oracle, Sql server ou autres (le "procéduriste").

    Dans ce cas, les deux développeurs se mettent d'accord sur ce que doivent faire les procédures (action sur les données ou restitution de données).
    Ensuite, chacun est tenu de respecter son contrat à savoir :
    - le "javaiste" fournit toujours les bons paramètres aux procédures qu'il utilise indépendamment de la structure de son programme.
    - le "procéduriste" fournit toujours le résultat attendu même si la structure de la base a changé.

    Avantage :
    - le "javaiste" ne se soucie pas du tout de la structure de la base
    - le "procéduriste" peut faire tranquillement évoluer sa base à condition de toujours fournir le résultat attendu.

    Inconvénient :
    le jour où le programme client nécessite des données supplémentaires,
    il faut réunir à nouveau les deux programmeurs pour refaire un tour.
    Mais il en profiteront pour boire un coup, dire du mal des utilisateurs, dégoiser sur les spécifications,
    vilipender le projet et finalement se raconter des histoires de blondes
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    les procédure stockées sont finalement utilise si tu exploite une base de donnée existante sur laquelle t'as a priori pas de droits de modification. A partir du moment ou la database ne vit que pour ton programme (ce qui est le cas la plus général) il est plus facile de laisser ton programme gérer sa structure de données. Si demain t'as besoin de données en plus, tu change tes requetes dans ton programme, tu rajoute un alter table éventuel, et quand tout marche, tout ce que t'as a faire pour le client, c'est d'installer la mise a jour. Quand la db et le code sont séparé, la mise a jour c'est hachement plus long

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

Discussions similaires

  1. Procédures stockées, prepared statement et regexp dynamique
    Par flotho dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 21/01/2012, 01h32
  2. Prepared Statements et procédures stockées
    Par Traroth2 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 19/04/2011, 18h19
  3. passage d'un nom de table dans une procédure stockée
    Par thierry V dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/07/2010, 16h48
  4. Explication procédure stockée
    Par underworld dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/09/2002, 10h51
  5. [Comparatif] Procédures stockées, triggers, etc.
    Par MCZz dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/08/2002, 12h27

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