D'Accès Java DB Connexion
J'essaie de faire de projet avec connexion pour la base de données (MS Access 2010)
J'utilise ce tutoriel sur CodeProject.
import java.sql.*;
public class DbAccess
{
public static void main(String[] args)
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String database =
"jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=myDB.mdb;";
Connection conn = DriverManager.getConnection(database, "", "");
Statement s = conn.createStatement();
//create a table
String tableName = "myTable" + String.valueOf((int)(Math.random() * 1000.0));
String createTable = "CREATE TABLE " + tableName +
" (id Integer, name Text(32))";
s.execute(createTable);
//enter value into table
for(int i=0; i<25; i++)
{
String addRow = "INSERT INTO " + tableName + " VALUES ( " +
String.valueOf((int) (Math.random() * 32767)) + ", 'Text Value " +
String.valueOf(Math.random()) + "')";
s.execute(addRow);
}
//Fetch table
String selTable = "SELECT * FROM " + tableName;
s.execute(selTable);
ResultSet rs = s.getResultSet();
while((rs!=null) && (rs.next()))
{
System.out.println(rs.getString(1) + " : " + rs.getString(2));
}
//drop the table
String dropTable = "DROP TABLE " + tableName;
s.execute(dropTable);
//close and cleanup
s.close();
conn.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
Mais je reçois étrange Exception : java.sql.SQLException: [Microsoft][????????? ????????? ODBC] ???????? ?????? ?? ?????? ? ?? ?????? ???????, ???????????? ?? ?????????
java.sql.SQLException: [Microsoft][????????? ????????? ODBC] ????????
?????? ?? ?????? ? ?? ?????? ???????, ???????????? ?? ????????? au
soleil.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6956) à
soleil.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7113) à
soleil.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3072) à
soleil.jdbc.odbc.JdbcOdbcConnection.initialiser(JdbcOdbcConnection.java:323)
au coucher du soleil.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174) à
java.sql.DriverManager.getConnection(DriverManager.java:579) à
java.sql.DriverManager.getConnection(DriverManager.java:221) à
dbaccess.DbAccess.principale(DbAccess.java:28)
Je google et de trouver d'autres questions sur la Pile comme ceci : Pile De Post
J'ai donc ajouter tous les pilotes ODBC qui peut m'aider à connecter *.fichier mdb. Mais rien de bon hepend.(
Quel est-il et comment se connecter à l'Accès DB?
oui. donc je ne sais pas dans quel est exactement l'erreur, mais Google me donner beaucoup de messages comme "java.sql.SQLException: [Microsoft][Gestionnaire de pilotes ODBC] source de Données non trouvée et nom de pilote non spécifié"
s'il vous plaît partager le code et la trace de la pile.
ajouté.
quel est le nom DNS?
OriginalL'auteur user2167382 | 2013-10-27
Vous devez vous connecter pour publier un commentaire.
Il n'y a rien de fondamentalement mauvais dans votre code, parce que j'ai collé dans Eclipse et il a fonctionné très bien. La seule modification que j'ai faite a été de spécifier le chemin d'accès au fichier de base de données, c'est à dire, au lieu d'utiliser
J'ai utilisé
J'ai aussi été exécuté dans une JVM 32 bits (sur un ordinateur 32 bits). Donc, ma suggestion serait
Essayez de spécifier le chemin d'accès complet à la
.mdb
fichier comme je l'ai fait.Si vous obtenez un message d'erreur, vérifiez votre environnement Java pour voir si votre application est en cours d'exécution dans une JVM 64 bits. Si c'est le cas,
Driver={Microsoft Access Driver (*.mdb)}
ne fonctionnera pas: il n'y a pas de version 64 bits de l'ancienne Jet pilote ODBC. Dans ce cas, vous avez deux options:je. Configurer votre application de fonctionner dans une JVM 32 bits, ou
ii. Télécharger et installer la version 64 bits de la Base de données Access Moteur de ici, et ensuite utiliser
Driver={Microsoft Access Driver (*.mdb, *.accdb)}
.IDE qui vous aide?
J'utilise NetBeans 7.3.1
eh bien, j'ai trouvé la solution ici lien sur la configuration, je vous remercie donc)
Réponse toujours d'actualité! N'a même pas à moi qu'Eclipse a été pointant vers une version 64 bits de Java, et de la ligne de commande a l'aide d'une version 32 bits (environnement de l'entreprise - pas d'options). L'erreur que je recevais de ne pas être en mesure de trouver le nom ou le conducteur n'a même jamais clued sur moi sur la version de Java. Juste la configuration d'Eclipse pour pointer vers la version 32 bits fixé mon problème.
OriginalL'auteur Gord Thompson
Maintenant que le JDBC-ODBC Bridge a été supprimé à partir de Java 8 une meilleure approche serait d'utiliser la UCanAccess pilote JDBC. Pour plus d'informations, voir
Manipulation d'une base de données Access à partir de Java sans ODBC
OriginalL'auteur Gord Thompson