不使用ODBC从Java操作Access数据库

不使用ODBC从Java操作Access数据库,java,ms-access,ucanaccess,Java,Ms Access,Ucanaccess,我想操作Java项目中的Microsoft Access数据库.accdb或.mdb文件。我不想使用来自Microsoft的JDBC-ODBC桥和Access ODBC驱动程序,因为: JDBC-ODBC网桥已从Java SE 8中删除,不受支持。参考:, 当文本包含代码点高于U+00FF ref:的Unicode字符时,JDBC-ODBC桥无法与Access ODBC驱动程序一起正常工作,因此这种设置将无法处理希腊语、俄语、汉语、阿拉伯语等字符。, Microsoft的Access ODBC驱

我想操作Java项目中的Microsoft Access数据库.accdb或.mdb文件。我不想使用来自Microsoft的JDBC-ODBC桥和Access ODBC驱动程序,因为:

JDBC-ODBC网桥已从Java SE 8中删除,不受支持。参考:, 当文本包含代码点高于U+00FF ref:的Unicode字符时,JDBC-ODBC桥无法与Access ODBC驱动程序一起正常工作,因此这种设置将无法处理希腊语、俄语、汉语、阿拉伯语等字符。, Microsoft的Access ODBC驱动程序仅在Windows中工作,并且 Access数据库引擎和ODBC驱动程序有单独的32位和64位版本,这可能会妨碍部署。 我看到其他答案提到了一个用于Access数据库的JDBC驱动程序,名为。如何设置Java项目以使用这种方法

建议从Java使用Access数据库的更好方法的答案也是最受欢迎的。

是一个纯Java JDBC驱动程序,允许我们在不使用ODBC的情况下读取和写入Access数据库。它使用另外两个包和来执行这些任务。下面是如何设置它的简要概述

选项1:使用Maven 如果您的项目使用UCanAccess,您可以通过以下坐标简单地包括UCanAccess:

groupId:net.sf.ucanaccess artifactId:ucanaccess

以下是pom.xml的摘录,您可能需要更新以获得最新版本:

net.sf.ucanaccess . 因此,要使用UCanAccess,您需要包括以下组件:

ucanaccess-x.x.x.jar hsqldb.jar,版本2.2.5或更高版本 jackcess-2.x.x.jar commons-lang-2.6.jar或更新的2.x版本 commons-logging-1.1.1.jar或更新的1.x版本

幸运的是,UCanAccess在其分发文件中包含了所有必需的JAR文件。当您解压缩它时,您将看到类似的内容

ucanaccess-4.0.1.jar /解放党/ commons-lang-2.6.jar commons-logging-1.1.1.jar hsqldb.jar jackcess-2.1.6.jar 您所需要做的就是将所有5个罐子添加到您的项目中

注意:如果要添加其他五个5 jar文件,请不要将loader/ucanload.jar添加到构建路径中。UCANLOADDRIVE类仅在特殊情况下使用,需要不同的设置。有关详细信息,请参阅相关答案

Eclipse:右键单击PackageExplorer中的项目,然后选择BuildPath>ConfigureBuildPath。。。。单击添加外部jar。。。按钮添加五个罐子中的每一个。完成后,Java构建路径应该如下所示

NetBeans:展开项目的树状视图,右键单击Libraries文件夹并选择AddJAR/folder…,然后浏览到JAR文件

添加所有五个5 JAR文件后,Libraries文件夹应如下所示:

IntelliJ IDEA:选择文件>项目结构。。。从主菜单。在Libraries窗格中,单击Add+按钮并添加五个5JAR文件。完成后,项目应如下所示:

就这样! 现在,您可以使用如下代码访问.accdb和.mdb文件中的数据

//假设。。。 //导入java.sql.*; 连接连接=DriverManager.getConnection jdbc:ucanaccess://C://_tmp/test/zzz.accdb; 语句s=conn.createStatement; ResultSet rs=s.executeQuerySELECT[Clients]中的[LastName]; 而rs.next{ System.out.printlnrs.getString1; } 披露
在撰写本问答时,我没有参与UCanAccess项目,也没有参与该项目;我刚用过。此后,我成为该项目的一名贡献者。

您与该图书馆有任何关联吗?如果你这样做,可能值得透露。你能用它连接到Java 8中的Excel工作簿.xlsx吗?@sєєm sєm驱动程序类是net.ucanaccess.jdbc。UcanaccessDriver@GordThompson这是一个很好的答案。我的全班同学都被这个问题困扰着,认为这是一个文件系统权限错误。帮助我加载,花了惊人的时间才实现Oracle从Java 8中删除JDBC-ODBC桥。将UcanAcces数据源与Hibernate和Spring集成到JPA如何?Gord我想与您联系。电子邮件地址,可以吗?Cheers您也可以在jre8中使用jre7中的jdbc odbc类-请参阅stackoverflow.com/a/34617075/2110961