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