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

avec Java Discussion :

Problème de connexion avec la base Access


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2013
    Messages : 10
    Points : 9
    Points
    9
    Par défaut Problème de connexion avec la base Access
    Bonjour à tous,

    J'ai un problème pour accéder à une base de données Access depuis Java.

    Lorsque j'essaie de me connecter et lire une table, j'obtiens l'erreur suivante :
    Connection à la base de données impossible
    Exception in thread "main" java.lang.NullPointerException
    at application.connec.execRequete(connec.java:42)
    at application.connec.main(connec.java:53)
    Voici mon code
    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    package application;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
     
    public class connec {
     
        String monInt;
        String maString;
     
        /**
         * @param args
         */
        Connection maConnection = null;
     
        public void execRequete() {
     
            try {
     
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                // je charge le driver
                System.out.println("pilote correctement chargé");
     
            } catch (ClassNotFoundException e) {
     
                // sinon
                System.out.println("Impossible de charger le pilote jdbc:odbc");
            }
     
            try {
     
                String DBurl = "jdbc:odbc:bdapp"; // j'atteints mon fichier
                maConnection = DriverManager.getConnection(DBurl);
     
            } catch (SQLException e) {
     
                System.out.println("Connection à la base de données impossible");
            }
     
            try { // Creation d'un Statement
     
                Statement stmt = maConnection.createStatement();
                ResultSet resultSet = stmt.executeQuery("SELECT nom, prenom FROM Client");
     
                while (resultSet.next()) {
     
                    monInt = resultSet.getString(1);
                    maString = resultSet.getString(2);
                }
            } catch (SQLException e) {
     
                System.out.println("ERREUR SQL = " + e.getMessage());
            }
        }
     
        public static void main(String[] args) {
     
            connec C = new connec();
            C.execRequete();
        }
    }
    Je ne sais pas vraiment d'où provient le problème bien qu'ayant configuré dans les Sources de données ODBC de mon ordinateur, la connexion nommée "bdapp".

    Quelqu'un saurait-il m'indiquer comment résoudre ce problème ?

    Merci d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Bonjour,
    Premièrement tu devrais plutôt laisser le compilateur tracer les exceptions quand il les capte, à la place d'écrire des messages propres à ta compréhension, qui risqueraient de ne t'apporter que confusion.
    A la première vue, le problème vient du bloc ci-dessous :
    Citation Envoyé par ENSI Aymen Voir le message
    try {
    String DBurl = "jdbc:odbc:bdapp"; // j'atteints mon fichier
    maConnection = DriverManager.getConnection(DBurl);
    } catch (SQLException e) {
    System.out.println("Connection à la base de données impossible");
    }
    On va aller tout doucement, essaie de remplacer ton bloc catch par ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    catch (SQLException e) {
                e.printStackTrace();
            }
    Et renvoie nous ce qui est affiché dans la console.
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  3. #3
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    bonjour,

    En fait, tu gères très mal les exceptions ! Les exceptions sont la pour t'aider a comprendre quel est le problème, mais vu que tu les ignores, tu ne peux pas comprendre quel est le problème exacte.
    Non seulement tu les ignores, mais en plus tu laisses continuer l'exécution du code comme si il n'y avait pas eu de problème d'ou le nullpointer.

    La creation de la connexion a échoué donc lorsque tu arrives sur "Statement stmt = maConnection.createStatement();" la variable "maConnection" est null !
    Lors d'un traitement tu dois :
    - soit renvoyer l'exception et la traiter hors de la méthode. Renvoyer l'exception arrêtera le programme a l'endroit ou elle est lancé.
    - soit afficher un message vraiment explicite (le tiens ne l'est absolument pas) et sortir de la méthode (avec un return par exemple).
    - soit afficher un message vraiment explicite et continuer le traitement si cette erreur n'est pas bloquante (ce qui n'est pas ton cas).
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/04/2012, 13h42
  2. Connexion avec une base access !
    Par PROGDEV2paris dans le forum Débuter
    Réponses: 3
    Dernier message: 07/05/2008, 02h35
  3. [VB6]Problème connexion avec une base ACCESS
    Par mcay dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 15/05/2006, 18h47
  4. Réponses: 6
    Dernier message: 20/09/2005, 23h28
  5. problème de connexion avec une base firebird
    Par vbcasimir dans le forum Bases de données
    Réponses: 1
    Dernier message: 30/05/2005, 12h40

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