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 :

Plusieurs instances de connexion ?


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 28
    Par défaut Plusieurs instances de connexion ?
    Bonjour,

    J'utilise le driver jdbc pour me connecter à ma bdd Postgresql.

    J'ai créé une classe BddConnexion qui me permet d'instancier une connexion. (Je n'utilise sans doute pas le bon vocabulaire je suis très débutant).

    C'est dans la classe BddConnexion que je mets tous les paramètres pour se connecter à la bdd.

    Et dans ma classe Main, quand je veux faire une requête sql, je fais :

    Statement state = BddConnexion.getInstance().createStatement();
    state.executeQuery(maRequete);

    etc....

    A chaque fois que je voulais faire une requête je faisais comme ça.

    Est-ce correct de faire :

    Connection conn = BddConnexion.getInstance();

    Statement state = conn.createStatement();
    state.executeQuery(maRequete);

    Statement state2 = conn.createStatement();
    state2.executeQuery(maRequete2);



    Ca évite de faire BddConnexion.getInstance() à chaque fois.
    Ca marche bien, mais est-ce "bon" ?

    Merci.

  2. #2
    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
    oui, il vaut mieux réutiliser au maximum la connexion, ca coute moins cher que d'en faire une nouvelle à la fois. Non parce qu'il manque certaines choses dans votre code. Typiquement vous devriez avoir quelque chose comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Connection conn = BddConnexion.getInstance();
    try{
       Statement state = conn.createStatement();
       try{
           resultat = state.executeQuery(maRequete);
           //traiter resultat 
       } finally {
           state.close();
       } 
       Statement state2 = conn.createStatement();
       try{
           resultat = state2.executeQuery(maRequete2);
           //traiter resultat 
       } finally {
           state2.close();
       }
    } finally {
       if (conn!=null)
           conn.close();
    }
    ou mieux puisque les statements sont réutilisables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Connection conn = BddConnexion.getInstance();
    try{
       Statement state = conn.createStatement();
       try{
           resultat = state.executeQuery(maRequete);
           //traiter resultat 
           resultat = state.executeQuery(maRequete2);
           //traiter resultat 
       } finally {
           state.close();
       } 
    } finally {
       if (conn!=null)
           conn.close();
    }

  3. #3
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 28
    Par défaut
    D'accord merci beaucoup

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/08/2005, 00h43
  2. Partage de code par plusieurs instances
    Par a.tintin dans le forum MFC
    Réponses: 3
    Dernier message: 08/08/2005, 14h03
  3. Réponses: 3
    Dernier message: 16/10/2003, 10h22
  4. Communiquer entre plusieurs instances d'applications
    Par bourinator dans le forum C++Builder
    Réponses: 5
    Dernier message: 28/09/2003, 11h24
  5. [] plusieurs instances de form avec leur contexte ?
    Par Seb-31 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 11/04/2003, 13h56

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