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 :

double connexion à la base..c'est possible?!


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 99
    Points : 44
    Points
    44
    Par défaut double connexion à la base..c'est possible?!
    salut !!

    bon voila la situation g crée la classe appelé DateBase pour me faciliter la manipulation de la base, elle se résume en ç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
    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
      public class DataBase {
     
       public Connection con;
     
       public ResultSet results;
     
          public DataBase() {
            try {
            results = null;
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
            }
            catch (ClassNotFoundException e) {
            System.out.println("Erreur lors du chargement du driver:"
            + e.getMessage());
            }
            }
     
     
            public boolean ouvre() {
     
            try { 
            con = DriverManager.getConnection("jdbc:odbc:pfe", "system",      
            "manager");
            }
            catch (SQLException e) {
            System.out.println("echec d'ouverture:" + e.getMessage());
     
            }
     
            }
     
            public boolean ferme() {
     
            try {
            con.close();
     
            }
            catch (SQLException e) {
            System.out.println("echec lors de la fermeture:" + e.getMessage());
     
            }
     
            }
     
     
            public void executeRequete(String requete) {
            try {
     
              Statement stmt =con.createStatement(  );
              results = stmt.executeQuery(requete);
            }
            catch (SQLException e) {
     
            System.out.println("Erreur requête : " + e.getMessage());
            }
            }
    j'ai générer les classe java de mon application à partir du diagramme de classe,
    et maintenet je suis entrain de coder leurs constructeur respective...

    bien évidement il ya des objets qui renferme d'autre objet dans leur attributs

    par exmple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Obj1{ Obj2   ob2
                                       ...
                                      }
    quand j'utilise ma classe DateBase pour ouvrir la base et récupérer es données pour initialiser les attribut de Obj1 et notament ob2, il me faut bien évidement créer une instance de Obj2 et la mettre dans ob2 en appelant le constructeur de la classe Obj2 comme suit: ob2= new Obj2(paramétre)


    la question que je me pose est-ce qu'il n ya pa avoir de problème si la base de donnée est déja ouverte dans le constructeur de Obj1 alors que le constructeur de Obj2 va aussi la réouvrir (alors qu'elle est déja ouverte c-à-d déja connecter à la base) pour initialiser à son tour les attributs de Obj2 ???!!!

    il faut dire que je débute avec codage en java alors merci de m'aider et de me réponde...si vous avez méme des suggestions ou des conseils elles seront la bienvenue

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Je trouve ta question assez confuse, et je ne comprends pas très bien ce que tu veux faire... cependant, je peux peut-être t'apporter quelques éléments de réponse:

    - il ne me paraît pas choquant (même si ce n'est peut-être pas optimal), d'avoir plusieurs connexions ouvertes sur une même base de données: elles sont en général faites pour supporter plusieurs connexions simultanées (et heureusement!)

    - si tes traitements sont séquentiels, pourquoi ne pas réutiliser ta première connexion? ou alors fermer celle-ci après utilisation avant d'ouvrir ta deuxième connexion?

    - attention à ne pas confondre classe et objet:
    DataBase connexion1 = new DataBase();
    DataBase connexion2 = new DataBase();

    Cela te donnera deux objets complètement indépendants: les manipulations que tu feras sur l'un n'influenceront pas ce qui se passe sur l'autre.

    Si tu veux t'assurer d'avoir une unique connexion à la base de données dans ton programme, renseigne-toi sur le pattern "Singleton"

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/06/2008, 10h39
  2. Réponses: 9
    Dernier message: 17/11/2006, 11h08
  3. [VB.NET] Sauvergarde/Restauration base SQL -> C'est possible?
    Par BillyboyK dans le forum Accès aux données
    Réponses: 2
    Dernier message: 01/09/2006, 14h30
  4. Réponses: 2
    Dernier message: 09/12/2005, 22h40
  5. Réponses: 3
    Dernier message: 12/11/2005, 07h32

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