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 :

Classe connection pour mysql


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 140
    Par défaut Classe connection pour mysql
    Bonjour, je veux créer une classe permettant de se connecter ou se déconnecter de ma base de donnée.
    J'ai fait ceci, mais je ne suis pas du tout sur de moi surtout pour la déconnexion car j'ai une erreur sur stmt.close ainsi que sur conn.close
    Pouvez-vous m'aider? merci d'avance.


    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
     
     
    package Test;
     
    import java.beans.*;
    import java.sql.*;
    import java.awt.*;
    import java.sql.*;
    import java.util.*;
    import javax.swing.JLabel;
    import com.mysql.jdbc.Statement;
    import com.mysql.jdbc.Connection;
     
    public class GestionConnectBdD {
     
        static String url; //10.104.100.57
        static ResultSet rs;
     
        public static void Connection(JLabel res, JLabel auto, String User, String Pass, String IP, String Port, String Nom) throws ClassNotFoundException, SQLException {
     
            Connection conn;
            Statement stmt;
     
            String pilote = "org.gjt.mm.mysql.Driver";
     
     
     
            Class.forName(pilote);
     
            conn = (Connection) DriverManager.getConnection(url);
     
            stmt = (Statement) conn.createStatement();
     
     
     
        }
     
        public static void Deconnection() {
            rs = GestionConnectBdD.rs;
            rs.close();
            stmt.close();
            conn.close()
     
        }
    }

  2. #2
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Arrête avec ces static partout !!! Banni ce mot clé de ta programmation. Ce n'est pas comme ça qu'on code en Java.
    Pour le reste il serait bien que tu exploites les ressources de ce site, la et les cours et tutoriels.
    Et aussi que tu sois plus claire sur tes problèmes, quelles erreurs as-tu ? On ne peut pas deviner.
    Sauf si là, pour le coup, le rs.close() doit faire une NullPointerException !

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Plein d'erreurs

    d'abord, stm et conn on été déclaré dans la méthode de connection, il ne seront donc pas visible de l'extérieur ni des autres méthodes. Déplace les, au minimum, en champs de classe.

    Ensuite, on ne commence jamais, par convention, le nom d'une méthode par une majuscule. Un méthode commence toujours par un minuscule et devrait, idéalement, au moins conenir un verbe (qu'on sache ce qu'elle fait) -> tu devrais avoir connect(....) et disconnect(....) pour faire lisible.

    Enfin, je ne suis pas sur que l'utilisation de champs statique et de méthodes statiques soit le plus judicieux (mais c'est pas catastrophique non plus, juste mal designé)

  4. #4
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Ah oui pas faux, ça ne compile même pas en fait.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 140
    Par défaut
    avec le static je peux faire appel à une méthode depuis une autre classe non ?

    et ceci vous va : ?
    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
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package Test;
     
    import java.beans.*;
    import java.sql.*;
    import java.awt.*;
    import java.sql.*;
    import java.util.*;
    import javax.swing.JLabel;
    import com.mysql.jdbc.Statement;
    import com.mysql.jdbc.Connection;
     
    public class GestionConnectBdD {
     
        static String url; //10.104.100.57
        static ResultSet rs;
        Connection conn;
        Statement stmt;
     
        public void Connection(JLabel res, JLabel auto, String User, String Pass, String IP, String Port, String Nom) throws ClassNotFoundException, SQLException {
     
            String pilote = "org.gjt.mm.mysql.Driver";
     
            Class.forName(pilote);
     
            conn = (Connection) DriverManager.getConnection(url);
     
            stmt = (Statement) conn.createStatement();
        }
     
        public void Deconnection() throws SQLException {
            rs.close();
            stmt.close();
            conn.close();
     
        }
    }

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par mimi51340 Voir le message
    avec le static je peux faire appel à une méthode depuis une autre classe non ?
    Rien à voir. Direction les tutoriaux java tout de suite! Static indique que toutes les instances de ta classe partageront cette donnée. Les champs statique ne servent que dans certains cas bien précis. Si tu ne sais pas si il faut un champ statique ou pas et pourquoi, c'est que la réponse est non. Dans la même veine, les méthode statiques ne son pas liées à une instance d'un classe. Elle n'auront donc accès que aux champs statique.

  7. #7
    Membre confirmé
    Profil pro
    INGENIEUR DE RECHERCHE
    Inscrit en
    Février 2003
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : INGENIEUR DE RECHERCHE

    Informations forums :
    Inscription : Février 2003
    Messages : 74
    Par défaut
    Bonjour,

    Une méthode avec le modificateur "static" n'est pas instanciée. La méthode est appelée avant la création de l'objet. Les objets peuvent aussi avoir besoins d'une méthode sans rapport directe avec leur...objet.

    Dire qu'il faut exclure toute utilisation du modificateur static est un avis extrême . Comme tout extrémisme ces avis sont liés à une expérience émotionnelle, mais là c'est plutôt de la philo!

Discussions similaires

  1. Utilisation d'une classe connexion pour MySQL
    Par nolookpass8 dans le forum Développement Web en Java
    Réponses: 7
    Dernier message: 02/04/2013, 17h42
  2. [Java SE] Recherche classe Java pour MySQL (CRUD) ?
    Par vandeyy dans le forum Général Java
    Réponses: 1
    Dernier message: 26/06/2012, 15h03
  3. [MySQL] Modification d'une classe requêtant pour MySQL
    Par gimpycpu dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 06/03/2008, 00h16
  4. CONNECT BY PRIOR oracle pour MySQL : possible ?
    Par thanaos dans le forum Requêtes
    Réponses: 1
    Dernier message: 12/12/2006, 15h11
  5. Réponses: 3
    Dernier message: 05/10/2006, 17h15

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