MS Access数据库的Java连接
不知道是否有人能帮我,我正在尝试连接到MS Access数据库。我在其他项目上也做过,使用了完全相同的代码。有人能看出我做错了什么吗MS Access数据库的Java连接,java,sql,database,ms-access,jdbc-odbc,Java,Sql,Database,Ms Access,Jdbc Odbc,不知道是否有人能帮我,我正在尝试连接到MS Access数据库。我在其他项目上也做过,使用了完全相同的代码。有人能看出我做错了什么吗 try { System.out.println("Attempting Database Connection"); Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String sourceURL = "jdbc:odbc:Driver={Microsoft Acce
try {
System.out.println("Attempting Database Connection");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String sourceURL = "jdbc:odbc:Driver={Microsoft Access Driver(*.mdb)};DBQ=MotivationDatabase.mdb;";
connection = DriverManager.getConnection(sourceURL, "", "");
stmt = connection.createStatement();
System.out.println("Connection made");
} catch (Exception e) {
System.out.println("Database connection attempt failed");
System.out.println(e);
}
我不断得到错误:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Could not find file '(unknown)'.
但是我的数据库和我的项目在同一个文件夹中,就像我以前做的一样。我不知道为什么会出现这个错误。帮助?
->控制面板
->管理工具
->ODBC数据源
->添加
Microsoft Access驱动程序(*mdb,*accdb)
- 指定与
对应的数据源名称
的正确路径,并保存设置动机数据库.mdb
使用JDK8可以很好地工作。您可以从下载整个源代码,当java 8发布时,Sun JDBC ODBC将无法与MS access一起工作:我建议您使用apache poi项目。它很简单,效果很好 是的,没错,正确的项目是Jaccess:
import com.healthmarketscience.jackcess.DatabaseBuilder;
import com.healthmarketscience.jackcess.Row;
import com.healthmarketscience.jackcess.Table;
try{Table table = DatabaseBuilder.open(new File("filename")).getTable("tablename");
righe.add(0);
for(Row row : table) {
String articolo=row.get("ColName").toString();
尝试使用此类名称和连接URL。将以下jar文件添加到项目中: commons-lang.jar,commons logging.jar,hsqldb.jar,jackcess.jar,ucanaccess.jar
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
//change the path with your own accdb file
String URL = "jdbc:ucanaccess://D:\\projects\\test.accdb";
Connection con = DriverManager.getConnection(URL);
我已经这样做了,但仍然是同一个错误,如果我诚实的话,我不知道我错在哪里了。你需要在JDBC URL中指定.mdb文件的完整路径。@a_horse_,with_no_name:他没有使用JDBC。@Sandeep:当然是。使用的是JDBC/ODBC桥,但仍然是JDBC
import com.healthmarketscience.jackcess.DatabaseBuilder;
import com.healthmarketscience.jackcess.Row;
import com.healthmarketscience.jackcess.Table;
try{Table table = DatabaseBuilder.open(new File("filename")).getTable("tablename");
righe.add(0);
for(Row row : table) {
String articolo=row.get("ColName").toString();
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
//change the path with your own accdb file
String URL = "jdbc:ucanaccess://D:\\projects\\test.accdb";
Connection con = DriverManager.getConnection(URL);