begin process at 2010 02 09 23:48:15
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Débutant(e)

 > 

pourquoi on utilise static pour connBD


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

pourquoi on utilise static pour connBD

mercredi 11 juin 2008 à 14:04:08 | pourquoi on utilise static pour connBD

moooonaaaa

 Salut,
je cherche dans l'internet comment je peux faire un classe qui me permet de connecter à une base de donnée mysql et exécuter des requêtes.
mais dans l'utilisation de cette classe dans des autres classes.Il le fait appel par static(static connBD conn
je comprends pas pourquoi il utilise static
mercredi 11 juin 2008 à 15:23:20 | Re : pourquoi on utilise static pour connBD

Ombitious_Developper

Salut:

Utiliser le mot clé static ou ne pas l'utiliser reste un choix de conception.
mercredi 11 juin 2008 à 15:55:23 | Re : pourquoi on utilise static pour connBD

moooonaaaa

Salut,

Si je l'utilise,quels sont les choses qui peuvent etre modifier.
Merci. 

mercredi 11 juin 2008 à 16:58:19 | Re : pourquoi on utilise static pour connBD

Ombitious_Developper

Salut:

Tout dépend. Sans bout de code (un diagram de classes ou un simple croquis), on ne peut rien faire.
mercredi 11 juin 2008 à 23:13:00 | Re : pourquoi on utilise static pour connBD

Nicolas___

Salut,
je cherche dans l'internet comment je peux faire un classe qui me permet de connecter à une base de donnée mysql et exécuter des requêtes.
mais dans l'utilisation de cette classe dans des autres classes.Il le fait appel par static(static connBD conn
je comprends pas pourquoi il utilise static

Je pense que je comprends ton problème , au fait on cree une classe (laquelle va contenir ton object connection )
Et tu ne va creer qu'un seule object connection

import java.sql.*;

public class AccessBD {

    private static Connection connexion;

    public static Connection getInstance() {
        /*
         * si la connection n'a pas encore ete cree alors on appele la fenetre
         * de connection sinon on retourne l'objet deja cree
         */
        if (connexion == null) {
        
            // méthode pour acceder a la BD
        }

        return connexion;
    }

    public static Connection getConnection() {
        return connexion;
    }
}
jeudi 12 juin 2008 à 09:20:14 | Re : pourquoi on utilise static pour connBD

Ombitious_Developper

Réponse acceptée !
Salut:

Tout d'abord, il faut savoir que la création des objets de type Connection est couteuse est ressources, de ce fait créer une connection à chaque fois qu'on veut intérroger la base de données est des mauvaises pratique de la programmation qui influe énormément les performances de l'application (temps de réponse, mémoire consommée, ...).

Les bonnes pratiques de JDBC exigent:

1. La création d'un pool de connection dans le cas d'une application multi-utilisateurs (application web, ...)
2. Utilisation d'un instance partagée de l'objet Connection dans la cas d'une application mono-utilisateur.

Dans le cas du notre problème, nous sommes dans le second cas. Pour ne pas créer chaque fois une instance de la classe Connection on utilise le patron Singleton.

Le parton Singleton nous permet de retourner une seule instance de la classe Connection.

public class ConnectionManager {
    static {
          try {
                // Charger le driver JDBC
                Class.forName("...");
          } catch (ClassNotFoundException e) {
                e.printStackTrace();
                System.exit(1);
          }
    }

    private static ConnectionManager mgr = null;
  
    private Connection connection = null;

    private ConnectionManager() {}

    public static ConnectionManager getConnectionManager() {
            if (mgr == null) {
                   mgr = new ConnectionManager();
            }
            return mgr;
    }

    public Connection getConnection() throws SQLException {
           if (connection == null) {
                 connection = DriverManager.getConnection(...);
           }
           return connection;
    }

    public void  releaseConnection() throws SQLException {
           if (connection != null) {
                  connection.close();
           }
    }
}

Voici comment utiliser cette classe:

