Bonjour,
je suis entrain de développer une application web en utilisant JSF,
Je dois connecter à une base de donnée ,donc je veux ouvrir une connexion à l'ouverture de l'application (page d'authentification) et la fermée quand je me déconnecte.
Mon problème c'est que je ne sais pas comment utiliser une seul connexion ,à chaque fois qu'il y aurait un appel à un méthode qui utilise la connexion ,il y aura un chargement de driver et connexion à la base!!!!!!!
voici au-dessous mon code , SVP aidez moi

Classe de 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
public class Connectionx implements java.io.Serializable{

private Connection cx=null;

 public Connectionx() {}

 
 /*********************************connection***************************/
public Connection Connxion(String driver ,String database ,String login,String pwd){
  
  System.out.println("enregister le driver generique");
        try {
            Class.forName(driver);

        }
        catch( Exception ex )
                {
                System.err.println("Erreur lors du chargement du driver"+ex.getMessage() );

                }



        try {
            /** Connection  */
                    if(cx==null){
             cx =  (Connection) DriverManager.getConnection(database,login,pwd);
        
            System.out.println("Connection success");
                                          }
                }
                catch( SQLException ex )
                {
            System. err. println( "Connection fail to the database" );

                }
  return cx;
}
-----------------------------------------------------------------
Classe de traitement pour vérifier login et mot de passe:
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
public class CheckLogin implements java.io.Serializable {
  
 public String login;
 public String password;
 public String test;
 PreparedStatement st;
public Connectionx cx = new Connectionx();
Connection con= (Connection) cx.Connxion("com.mysql.jdbc.Driver","jdbc:mysql://localhost/kpidb","root","root");

 
 
     public CheckLogin() {
    }
    
 /**************   getters and setters   *****************/ 
    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
/***********************************************************/
    
 public String getLogincheckPassword()      {        
        HashMap<String,String> mapLoginPWD = new HashMap<String,String> ();
        String sqlLogin;   
         sqlLogin="select login ,password from profil_user;";
          String checkaccess="true";
        try{
                        st=(PreparedStatement) con.prepareStatement(sqlLogin);
            ResultSet rs1 = st.executeQuery();

            String log;
            String pwd;

           while(rs1.next())
            {
                log = rs1.getString("login");
                pwd=rs1.getString("password");
                mapLoginPWD.put(log, pwd);
            }  
     Iterator iteratorkey = mapLoginPWD.keySet().iterator();  
     String maCle="";
     String value="";

        while(iteratorkey.hasNext())
        {
         maCle = (String) iteratorkey.next();
         value= mapLoginPWD.get(maCle);
  
        if( (this.login.equalsIgnoreCase(maCle)) && (this.password.equalsIgnoreCase(value) )&& (iteratorkey.hasNext()) )
            { 
             checkaccess ="success";
             break;
            }
         else 
             checkaccess ="fail";
     
             }
        }   
 catch (SQLException e)
        {
           e.printStackTrace();
        }
      
return checkaccess;
  }
-------------------------------------------------------------------
PAge JSF:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
<h:form id="login">
 
                Login :<h:inputText id="login" value="#{CheckLogin.login}" /><br></br>
                Password:<h:inputText id="pwd" value="#{CheckLogin.password}"/>
                <h:commandButton action="#{CheckLogin.getLogincheckPassword}" value="Login"/>
            </h:form>