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>
Partager