Problème pour maintenir une seule connexion
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:
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:
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:
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> |