不使用 UCanAccess 从 Java 8 连接到 Access 数据库

Posted

技术标签:

【中文标题】不使用 UCanAccess 从 Java 8 连接到 Access 数据库【英文标题】:Connect to an Access database from Java 8 without using UCanAccess 【发布时间】:2015-08-22 15:01:02 【问题描述】:

我正在尝试使用 Java 8 连接到本地 .mdb 文件。到目前为止,我使用了 UCanAccess 的库,但并非所有功能都受支持。

在 Java 8 中“JDBC/ODBC 被废弃”...所以我的问题是:

连接到.mdb 文件的新方法是什么(没有UCanAccess)?

【问题讨论】:

我提出这个问题的主要原因是因为net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.0 feature not supported 查看***.com/questions/21955256/…。这可能会有所帮助。 究竟是什么 sql 导致了 feature not supported 异常?在许多情况下,ucanaccess 还有另一种方式(但不是没有) @jamadei Select TOP 1 语句,语法没有问题 (cc: @jamadei) 我刚刚使用 UCanAccess 3.0.0 进行了测试,SELECT TOP 1 id FROM tablename ORDER BY id 对我来说效果很好。 UCanAccess 不支持TOP 1 PERCENT(至少目前还不支持),但TOP 1 肯定支持。 【参考方案1】:

如果您真的不想使用 UCanAccess,那么您可能不得不购买第三方库

替换从 Java 8 中删除的 JDBC-ODBC 桥,或

提供与 Access 数据库的直接 JDBC 连接。

但是,正如 Marco 在对问题的评论中所指出的那样,如果您愿意向我们提供有关它们是什么的提示,那么很可能有 UCanAccess(或 HSQLDB)解决您的“功能不受支持”问题的方法。

【讨论】:

那么人们现在如何连接到数据库文件呢?我知道java8去掉了具体的支持,但是现在没有别的办法了吗?我听说的“数据库访问革命”在哪里?老实说,我认为在 v9 之前切换回 java 7 可能是一个更好的选择(如果这改变了任何东西) “那么人们现在如何连接到 DB 文件?” 他们通常使用 JDBC 驱动程序从 Java 8 连接。 “我听说的‘数据库访问革命’在哪里?” 你是什么意思?你能引用一两个参考吗? “老实说,我认为在 v9 之前切换回 Java 7 可能是一个更好的选择(如果这会改变任何东西的话)” JDBC-ODBC 桥从未真正得到支持,最终从 Java 8 中删除。它在 Java 9 中重新引入确实非常苗条。 我想我会留下它,我误解了J / ODBC的应用程序。感谢您的宝贵时间

以上是关于不使用 UCanAccess 从 Java 8 连接到 Access 数据库的主要内容,如果未能解决你的问题,请参考以下文章

带有 UCanAccess 的 java.util.regex.PatternSyntaxException

如何将 UCanAccess 连接到使用数据库密码加密的 Access 数据库?

java.lang.ClassNotFoundException:net.ucanaccess.jdbc.ucanaccessDriver

使用 UCanAccess 连接到数据库时出现“无效页码 1”错误

使用 Ucanaccess 通过 android 设备连接到本地服务器上的 mdb

jdbc/Jackcess/Ucanaccess - 无法连接到链接到共享点列表的访问表