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
    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 chevronné

    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
    Par défaut
    La comme ça je dirai que ta variable connexion est à null.

  3. #3
    Membre éclairé 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
    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 averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 20
    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 chevronné

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