Quel est le bon chemin en Java pour se connecter à Microsoft Access 2007 de base de données?
Je suis en train de créer une simple connexion à l'aide de jdbc-odbc bridge:
public static Connection getConnection() {
Connection con =null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String conStr = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" +
"c:\\myfolder\\accesdbfile.accdb";
con = DriverManager.getConnection(conStr);
} catch(Exception e) {
e.printStackTrace();}
return con;
}
Mais puis-je obtenir cette exception:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0xa4 Thread 0xec0 DBC 0x2f8574c Jet'.
Des idées?
Mise à jour 24/Mar/2009: Maintenant ça fonctionne. Créé une Source de Données Utilisateur, et pour une raison que l'exception s'en alla.
Comme une question d'ordre général, Quel serait le meilleur moyen de gérer les connexions de base de données en Java?
- double possible de "Général de l'erreur Impossible d'ouvrir la clé de registre Temporaire (volatile) ..." de l'Accès ODBC
- Donc une question créée il y a 5 ans il est possible de dupliquer une question posée de 12 jours?
- "Si la nouvelle question est une meilleure question ou a de meilleures réponses, puis voter pour fermer l'ancien comme un doublon de la nouvelle." (réf: ici)
Vous devez vous connecter pour publier un commentaire.
Pour répondre à votre question, je dirais que le meilleur moyen de gérer les connexions de base de données en Java, pour éviter le JDBC-ODBC bridge. Son OK pour les tests ou d'apprentissage, JDBC, mais pas pour de vrai la production. Aussi, si vous avez une source de données qui ne dispose pas de son propre pilote JDBC, mais il a un pilote ODBC alors vous n'avez probablement pas le choix.
La principale raison pour laquelle je vous suggère de rester loin de bien, c'est qu'il rend difficile pour déployer votre application. Vous devez configurer la Source de Données sur la machine que vous exécutez votre application à partir de. Si vous avez accès à la machine, pas de problème, mais supposons que vous êtes l'envoi de la demande au client? Le pur Java JDBC driver fonctionne le mieux pour ce qu'il est inclus dans le cadre de votre demande, de sorte une fois que votre application est installée, il est prêt à se connecter à la source de données.
De cours en fonction de vos besoins, il existe deux autres types de pilotes, mais c'est un autre débat.
En général, la meilleure façon de travailler avec un SGBDR en Java, à l'aide d'un pilote JDBC qui est conçu pour se connecter directement à la base de données. À l'aide de JDBC-ODBC bridge tend à être sloww.
Si vous essayez de faire de lecture/écriture de base des manipulations avec une base de données Access, je vous recommande aussi de prendre un coup d'oeil à la Jackcess bibliothèque.
Classe.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:nom de fichier");
Elle va certainement résoudre tous vos problème.