只是想知道是否有人帮助我,我正在尝试连接到MS Access数据库。我已经在其他项目上完成了它并使用了完全相同的代码。谁能看出我做错了什么?
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)'.
但是我的数据库和我的项目在同一个文件夹中,就像我之前所做的那样,我不知道为什么我会收到这个错误。帮助
答案 0 :(得分:2)
Control Panel
- > Administrative Tools
- > ODBC Data Sources
- > Add
- > Microsoft Access Driver(*mdb,*accdb)
指定与MotivationDatabase.mdb
对应的Data Source name
的正确路径并保存设置。
参考 here 。
public class Main {
@SuppressWarnings("unused")
public static void main(String[] args) {
try {
System.out.println("Attempting Database Connection");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String sourceURL = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ="
+ "D:\\MotivationDatabase.mdb";
Connection connection = DriverManager.getConnection(sourceURL);
System.out.println("Connection made");
} catch (Exception e) {
e.printStackTrace();
}
}
}
PS:请学习 JDBC JDBC-ODBC Bridge will be removed in JDK8 。请参阅 {{3 }} 强>
您还可以使用JDBC和 here 连接到MSAccess数据库。您需要在项目构建路径中使用以下jar。
connection = DriverManager
.getConnection("jdbc:ucanaccess:////REMOTE-IP-ADDRESS/shared-folder/TestDB.mdb");
System.out.println("CONNECTION ESTABLISHED....");
与JDK8一起使用。您可以从 UCanAccess API 下载完整的源代码。
答案 1 :(得分:0)
当Java 8将发布时,Sun JDBC ODBC将无法使用MS访问:我建议您使用apache poi项目。它很简单,效果很好。
是的,正确的项目是jakcess是正确的:
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();
答案 2 :(得分:0)
尝试使用此类的名称和连接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);