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 :

[JDBC]Probleme d'accès à une base de données access [FAQ]


Sujet :

JDBC Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [JDBC]Probleme d'accès à une base de données access
    voila l'erreur que j'obtiens :
    java.lang.NullPointerException
    at JDBC.Gestion_Connection.getTable(Gestion_Connection.java:88)
    at Metier.Utilisateur.searchByLogin(Utilisateur.java:161)


    -------------------------------------------------
    voila 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
    65
    66
    67
    68
    69
    70
    71
     
    class Gestion_Connection :
     
    public Gestion_Connection ()
            {
            	try 
    			{ 
            		Class.forName("jdbc:odbc:DSN"); 
    			} 
            	catch (java.lang.ClassNotFoundException e) 
    			{ 
            		return; 
            	} 
     
            	String databaseURL = "bd1"; 
            	String user = ""; 
            	String password = ""; 
            	Connection connexion = null; 
     
            	try 
    			{ 
            	  connexion = DriverManager.getConnection(databaseURL, user, password); 
            	} 
            	catch (java.sql.SQLException e) 
    			{ 
            	   System.out.println("Impossible d'établir une connexion"); 
            	   e.printStackTrace();  
            	} 
     
            }
     
     
    public static Gestion_Connection getInstance() throws SQLException
            {
                if (Gestion==null) Gestion=new Gestion_Connection();
                return Gestion;
            }
     
     
    public ResultSet getTable(String requete)
            {
                try
                {
                    resultats = connexion.createStatement().executeQuery(requete);
                }
                catch (SQLException sqlex)
                {
                    sqlex.printStackTrace();
                }
                return(resultats);
            }
     
    [b]class Utilisateur :[/b]
     
    public static Utilisateur searchByLogin (String login) throws SQLException
            {
                Utilisateur u;
                Gestion_Connection gestion = Gestion_Connection.getInstance();
                String requete = ("SELECT * FROM Individu WHERE LOGIN = " + login);
                ResultSet resultat = gestion.getTable(requete);
                if (resultat.next()==true)
                {
                    u = new Utilisateur (resultat);
                }
                else
                {
                    System.out.println("Pas d'utilisateur trouvé");
                    u = null;
                }
                return u;
            }




    [Modéré par Didier]
    Ajout de tag dans le titre
    Ajout de balises code
    Lire les règles du forum : Règles du forum Java

  2. #2
    Membre éclairé

    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    412
    Détails du profil
    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2002
    Messages : 412
    Points : 657
    Points
    657
    Par défaut
    La comme ça je dirai que ta variable connexion est à null.

  3. #3
    Membre averti Avatar de ShinJava
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    413
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 413
    Points : 357
    Points
    357
    Par défaut
    Salut,
    Ta variable url pose peut etre un probleme aussi. Il faudrait un truc avec localhost...
    Par exemple avec MySQL, je fais de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String url = "jdbc:mysql://localhost:3306/nomdelaBDD
    Pour access, je ne connais pas la manip.
    En esperant que ca t'aidera a voir plus clair.
    Bon courage.
    ++
    ShinJava

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Un exemple de mon code :

    Classe de connexion = Odbc.java

    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
     
    public class Odbc {
     
      /** La session de connexion */
      private Connection connexion;
     
      /**
       * Constructeur qui va créer une connexion à la base de données.
       */
      public Odbc() {
        // Connexion à la base de données via ODBC
        try {
          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
          connexion = DriverManager.getConnection("jdbc:odbc:facturation", "", "");
        }
        catch (ClassNotFoundException cnfe) {
          JOptionPane.showMessageDialog(null, "Driver non installé", "** ERREUR **",
                                        JOptionPane.ERROR_MESSAGE);
          System.exit( -1);
        }
        catch (SQLException sqle) {
          JOptionPane.showMessageDialog(null,
                                        "Impossible de se connecter à la base de données",
                                        "** ERREUR **",
                                        JOptionPane.ERROR_MESSAGE);
          System.exit( -1);
        }
      } // Fin Odbc
      /**
       * Requête qui va retourner le nombre de produit en stock pour un produit donné
       * @param id_prod int : identifiant du produit
       * @return int
       */
      public int sql_QuantiteStock(int id_prod) {
        PreparedStatement pstmt;
        ResultSet rs;
        int retour = -1;
        try {
          pstmt = connexion.prepareStatement(
              "SELECT stock FROM produit WHERE id_produit=?;");
          pstmt.setInt(1, id_prod);
          rs = pstmt.executeQuery();
          if (rs.next()) { // Si on a identifié le record dans la base de données
            retour = rs.getInt("stock");
          }
          pstmt.close();
          rs.close();
        }
        catch (SQLException sqle) {
        }
        return retour;
      } // Fin sql_QuantiteStock
     
    }// Fin classe
    "jdbc:odbc:facturation" , facturation étant mon nom de DSN.

    Voila je pense qu'avec les commentaires et un peu de doc tu devrais pas avoir de mal à comprendre.

    Val.

  5. #5
    Membre éclairé

    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    412
    Détails du profil
    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2002
    Messages : 412
    Points : 657
    Points
    657
    Par défaut
    D'ailleurs en lisant les réponses suivantes, je viens de me rendre compte que le paramètre de Class.forName est faux. Il faut utiliser, comme le montre Valerio :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Et c'est ton url qui contiendra :
    et aussi, c'est à cause de ce code là que tu ne voyais pas ton erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    catch (java.lang.ClassNotFoundException e)
             {
                  return;
               }

Discussions similaires

  1. probleme d'accée à une base de données
    Par marocdivers dans le forum Accès aux données
    Réponses: 2
    Dernier message: 22/06/2011, 17h45
  2. [ODBC] Accès à une base de données access
    Par fati31 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 18/06/2007, 15h27
  3. Accès à une base de donnée Access
    Par menuge dans le forum JDBC
    Réponses: 5
    Dernier message: 29/05/2007, 13h23
  4. [Delphi][PHP] Accès à une base de donnée Access
    Par Vodkha dans le forum Bases de données
    Réponses: 6
    Dernier message: 28/04/2005, 08h29
  5. Accès à une base de données ACCESS
    Par Invité dans le forum C++Builder
    Réponses: 3
    Dernier message: 07/01/2005, 08h23

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