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

Développement Web en Java Discussion :

Problème pour maintenir une seule connexion


Sujet :

Développement Web en Java

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 32
    Points : 29
    Points
    29
    Par défaut 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 : 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>

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Dans une application web, on utilise quasi systématiquement un pool de connexions (géré par le serveur d'application).
    Dans l'application, on demande une connexion, on l'utilise ET on la libère.
    L'usage des blocs try catch finally est approprié.

    Si on suit ton exemple, chaque classe a sa propre connexion.
    Cette classe est liée (souvent) à la session de l'utilisateur.
    Pour 100 utilisateurs => 100 connexions (pour une seule classe)
    Il vaut mieux que les licences ne soient pas payantes
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 32
    Points : 29
    Points
    29
    Par défaut
    Dans une application web, on utilise quasi systématiquement un pool de connexions (géré par le serveur d'application).

    comment je peut faire ça ,en tenant compte que je n'utilise pas une couche de persistance??

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Regarde ici
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Une seule connexion pour plusieurs sites
    Par poussinvert dans le forum Langage
    Réponses: 0
    Dernier message: 01/05/2013, 22h30
  2. Réponses: 1
    Dernier message: 24/05/2012, 11h56
  3. Réponses: 1
    Dernier message: 14/06/2011, 07h53
  4. [MySQL] php: une seule connexion bdd pour plusieurs pages
    Par hammag dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 21/04/2009, 15h28
  5. [MSSQL] Problème pour sélectionner une seule occurence
    Par Tinfolley dans le forum Langage SQL
    Réponses: 4
    Dernier message: 02/07/2004, 09h02

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