|
|
|
|
Comment connecter java à ma base access
Dernière réponse le 2 jun 2009 à 13:32:00 Richard, le 4 avr 2008 à 13:46:07Bonjour,
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://pagesperso-orange.fr/isabelle.thieblemont/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.
Configuration: Windows XP Internet Explorer 7.0
Ta variable con n'est jamais initialisée, visiblement.
|
Polux31,
|
Voilà la chaîne pour une base se trouvant sur le disque c: dans le dossier bdd\ :
|
J'ai tenté la ligne que vous m'avez suggéré
|
Il faut doubler toutes les '\' dans l'adresse ... c'est bien "c:\\doc..." et non "c:\doc..."
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) |

