[英]How to get MS-Access Database online and connect to it using Java?
[英]How to connect MS Access Database using Java program?
我想编写一个程序来从MS Access数据库中检索数据。 我写的节目如下:
package db;
import java.sql.*;
public class MSaccess_archive {
public static void main(String[] args) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String accessFileName = "E:/L4_project/sample/db/Database";
String connURL="jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ="+accessFileName+".accdb;";
Connection con = DriverManager.getConnection(connURL, "","");
Statement stmt = con.createStatement();
stmt.execute("select * from student"); // execute query in table student
ResultSet rs = stmt.getResultSet(); // get any Result that came from our query
if (rs != null)
while ( rs.next() ){
System.out.println("Name: " + rs.getString("Name") + " ID: "+rs.getString("ID"));
}
stmt.close();
con.close();
}
catch (Exception err) {
System.out.println("ERROR: " + err);
}
}
}
但是我得到了以下异常:
错误:java.sql.SQLException:[Microsoft] [ODBC Microsoft Access驱动程序]找不到文件'(未知)'。
当我使用.mdb
文件时,上面的程序正常工作,但如果我使用.accdb
文件,它会给出上述异常。
有什么想法吗?
您可以重新访问步骤,控制面板>管理工具>数据源>添加> Microsoft Access驱动程序(* mdb,* accdb)>确定>确定>确定。 它可能工作。用于ODBC连接。
JDBC-ODBC Bridge已从Java 8中删除 ,不受支持(参考: 此处和此处 )。 UCanAccess是一种流行的替代品。 有关详情,请参阅
我认为您需要指定jdbc:odbc:my_access_odbc_dsn
作为URL,其中my_access_odbc_dsn是您在ODBC中配置的DSN名称。 就我而言,我正在访问一个名为“PavoDB”的MS Access 2013数据库,所以我的URL是:
private static final String url="jdbc:odbc:PavoDB";
除非你特别需要能够运行任意的sql查询,你总是可以试试jackcess 。
驱动程序可能尚未更新以读取该格式。 .mdb是Access的原始版本; .accdb必须已修改,ODBC驱动程序没有跟上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.