try {
      ConnectionManager cm = ConnectionManager.getConnectionManager();
      Connection connection cm.getConnection();
      Statement statement = connection.createStatement(),
      ResultSet rs = statement.executeQuery(...);
      // ...
} catch (SQLException e) {
      e.printStackTrace();
}


Ce n'est pas fini, il reste à libérer l'objet Connection lorsqu'on a plus besoin, parmi les approches simples; on ferme l'objet connection lorsqu'on quitte l'application.

On modifie la classe ConnectionManager de cette façon:

public class ConnectionManager {
    // ...

   
private ConnectionManager() {
             Runtime.getRuntime().addShutdownHook(new Thread() {
                      @Override
                      public void run() {
                               try {
                                       releaseConnection();
                               } catch (SQLException e) {
                                       e.printStackTrace();
                               }
                      }
             });
    }


    private void  releaseConnection() throws SQLException {
           if (connection != null) {
                  connection.close();
           }
    }
}


jeudi 12 juin 2008 à 12:02:05 | Re : pourquoi on utilise static pour connBD

moooonaaaa

Salem,
merci beaucoup pour votre aide

jeudi 12 juin 2008 à 12:32:07 | Re : pourquoi on utilise static pour connBD

Chatbour

Membre Club
Salut à tous,

"
1. La création d'un pool de connection dans le cas d'une application multi-utilisateurs (application web, ...)"

Ombitious_Developper -> que veux tu dire par un pool de connection ?
jeudi 12 juin 2008 à 13:15:17 | Re : pourquoi on utilise static pour connBD

Twinuts

Membre Club Administrateur CodeS-SourceS

Chatbour > [ Lien ]



------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
jeudi 12 juin 2008 à 13:21:56 | Re : pourquoi on utilise static pour connBD

Chatbour

Membre Club
merci bien Twinuts



1 2

Cette discussion est classée dans : static, utilise, classe, connbd


Répondre à ce message

Sujets en rapport avec ce message

Est ce possible? [ par VinZzZ ] Je me pose un question auquel j'espère quelqu'un aura une réponse, mais peut être que ce n'est pas possible en Java??On a crée une classe mère A et un Est ce possible? [ par VinZzZ ] Je me pose un question auquel j'espère quelqu'un aura une réponse, mais peut être que ce n'est pas possible en Java??On a crée une classe mère A et un Est ce possible? [ par VinZzZ ] Je me pose un question auquel j'espère quelqu'un aura une réponse, mais peut être que ce n'est pas possible en Java??On a crée une classe mère A et un Est ce possible? [ par VinZzZ ] Je me pose un question auquel j'espère quelqu'un aura une réponse, mais peut être que ce n'est pas possible en Java??On a crée une classe mère A et un abstarct & static [ par Guillemouze ] Bonjour, alors voila mon probleme: jai une classe C, et deux sous-classe Cext1 Cext2 (Cext1 (resp. Cext2) e generer instance vs variable static [ par bihoux ] Salut j'ai créé une application java composée de +ieurs classe. aaaa est la classe "main" elle lance (quand on appuie(s)." class="modupdated" Utilisation de classe provenant d'une interface [ par metos ] Bonjour,    J'ai une classe qui implémente une interface, j'arrive pas à créer une instance de la classe. Quand j'essai de crée l'objet, il me comme e quelle difference entre static et non static dans une classe [ par linoufra ] Bonjour ,j ' aimerai connaitre la difference entre staic et non static dans une classe permettante d instancier des objets ( sans main).d ' apres ce q Attributs static et héritage [ par tshupaka ] Bonjour, En gros, j'ai une classe abstraite : public abstract class ServiceClient {     protected static final  String CONFIG_FILE="";     protecte Main [ par farah2005 ] bonjour,j utilise netbeans 3.4.1 et jdk 1.5ma classe contient un main et pourtant a l execution ca me sort un message disant aue ma classe ne contient


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,764 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales