begin process at 2008 08 22 02:05:16
1 229 745 membres
17 nouveaux aujourd'hui
14 267 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : pourquoi on utilise static pour connBD [ Divers / Débutant(e) ] (moooonaaaa)

pourquoi on utilise static pour connBD le 11/06/2008 14:04:08

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

Re : pourquoi on utilise static pour connBD le 11/06/2008 15:23:20

Ombitious_Developper
Salut:

Utiliser le mot clé static ou ne pas l'utiliser reste un choix de conception.

Re : pourquoi on utilise static pour connBD le 11/06/2008 15:55:23

moooonaaaa

Salut,

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


Re : pourquoi on utilise static pour connBD le 11/06/2008 16:58:19

Ombitious_Developper
Salut:

Tout dépend. Sans bout de code (un diagram de classes ou un simple croquis), on ne peut rien faire.

Re : pourquoi on utilise static pour connBD le 11/06/2008 23:13:00

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;
    }
}

Re : pourquoi on utilise static pour connBD le 12/06/2008 09:20:14

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();
           }
    }
}



Re : pourquoi on utilise static pour connBD le 12/06/2008 12:02:05

moooonaaaa

Salem,
merci beaucoup pour votre aide


Re : pourquoi on utilise static pour connBD le 12/06/2008 12:32:07

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 ?

Re : pourquoi on utilise static pour connBD le 12/06/2008 13:15:17

Twinuts
Membre Club
(Admin CS)

Chatbour > [ Lien ]



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

OoWORAoO

Re : pourquoi on utilise static pour connBD le 12/06/2008 13:21:56

[Page 1 Page 2]
Classé sous : static, utilise, classe, connbd

Participer à cet échange

Pub



Appels d'offres

Snippets en rapport

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS