我想从我的Java项目中操作Microsoft Access数据库(.accdb或.mdb文件)。我不想使用Microsoft的JDBC-ODBC Bridge和Access ODBC驱动程序,因为:
我看到其他答案提到名为UCanAccess的Access数据库的JDBC驱动程序。如何设置我的Java项目以使用此方法?
(答案表明,从Java开始使用Access数据库的更好方法也是最受欢迎的。)
答案 0 :(得分:150)
UCanAccess是一个纯Java JDBC驱动程序,它允许我们在不使用ODBC的情况下读取和写入Access数据库。它使用另外两个包Jackcess和HSQLDB来执行这些任务。以下是如何设置它的简要概述。
如果您的项目使用Maven,您只需通过以下坐标包含UCanAccess:
groupId: net.sf.ucanaccess
artifactId: ucanaccess
如上所述,UCanAccess需要Jackcess和HSQLDB。 Jackcess又有自己的dependencies。因此,要使用UCanAccess,您需要包含以下组件:
UCanAccess(ucanaccess-x.x.x.jar)
HSQLDB(hsqldb.jar,版本2.2.5或更新版本)
Jackcess(jackcess-2.x.x.jar)
commons-lang(commons-lang-2.6.jar,或更新的 2.x版本)
commons-logging(commons-logging-1.1.1.jar,或更新的 1.x版本)
幸运的是,UCanAccess在其分发文件中包含了所有必需的JAR文件。当你解压缩它时,你会看到类似
的东西ucanaccess-4.0.1.jar
/lib/
commons-lang-2.6.jar
commons-logging-1.1.1.jar
hsqldb.jar
jackcess-2.1.6.jar
您需要做的就是将所有五(5) JAR添加到您的项目中。
注意:如果要添加其他五(5)个JAR文件,请不将
loader/ucanload.jar
添加到构建路径。UcanloadDriver
类仅在特殊情况下使用,需要不同的设置。有关详细信息,请参阅相关答案here。
Eclipse:在Package Explorer中右键单击项目,然后选择Build Path > Configure Build Path...
。单击“添加外部JAR ...”按钮以添加五(5)个JAR中的每一个。完成后,Java Build Path应该看起来像这样
NetBeans:展开项目的树视图,右键单击“Libraries”文件夹并选择“Add JAR / Folder ...”,然后浏览到JAR文件。
添加所有五(5)个JAR文件后,“Libraries”文件夹应如下所示:
IntelliJ IDEA:从主菜单中选择File > Project Structure...
。在“库”窗格中,单击“添加”(+
)按钮并添加五(5)个JAR文件。完成后,项目应如下所示:
现在使用像
这样的代码在.accdb和.mdb文件中“U Can Access”数据// assumes...
// import java.sql.*;
Connection conn=DriverManager.getConnection(
"jdbc:ucanaccess://C:/__tmp/test/zzz.accdb");
Statement s = conn.createStatement();
ResultSet rs = s.executeQuery("SELECT [LastName] FROM [Clients]");
while (rs.next()) {
System.out.println(rs.getString(1));
}
在撰写此Q& A时,我没有参与或关联UCanAccess项目;我刚刚用过它。从那以后,我成为该项目的贡献者。