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 :

[JDBC] PreparedStatement, interêt ?


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 20
    Points : 10
    Points
    10
    Par défaut [JDBC] PreparedStatement, interêt ?
    Bonjour,

    je me pose une question sur les preparedStament et leur utilité dans le contexte suivant :

    Supposons que j'ai une méthode qui fait execute une et une seule requête via un PreparedStatement.
    Lors que j'appelle plusieurs fois cette méthode, le preparedStatement est forcement réinstancié et reconstruit.

    Les questions :
    * Quel est l'interêt de préparer quelque chose qui ne sert qu'une fois et qui sera systématiquement reconstruit ensuite ?
    * Ne serait-il pas préférable de constuire un singleton qui instancie les PreparedStatement au premier appel, et qui conserve l'instance en mémoire pour les appels suivants ?

    Quelle est votre opinion ?
    Merci d'avance.

  2. #2
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    merci afrikha.
    Je comprends bien ce qu'est un PreparedStatement et comment l'utiliser.

    La question est plutot de savoir l'interet d'un PreparedStament si on le réinstancie à chaque appel de la requête.

  4. #4
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    L'intérêt majeur des PreparedStatement se situe coté base de données et non coté application.

  5. #5
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par ohyes_
    * Quel est l'interêt de préparer quelque chose qui ne sert qu'une fois et qui sera systématiquement reconstruit ensuite ?
    Les PreparedStatement gère également la liaison de tes objets Java vers les champs de tes tables JDBC sans que tu n'ai à te soucier de les formater correctement (je pense en particulier aux String et aux Date).

    Citation Envoyé par ohyes_
    * Ne serait-il pas préférable de constuire un singleton qui instancie les PreparedStatement au premier appel, et qui conserve l'instance en mémoire pour les appels suivants ?
    Je ne sais pas si le gain serait très important, à moins que tu ne procèdes à un grand nombre de requête...

    De plus je te rappelle que le PreparedStatement est lié à la Connection (il faudrait donc que tu conserves ta connection ouvertes en permanence)...

    a++

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    salut adiGuba, merci.

    Au vue de ce que tu dis, il n'y a aucun intérêt à construire un singleton, ce serait même une grave erreur (du fait de la liaison du PreparedStatement à la connexion).

    Je clos le topic ton explication réponds parfaitement à ma question.

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

Discussions similaires

  1. JDBC, PreparedStatement et quotes
    Par Lineath dans le forum JDBC
    Réponses: 7
    Dernier message: 16/04/2009, 15h18
  2. Debutant JDBC PreparedStatement
    Par _cheval_ dans le forum JDBC
    Réponses: 13
    Dernier message: 18/07/2007, 11h45
  3. [JDBC] PreparedStatement arguments
    Par phoebe dans le forum JDBC
    Réponses: 8
    Dernier message: 29/05/2006, 16h05
  4. Réponses: 1
    Dernier message: 24/05/2006, 14h26
  5. Réponses: 1
    Dernier message: 08/11/2005, 14h32

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