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 :

Agir avec les mêmes données


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Points : 56
    Points
    56
    Par défaut Agir avec les mêmes données
    Salut à tous.

    J'ai 2 classes dont 1 qui permet la connexion à la base de donnée et une autre classe qui doit utilisé cette classe.

    J'ai des problèmes quand viens le temps d'utiliser les variables dans ma classe ConnexionDB plutôt que celle dans mon autre classe.

    Je vous montre ç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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    package Modele;
     
    import java.sql.*;
     
    public class ConnexionDB {
     
        private Connection conn = null;;
        private Statement stat = null;
        private PreparedStatement prep = null;
        private ResultSet rs = null;
     
     
        public Connection creationConnection() {
     
            try {
                Class.forName("org.sqlite.JDBC");
                conn = DriverManager.getConnection("jdbc:sqlite:restaurant.db");
                System.out.println("Connexion à la DB");
            } catch (Exception e) {
                System.out.println(e.getMessage());
     
            }
            return conn;
        }
     
        public void creationTable() {
            String tableClient = "CREATE TABLE Client(email,motpasse)";
            String tableRestaurant = "CREATE TABLE Restaurant(nom)";
            String dropTableClient = "DROP TABLE IF EXISTS Client";
            String dropTableRestaurant = "DROP TABLE IF EXISTS Restaurant";
            String tableMenuRestaurant = "CREATE TABLE Menu()";
     
            try {
                stat = conn.createStatement();
                // stat.executeUpdate(dropTableClient);
                // stat.executeUpdate(dropTableRestaurant);
                // stat.executeUpdate(tableClient);
                // stat.executeUpdate(tableRestaurant);
            } catch (SQLException e) {
                System.out.println(e.getMessage());
            }
     
        }
     
        public void insererClient() {
            String insererClient = "INSERT INTO Client VALUES(?,?)";
     
            try {
                prep = conn.prepareStatement(insererClient);
     
                prep.setString(1, "ericg099@gmail.com");
                prep.setString(2, "test");
                prep.addBatch();
                prep.executeBatch();
                prep.setString(1, "joel@gmail.com");
                prep.setString(2, "test");
                prep.addBatch();
                prep.executeBatch();
                prep.setString(1, "seila@gmail.com");
                prep.setString(2, "test");
                prep.addBatch();
                prep.executeBatch();
     
            } catch (SQLException e) {
                System.out.println(e.getMessage());
            }
        }
     
        public void insererRestaurant() {
            String insererRestaurant = "INSERT INTO Restaurant VALUES(?)";
     
            try {
                prep = conn.prepareStatement(insererRestaurant);
     
                prep.setString(1, "Au Coq");
                prep.addBatch();
                prep.executeBatch();
                prep.setString(1, "St-Hubert");
                prep.addBatch();
                prep.executeBatch();
     
            } catch (SQLException e) {
                System.out.println(e.getMessage());
            }
     
        }
     
        public void fermetureConnection() {
            try {
                stat.close();
                conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
     
        }
    }
    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
    58
    59
    60
    61
    62
    63
    64
    65
    package Modele;
     
    import java.sql.*;
     
    public class Client {
        private String email;
        private String motPasse;
        ConnexionDB connection = new ConnexionDB();
        Statement stat = null;
        Connection conn = null;
        ResultSet rs = null;
     
        public Client() {
     
        }
     
        public Client(String email, String motPasse) {
            this.email = email;
            this.motPasse = motPasse;
        }
     
        public String getEmail() {
     
            return email;
        }
     
        public void setEmail(String email) {
            this.email = email;
        }
     
        public String getMotPasse() {
            return motPasse;
        }
     
        public void setMotPasse(String motPasse) {
            this.motPasse = motPasse;
        }
     
        public boolean verifierUtilisateur() {
            try {
                conn = connection.creationConnection();
                stat = conn.createStatement();
                rs = stat.executeQuery("SELECT * FROM Client WHERE email='"
                        + getEmail() + "'" + "AND" + " motpasse='" + getMotPasse()
                        + "'");
                if(rs.next())
                {
                    conn.close();
                    stat.close();
     
                    return true;
     
     
                }
     
            } catch (SQLException e) {
                System.out.println(e.getMessage());
            }
            connection.fermetureConnection();
            return false;
     
        }
     
     
    }
    Comme vous pouvez voir dans la méthode verifierUtilisateur(), je voudrais être en mesure de fermer la connexion en faisant connection.fermetureConnection() plutôt que conn.close() et stat.close()

    Merci

  2. #2
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    Salut,


    J'ai 2 classes dont 1 qui permet la connexion à la base de donnée et une autre classe qui doit utilisé cette classe.
    On suit la même stratégie, par contre pour moi ( et ca sera mieux de me suivre), la deuxième classe hérite de la première.

    un exemple :

    la classe permettant d'établir la 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
    58
    59
    60
    61
    62
     
     
    import java.sql.SQLException;
    import java.sql.*;
     
    public class ConnexionBD 
    {
     
       private Connection connexion;
       private Statement instruction;
       protected ResultSet résultat;
     
       public ConnexionBD() 
       {
          try {
             Class.forName("...............................");
             connexion = DriverManager.getConnection("...............................................);
             instruction = connexion.createStatement();
          } 
          catch (ClassNotFoundException ex) {
             System.err.println("Problème de pilote");
          }
          catch (SQLException ex) {
             System.err.println("Base de données non trouvée ou requête incorrecte");
          }
       }
     
       public void lire(String requête) {
           try {
              résultat = instruction.executeQuery(requête);      
           } 
           catch (SQLException ex) {
              System.err.println("Requête incorrecte "+requête);
           }
       }
     
       public void miseAJour(String requête) {
           try {
              instruction.executeUpdate(requête);      
           } 
           catch (SQLException ex) {
              System.err.println("Requête incorrecte "+requête);
           }
       }
     
       public boolean suivant() {
           try {
              return résultat.next();
           } catch (SQLException ex) {
              return false;
           }
       }
     
       public void arrêt() {
          try {
             connexion.close();
          } 
          catch (SQLException ex) {
             System.err.println("Erreur sur l"arrêt de la connexion à la base de données");
          }
       }
    }
    la classe Client qui hérite de la classe ConnexionBD :

    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
     
    public class Client extends ConnexionBD 
    {
       public Client(int idPersonne) 
     
    {
          lire("SELECT * FROM message WHERE idPersonne=\""+idPersonne+"\"");
       }
     
       public String sujet() {
           try {
              return résultat.getString("sujet");
           } catch (SQLException ex) {
              return "";
           }
       }
     
       public String texte() {
           try {
              return résultat.getString("texte");
           } catch (SQLException ex) {
              return "";
           }
       }
    }

Discussions similaires

  1. Réponses: 11
    Dernier message: 12/02/2014, 01h29
  2. 2 combobox avec les mêmes données pbme
    Par gophette dans le forum C#
    Réponses: 2
    Dernier message: 01/11/2010, 16h46
  3. Rappeler le formulaire avec les mêmes données.
    Par macben dans le forum Struts 1
    Réponses: 6
    Dernier message: 30/06/2008, 18h09
  4. [MySQL] la page détaillée affiche toujours les mêmes données
    Par paricilas dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/02/2007, 10h50
  5. Copier contenu TB_A dans TB_B avec les même champs
    Par snoopy69 dans le forum Access
    Réponses: 3
    Dernier message: 13/10/2005, 16h22

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