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 :

Même connexion pour plusieurs classes en heritage


Sujet :

JDBC Java

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Même connexion pour plusieurs classes en heritage
    Bonjour,

    J'ai une classe "connexion base de données toto" qui crée une connection avec une base de données et deux autres classe outils_A et Outils_B qui manipule les tables de la même base de données (toto).

    connexion
    base de données toto
    / \
    outils_A outils_B


    Si je fais outils_A t1 = new outils_A(); et outils_B t2 = new outils_B();, j'ai deux connexions à la base de données.

    Est-il possible que outil_a et outils-B utilise la même connexion ?

    Merci d'avance

  2. #2
    Membre régulier Avatar de freelibre
    Profil pro
    Inscrit en
    Février 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 68
    Points : 76
    Points
    76
    Par défaut Tu peut utiliser un Singleton

    Tu peut utiliser un Singleton dans ce cas a chaque instance de ton singleton représentant la connexion tu va utiliser la même connexion.

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    import java.sql.*;
     
    public class Singleton {
        /*
        * La méthode getInstance n'est sûr pour les threads 
        * (possibilité de créer plusieurs Singleton) donc
        * on a besoin de sécuriser celle-ci avec synchronized.
        */    
    	public static synchronized Singleton getInstance(){
            if (instance == null)
            instance = new Singleton();
            return instance;
        }
     
    	private Connection con;
     
        private Singleton(){
        	try {
        	      //Register the JDBC driver for MySQL.
        	      Class.forName("com.mysql.jdbc.Driver");
     
        	      //Define URL of database server for
        	      // database named mysql on the localhost
        	      // with the default port number 3306.
        	      String url = "jdbc:mysql://localhost:3306/delphi";
     
        	      //Get a connection to the database for a
        	      // user named root with a blank password.
        	      // This user is the default administrator
        	      // having full privileges to do anything.
        	      con = DriverManager.getConnection(url,"root", "root");
     
        	      //Display URL and connection information
        	      System.out.println("URL: " + url);
        	      System.out.println("Connection: " + con);
     
        	      //Get a Statement object
        	      //stmt = con.createStatement();
     
     
        	    }catch( Exception e ) {
        	      e.printStackTrace();
        	    }//end catch
     
     
     
            System.out.println("Construction du Singleton");
        }
        private static Singleton instance;
        public static void main(String[] args) {
        	Singleton s = Singleton.getInstance();
        }
    	public Connection getCon() {
    		return con;
    	}
    }
    l'instanciation se fait comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Singleton s = Singleton.getInstance();    
    ResultSet resultset = s.getCon().createStatement().executeQuery("Select * from Pieces");
    Et en plus vous allez gagner en performance vu ne nombre d'accès a la base de donnée restreint.

    C'est ma premier réponse sur ce Forum alors donne moi ton avis en retour

    Courage
    Le Partage est notre Force !

Discussions similaires

  1. Même code pour plusieurs shapes
    Par El-Diablo- dans le forum C++Builder
    Réponses: 10
    Dernier message: 24/05/2007, 19h40
  2. Réponses: 3
    Dernier message: 13/04/2007, 09h41
  3. Limiter nombre de connexions pour plusieurs SGBD
    Par rampageXT dans le forum JDBC
    Réponses: 12
    Dernier message: 01/03/2007, 18h58
  4. [VBA Excel] Une même macro pour plusieurs CheckBox
    Par Choupett' dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 16/06/2006, 13h54
  5. [css] Même style pour 2 classes diffs ?
    Par AlphaYoDa dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 19/03/2005, 22h29

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