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

AWT/Swing Java Discussion :

Problème BDD - Swing


Sujet :

AWT/Swing Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 124
    Par défaut Problème BDD - Swing
    Bonjour, étant un débutant en java je voudrais avoir une petite aide concernant la connexion à une BDD.
    J'ai créé mes pages en Java Swing mais j'aurais besoin d'une connexion à ma BDD mySQL (phpmyAdmin). Dans phpmyadmin ma base de donnée est nommé Jeux et ma table Personnes. Comment fait-on dans un JPanel pour se connecter à une BDD ? Si quelqu'un pourrait m'éclaire je lui en serais très reconnaissant.

    Cordialement et merci encore de votre future aide !

  2. #2
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Par défaut
    Bonjour,
    le JPanel représentant la vue de ton application, ... c'est dans le contrôleur qu'il faudrait implémenter la méthode qui te permette d'aller dans ta BD et faire des opérations. Voici un lien qui montre comment ouvrir une connexion vers un BD en Java / JDBC.
    http://java.developpez.com/faq/jdbc/...nDriverManager
    Je t'invite à lire la FAQ "entière" en l'occurrence http://java.developpez.com/faq/jdbc

    Cordialement,
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 124
    Par défaut
    Merci de votre réponse ! Mais en java Swing ou doit-on intégrer le code de connexion à la BDD, je suis un peu perdu..
    Donc après ce code je pourrais effectuer mes requêtes directement ? Et une dernière question url signifie quoi ? LocalHost ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    String url = "url";
    String login = "root";
    String password = "";
    try{
      Connection connection = DriverManager.getConnection(url,login,password);
      //interaction avec la base
    }
    catch(SQLException sqle){
       //cf Comment gérer les erreurs ? 
    }
    finally{
       //cf Comment bien fermer une connexion ?
            }
    Merci de votre future aide !

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 124
    Par défaut
    Pour la partie url dois-je mettre jdbc:mysql://localhost/Jeux ? Je travaille avec wamp donc phpmyAdmin pour rappelle..
    Cordialement

  5. #5
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Par défaut
    Oui, ce que tu as écrit est correct, à supposer que MYSQL tourne sur le port par défaut qui est 3306.
    Ensuite, lorsque tu auras récupéré la "Connection", tu pourras faire de requêtes SQL via les PreparedStatement et Statement etc ... tu peux toujours te mettre sur la FAQ que je t'ai déjà montré et tu verras comment ça marche.
    Y'a des tutos sur ce site aussi.
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 124
    Par défaut
    Merci de votre attention. Par contre ou dois-je placer ce code sur ma page ? Dans la partie main ? A l'ouverture de la fenêtre ? Cordialement

  7. #7
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Par défaut
    Bah, tu écris ce code dans une classe différente, DatabaseManager.java par exemple, et avec cette classe, tu mets la méthode que te permette de connecter à ta base de données.

    Ensuite, dans ton JPanel, tu fais appel à la méthode DatabaseManager.maMethode(...) au moment où t'en as besoin

    à vrai dire, personne ne pourra vraiment répondre à ta question de manière nette et précise vu que toi seul sait à quel moment tu as besoin de l'utiliser

    Tout ce que je peux te dire, c'est que le code qui te permette d'accéder à ta BD, le code pour faire des requêtes, le code pour fermer la connexion à la BD etc... ne devrait pas être dans le JPanel, mais dans une classe externe (un contrôleur)
    Ensuite, ton JPanel fera appel à ces méthodes là quand y'a besoin ...

    Voilà
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

  8. #8
    Membre expérimenté Avatar de kalina
    Femme Profil pro
    Développeur Java
    Inscrit en
    Avril 2009
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2009
    Messages : 220
    Par défaut
    bonjour,
    voici un exemple avec une BD oracle:
    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
    try{
              Class.forName("oracle.jdbc.driver.OracleDriver");
              Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:MaBase","user","passe");
           Statement stmt=con.createStatement();
     
           ResultSet rs=stmt.executeQuery("select nom,prenom,... from MaTable ");
                  while (rs.next()){
    //tu mets le résultat de la requête où tu veux
                      }
           con.close();
           stmt.close();
            }
            catch(Exception e){
                System.out.println(e.getMessage());
            }
        }
    : driver de bd
    : @ de la machine sur laquelle est située ma bd, tu peux tout aussi bien mettre 127.0.0.1 c'est l'@ de ton pc
    :numéro du port de connexion.
    bon courage.

  9. #9
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 124
    Par défaut
    Merci de votre réponse, je viens de comprendre !
    J'ai créé une class DataManager avec comme contenu ceci :
    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
    package accidentologie;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
     
    public class DataManager {
     
        public static void Connexion() {
            String url = "jdbc:mysql://localhost/site";
            String login = "root";
            String password = "";
     
            try {
                Connection connection = DriverManager.getConnection(url, login, password);
            } catch (SQLException sqle) {
            }
        }
    }
    Ensuite je n'aurai plus qu'à faire appel de ma méthode, ici Connexion, dans le main de mon JPanel ?

    Cordialement

  10. #10
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 124
    Par défaut
    Et dans ma fenêtre Swing je place le code comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private void formWindowOpened(java.awt.event.WindowEvent evt) {                                  
        this.setLocation(500, 350);
        DataManager dm = new DataManager();
        DataManager.Connexion();
     
    }
    ?

    Merci de votre aide et du dérangement occasionné

  11. #11
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Par défaut
    Alors, d'abord en Java, une méthode devrait commencer par une lettre minuscule .
    Ensuite, tu devrais vérifier que tu as bien réussi à obtenir une "Connexion" en vérifiant que "conn" n'est pas null et qu'il n'y a pas d'Exception...
    Donc, en gros, tu devrais faire un truc du genre:
    Code java : 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
     
    package accidentologie;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
     
    public class DataManager {
     
        public static void getConnection() {
            String url = "jdbc:mysql://localhost/site";
            String login = "root";
            String password = "";
     
            Connection conn = null;
            try {
                conn = DriverManager.getConnection(url, login, password);
                if (conn == null) { throw new NullPointerException("La connexion à la BD ne peut être null !!!");};
            } catch (SQLException sqle) {
                    System.err.println("Erreur lors de la récupération la connexion à la BD : " + e.getMessage());
              throw new IllegalStateException(e);
            }
        }
        return conn;
    }
    C'est juste un exemple basique un peu plus propre ^^ ... dans un monde plus professionnel, tu l'aurais/devrais certainement fait autrement.

    Voilà
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

  12. #12
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 124
    Par défaut
    Merci, Netbeans me souligne conn faudrait-il pas le mettre en parametre de la méthode ? et Netbeans me souligne aussi la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.err.println("Erreur lors de la récupération la connexion à la BD " + e.getMessage());
    en me disant que la variable e n'existe pas..

    Cordialement

  13. #13
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Par défaut
    Euh oui, désolé, .. m'enfin bon, t'aurais pu le corriger comme un grand quand même , la variable s'appelle 'sqle' ou lieu de 'e'
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

  14. #14
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 124
    Par défaut
    Oui je viens de voir ca lol
    Par contre j'ai encore une erreur :
    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
        public static void getConnection(String conn) {
     
            String url = "jdbc:mysql://localhost/site";
            String login = "root";
            String password = "";
     
            Connection conn = null;
            try {
                conn = DriverManager.getConnection(url, login, password);
                if (conn == null) { throw new NullPointerException("La connexion à la BD ne peut être null !!!");};
            } catch (SQLException sqle) {
                    System.err.println("Erreur lors de la récupération la connexion à la BD " + sqle.getMessage());
              throw new IllegalStateException(sqle);
            }
        }
        return conn;
    }
    Et je ne sais pas pourquoi..
    Cordialement

  15. #15
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 124
    Par défaut
    Un 'void' ne retourne rien il me semble mais je n'arrive quand même pas trouver 'lerreur..

  16. #16
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Par défaut
    Si tu ne dis pas l'erreur, ça va être difficile de le deviner ..
    Je ne suis pas encore devin :/
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

  17. #17
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 124
    Par défaut
    Lol désolé, l'erreur est 'illegal start of type'

  18. #18
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 540
    Par défaut
    Ton instruction return est en dehors du block de la méthode. Tu peux efface la ligne qui ne sert à rien.

  19. #19
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 124
    Par défaut
    J'ai bien inclus le return dans la méthode mais il me semble que lorsqu'une méthode possède un 'void' il n'y a alors pas de return.. Non ?

    Cordialement et désolé du dérangement encore

  20. #20
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Par défaut
    Code java : 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
     
      public Connection getConnection() {
     
            String url = "jdbc:mysql://localhost/site";
            String login = "root";
            String password = "";
     
            Connection conn = null;
            try {
                conn = DriverManager.getConnection(url, login, password);
                if (conn == null) { throw new NullPointerException("La connexion à la BD ne peut être null !!!");};
            } catch (SQLException sqle) {
                    System.err.println("Erreur lors de la récupération la connexion à la BD " + sqle.getMessage());
              throw new IllegalStateException(sqle);
            }
          return conn;
        }

    Voici le code que tu voulais pour récupérer la Connexion !
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Problème compatibilité Swing et Réseau
    Par Mithandir dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 05/03/2009, 14h01
  2. Problème BDD DB2
    Par R4ndy dans le forum AS/400
    Réponses: 5
    Dernier message: 11/08/2008, 23h27
  3. Divers problèmes avec Swing
    Par ratakses dans le forum AWT/Swing
    Réponses: 10
    Dernier message: 03/09/2006, 21h57
  4. [VB6]problème bdd access
    Par ica89 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 25/04/2006, 19h41
  5. Problème BDD bizarre
    Par helter_skelter dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 25/07/2005, 18h04

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