Comment connecter java à ma base access
Richard
-
khadrekhadre Messages postés 1 Statut Membre -
khadrekhadre Messages postés 1 Statut Membre -
Bonjour,
Je voudrais savoir ce qui ne va pas avec ce code que j’ai copié de l’Internet. J’ai aimé les explications du code parce qu’elles me semblent faciles à comprendre (je suis nouveau en java). J’ai pris soin d’installer l’ODBC pour Access comme le site suggère.
Toute fois, j’ai remplacé le nom de la base « bdVoyage » par « repertoire » et la table « T_destinations » par « repertoire » pour refléter ma base. la base de données et la seule table que j'ai crée pour assimiler l'exercice portent le même nom "repertoire".
Mais, quand je l’exécute, il me dit ceci :
--------------------------------------------------------------------------------------------------------
Exception in thread "main" java.lang.NullPointerException
at EssaiRepertoire.main(EssaiRepertoire.java:26)
--------------------------------------------------------------------------------------------------------
Voici le site où je l’ai tiré :
http://isabelle.thieblemont.pagesperso-orange.fr/java/chbd.html
Voici le code :
import java.sql.*;
import java.io.*;
public class EssaiRepertoire {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String url = "jdbc:odbc:repertoire";
Connection con = null;
try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection(url,"","");
Statement requete = con.createStatement();
ResultSet resultatDest = requete.executeQuery("select * from repertoire");
while (resultatDest.next()) {
System.out.println(resultatDest.getInt(1)+" "+resultatDest.getString(2));
};
}
catch(Exception e) { System.out.println("Exception"); }
finally {
try {con.close();}
catch(SQLException e) {e.printStackTrace();}
}
}
}
Merci de m'aider car je ne peux pas avancer dans mes leçons si déjà je ne peux me connecter à la base.
Je voudrais savoir ce qui ne va pas avec ce code que j’ai copié de l’Internet. J’ai aimé les explications du code parce qu’elles me semblent faciles à comprendre (je suis nouveau en java). J’ai pris soin d’installer l’ODBC pour Access comme le site suggère.
Toute fois, j’ai remplacé le nom de la base « bdVoyage » par « repertoire » et la table « T_destinations » par « repertoire » pour refléter ma base. la base de données et la seule table que j'ai crée pour assimiler l'exercice portent le même nom "repertoire".
Mais, quand je l’exécute, il me dit ceci :
--------------------------------------------------------------------------------------------------------
Exception in thread "main" java.lang.NullPointerException
at EssaiRepertoire.main(EssaiRepertoire.java:26)
--------------------------------------------------------------------------------------------------------
Voici le site où je l’ai tiré :
http://isabelle.thieblemont.pagesperso-orange.fr/java/chbd.html
Voici le code :
import java.sql.*;
import java.io.*;
public class EssaiRepertoire {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String url = "jdbc:odbc:repertoire";
Connection con = null;
try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection(url,"","");
Statement requete = con.createStatement();
ResultSet resultatDest = requete.executeQuery("select * from repertoire");
while (resultatDest.next()) {
System.out.println(resultatDest.getInt(1)+" "+resultatDest.getString(2));
};
}
catch(Exception e) { System.out.println("Exception"); }
finally {
try {con.close();}
catch(SQLException e) {e.printStackTrace();}
}
}
}
Merci de m'aider car je ne peux pas avancer dans mes leçons si déjà je ne peux me connecter à la base.
A voir également:
- Comment connecter java à ma base access
- Se connecter à gmail sur téléphone - Guide
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Comment connecter chromecast à la télé - Guide
- Se connecter à ma boite hotmail - Guide
10 réponses
Ta variable con n'est jamais initialisée, visiblement.
difficile d'appliquer la méthode close() sur un null...
difficile d'appliquer la méthode close() sur un null...
bonjour,
il n'y a nulle part le nom de ta base ??? et je pense que pour l'url tu dois faire comme ça :
;o)
polux
il n'y a nulle part le nom de ta base ??? et je pense que pour l'url tu dois faire comme ça :
String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\cheminDeMaBaseEtNomdeLaBdd";
;o)
polux
voilà la chaîne pour une base se trouvant sur le disque c: dans le dossier bdd\ :
String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\\bdd\\repertoire.mdb";
je pense que le chemin d'accès doit être complet, d'autre par il faut inclure dans les librairies ojdbc14.jar pour l'accès à access.
String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\\bdd\\repertoire.mdb";
je pense que le chemin d'accès doit être complet, d'autre par il faut inclure dans les librairies ojdbc14.jar pour l'accès à access.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
d'accord. Mais, une bonne initialisation serait quoi?
ou encore, à quoi sert cette instruction?
con = DriverManager.getConnection(url,"","");
Merci une fois de plus
ou encore, à quoi sert cette instruction?
con = DriverManager.getConnection(url,"","");
Merci une fois de plus
Polux31,
le nom de ma base est "reperoire". j'ai remplacé le nom de "bdVoyage" par "repertoire" que portent both my table and my database.
------------------------------------------------------
String url = "jdbc:odbc:repertoire"; // à la place de repertoire il y avait bdVoyage
--------------------------------------------------
quant à l'instruction que tu m'a suggéré:
String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\cheminDeMaBaseEtNomdeLaBdd";
Il n'a pas amélioré les choses car je reçois toujours les mêmes messages. J'ai pensée que c'est peut-être moi qui l'ai pris littéralement. j'ai changé (*.mdb) par (repertoire.mdb), mais je reçois toujours le même message.
le nom de ma base est "reperoire". j'ai remplacé le nom de "bdVoyage" par "repertoire" que portent both my table and my database.
------------------------------------------------------
String url = "jdbc:odbc:repertoire"; // à la place de repertoire il y avait bdVoyage
--------------------------------------------------
quant à l'instruction que tu m'a suggéré:
String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\cheminDeMaBaseEtNomdeLaBdd";
Il n'a pas amélioré les choses car je reçois toujours les mêmes messages. J'ai pensée que c'est peut-être moi qui l'ai pris littéralement. j'ai changé (*.mdb) par (repertoire.mdb), mais je reçois toujours le même message.
J'ai tenté la ligne que vous m'avez suggéré
---------------------------------------------------------------------------
String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\\bdd\\repertoire.mdb";
---------------------------------------------------------------------------
(1) je l'ai testé telle qu'elle
(2) j'ai remplacé "c:\\bdd\\repertoire.mdb"; " par " C:\Documents and Settings\Richard\Mes documents\Richard\Repertoire" comme le chemin d'accès à ma base "repertoire" apparait dans l'Windows Explorer.
(3) j'ai aussi tenté de remplacer (*.mdb) par (repertoire.mdb)
mais ca n'a pas marché; je reçois toujours les mêmes messages. En plus, quand j'importe ojdbc14.jar, il refuse même d'aller plus loin en disant qu'il ne peut executer cette instruction.
Comme toutes les ressources (livres, sites Internets) semblent suggerer la même façon d'écrire ces instructions pourriez-vous, m'écrire ici quelque chose qui a marché et moi je vais essayer de l'executer chez moi.
Merci de m'aider de cette façon car je ne peut faire plus si je n'arrive pas à me connecter d'abord
---------------------------------------------------------------------------
String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\\bdd\\repertoire.mdb";
---------------------------------------------------------------------------
(1) je l'ai testé telle qu'elle
(2) j'ai remplacé "c:\\bdd\\repertoire.mdb"; " par " C:\Documents and Settings\Richard\Mes documents\Richard\Repertoire" comme le chemin d'accès à ma base "repertoire" apparait dans l'Windows Explorer.
(3) j'ai aussi tenté de remplacer (*.mdb) par (repertoire.mdb)
mais ca n'a pas marché; je reçois toujours les mêmes messages. En plus, quand j'importe ojdbc14.jar, il refuse même d'aller plus loin en disant qu'il ne peut executer cette instruction.
Comme toutes les ressources (livres, sites Internets) semblent suggerer la même façon d'écrire ces instructions pourriez-vous, m'écrire ici quelque chose qui a marché et moi je vais essayer de l'executer chez moi.
Merci de m'aider de cette façon car je ne peut faire plus si je n'arrive pas à me connecter d'abord
il faut doubler toutes les '\' dans l'adresse ... c'est bien "c:\\doc..." et non "c:\doc..."
voilà ce que j'utilise pour me connecter à une basse access, avec un fichier main.properties :
et le fichier main :
bon courage
;o)
voilà ce que j'utilise pour me connecter à une basse access, avec un fichier main.properties :
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import org.apache.log4j.Logger;
/**
* Gestion de la connection à la base de données Access.
* @version 1.0.0
*
*/
public enum DbConnection {
ACCESS(Controller.getInstance().getConfigManager().getAccessJdbcDriver(),
Controller.getInstance().getConfigManager().getAccessJdbcUrl(),
Controller.getInstance().getConfigManager().getAccessJdbcUser(),
Controller.getInstance().getConfigManager().getAccessJdbcPassword());
Logger logger = Logger.getLogger(DbConnection.class);
public Connection connection;
private DbConnection(String jdbcDriver, String jdbcUrl, String jdbcUser, String jdbcPassword) {
try {
logger.info("Tentative de connection à la base de donnée");
checkConnected(jdbcDriver, jdbcUrl, jdbcUser, jdbcPassword);
} catch (DatabaseException dbEx) {
logger.fatal("Echec de connection à la base de donnée");
JOptionPane.showMessageDialog(null,
dbEx.getMessage(),
"Magasin",
JOptionPane.ERROR_MESSAGE);
}
}
/**
* Vérifie que la connexion est établie. Si ce n'est pas le cas, crée la
* connexion à partir des paramètres fournis dans le fichier de
* configuration
*/
private void checkConnected(String jdbcDriver, String jdbcUrl,
String jdbcUser, String jdbcPassword) throws DatabaseException {
if (connection == null) {
try {
Class.forName(jdbcDriver);
} catch (ClassNotFoundException e) {
throw new DatabaseException(
"Impossible de trouver la classe du driver JDBC '"
+ jdbcDriver + "' !", e);
}
try {
connection = DriverManager.getConnection(jdbcUrl,
jdbcUser, jdbcPassword);
} catch (SQLException e) {
throw new DatabaseException(
"Erreur lors de la connexion à la base de données :\n"
+ e.getMessage(), e);
}
}
}
}
et le fichier main :
# Fichier main.properties
##################################################
# Propriétés JDBC
# Url JDBC de la base
# Attention : remplacer les '\' par des '\\' !!!
jdbc.access.url = jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\\Bdd\\dbMag\\magasin.mdb
# Driver JDBC
jdbc.access.driver = sun.jdbc.odbc.JdbcOdbcDriver
# User JDBC
jdbc.access.user =
# Password JDBC
jdbc.access.password =
bon courage
;o)
j'ai un problème avec un sujet que je dois le faire c'est le chat entre client et serveur (comminication via les socket) et gestion d'une base de donnée contient le client et les voiture car le sujet c'est location de voiture
Salut, j'ai testé le code suivant après configuration (en suivant le lien cité en haut) et ça marche:
public static void main(String[] args) {
String url = "jdbc:odbc:termonto-Fr";
Connection con = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection(url,"","");
Statement requete = con.createStatement();
ResultSet resultat = requete.executeQuery("select iddoc,idseq from SEQ");
while (resultat.next()) {
System.out.println(resultat.getInt(1)+" "+resultat.getString(2));
};
}
catch (ClassNotFoundException fe){
System.out.println("driver introuvable:"+fe.getMessage());
}
catch (SQLException se){
System.out.println("Connexion impossible : "+se.getMessage());
}
finally {
try {
con.close();
}
catch(SQLException e) {e.printStackTrace();}
}
System.out.println(" ************ FIN ***********");
}
}
merci
public static void main(String[] args) {
String url = "jdbc:odbc:termonto-Fr";
Connection con = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection(url,"","");
Statement requete = con.createStatement();
ResultSet resultat = requete.executeQuery("select iddoc,idseq from SEQ");
while (resultat.next()) {
System.out.println(resultat.getInt(1)+" "+resultat.getString(2));
};
}
catch (ClassNotFoundException fe){
System.out.println("driver introuvable:"+fe.getMessage());
}
catch (SQLException se){
System.out.println("Connexion impossible : "+se.getMessage());
}
finally {
try {
con.close();
}
catch(SQLException e) {e.printStackTrace();}
}
System.out.println(" ************ FIN ***********");
}
}
merci
Salut, j'ai testé le code suivant après configuration (en suivant le lien cité en haut) et ça marche:
public static void main(String[] args) {
String url = "jdbc:odbc:termonto-Fr";
Connection con = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection(url,"","");
Statement requete = con.createStatement();
ResultSet resultat = requete.executeQuery("select iddoc,idseq from SEQ");
while (resultat.next()) {
System.out.println(resultat.getInt(1)+" "+resultat.getString(2));
};
}
catch (ClassNotFoundException fe){
System.out.println("driver introuvable:"+fe.getMessage());
}
catch (SQLException se){
System.out.println("Connexion impossible : "+se.getMessage());
}
finally {
try {
con.close();
}
catch(SQLException e) {e.printStackTrace();}
}
System.out.println(" ************ FIN ***********");
}
}
merci
public static void main(String[] args) {
String url = "jdbc:odbc:termonto-Fr";
Connection con = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection(url,"","");
Statement requete = con.createStatement();
ResultSet resultat = requete.executeQuery("select iddoc,idseq from SEQ");
while (resultat.next()) {
System.out.println(resultat.getInt(1)+" "+resultat.getString(2));
};
}
catch (ClassNotFoundException fe){
System.out.println("driver introuvable:"+fe.getMessage());
}
catch (SQLException se){
System.out.println("Connexion impossible : "+se.getMessage());
}
finally {
try {
con.close();
}
catch(SQLException e) {e.printStackTrace();}
}
System.out.println(" ************ FIN ***********");
}
}
merci