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

JDBC Java Discussion :

Connexion avec un Singleton


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 20
    Points : 14
    Points
    14
    Par défaut Connexion avec un Singleton
    Bonjour,

    je dois realiser une IHM web qui va se connecter à une base teradata.

    Une des contraintes est que la gestion Login et MPD est gerer par la base teradata, en clair l'utilisateur accede à l'ihm rentre son login et mot de passe teradata, et l'ihm se connecte à la base avec son compte.

    Je voudrais faire ma classe connexion en singleton pour des raisons de performances pour eviter qu'a chaque requetes je crée une nouvelle connexion.

    Mais si un 2ieme utilisateur vient se connecter il faut recreer un objet connexion pour qu'il puisse se connecter avec son login mot de passe...

    Donc le singleton ici ne fonctionnera pas non?

    Merci pour vos prochaines reponses

  2. #2
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Points : 340
    Points
    340
    Par défaut
    Tu veux que des utilisateurs puissent utiliser deux comptes différents sur la même machine et la même instance de ton application ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 20
    Points : 14
    Points
    14
    Par défaut
    En fait je parle de la façon d'implementer mon code...

    il n'y aura pas de compte generique pour l'application.
    L'IHM prend le loggin mot de passe de l'utilisateur envoi ça sur la BDD et si c'est ok se connecte ( donc un objet connexion créé)

    Pour le deuxieme utilisateur je dois aussi reouvrir une connexion car il doit mettre son login mot de passe. Donc 2ieme objet connexion créé...

    Pour des raisons de performance je voudrais reduire au max le nombre de connexion...

    J'ai penser au singleton, mais dans ce cas, je ne peux pas l'appliquer

    Des idées?

  4. #4
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Plusieurs utilisateurs peuvent se connecter depuis la même appli ? Ou alors c'est une appli côté serveur ?


    Utilise un pool de connexion en singleton dans ce cas.
    Le pool se chargera lui-même de te donner une nouvelle connexion à la demande.

    tu peux trouver des implémentation dans les librairies apache (cf les APIs recommendées)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 20
    Points : 14
    Points
    14
    Par défaut
    C'est une IHM WEB accesible par un browser, heberger par un serveur tomcat et developpé en java( jsp,servlet...) cette ihm va interogé la base teradata pour permettre plusieurs action sur la base.

    Donc plusieurs utilisateurs peuvent se connecter en meme temps depuis leurs poste de travail

    Je vais tester le pool de connexion, merci.

  6. #6
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Citation Envoyé par mduarte Voir le message
    Donc plusieurs utilisateurs peuvent se connecter en meme temps depuis leurs poste de travail
    Mais la connexion est ouverte sur le poste client (des instances différentes donc) ou sur le serveur (où il n'y a qu'une instance) ?

  7. #7
    Membre du Club Avatar de bzakaria
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    61
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 61
    Points : 57
    Points
    57
    Par défaut
    si tu vx que connexion s'ouvre une seule fois :
    public static Connection con;

    if(con==null){
    --charger driver
    --etablie connexion
    --les exceptions
    }

  8. #8
    Futur Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    bonjour,
    tu peut utiliser la pattern singleton pour ta classe de connexion comme suit:
    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
     
    package com.sdz.connection;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
     
    public class SdzConnection{
     
    	/**
             * URL de connection
             */
    	private String url = "jdbc:postgresql://localhost:5432/Ecole";
    	/**
             * Nom du user
             */
    	private String user = "postgres";
    	/**
             * Mot de passe du user
             */
    	private String passwd = "postgres";
    	/**
             * Objet Connection
             */
    	private static Connection connect;
     
    	/**
             * Constructeur privé
             */
    	private SdzConnection(){
    		try {
    			connect = DriverManager.getConnection(url, user, passwd);
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    	}
     
    	/**
             * Méthode qui va nous retourner notre instance
             * et la créer si elle n'existe pas...
             * @return
             */
    	public static Connection getInstance(){
    		if(connect == null){
    			new SdzConnection();
    		}
    		return connect;	
    	}	
    }

Discussions similaires

  1. Connexion SQL avec un singleton
    Par stc074 dans le forum JSF
    Réponses: 12
    Dernier message: 11/02/2015, 15h27
  2. Connexion à une base de données avec un singleton
    Par slake13 dans le forum Bases de données
    Réponses: 6
    Dernier message: 18/11/2008, 17h26
  3. Connexion avec Perl
    Par BARBIER dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 05/05/2004, 14h05
  4. Connexion avec interbase
    Par X Trips dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 30/03/2004, 13h15
  5. [WSAD5] Connexion avec une base Lotus
    Par mickey dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 11/03/2004, 08h37

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