java - 如何使用 Jackcess 从查询而不是从表中检索数据

标签 java ms-access jackcess

我有一个 Access 数据库,为了使工作更容易,我对数据库进行了查询。如何从查询而不是从表中获取数据?

为了从表中获取数据,我使用了以下代码:

Table table = db.getTable("matchTable");
Cursor cursor = CursorBuilder.createCursor(table);

while (cursor.findNextRow(Collections.singletonMap("idMatch", 15))) {
       Row row = cursor.getCurrentRow();
       ...
}

最佳答案

根据 Jackcess FAQ(具体来说,here):

Can Jackcess execute SQL queries?

As of the 1.1.19 release, Jackcess has the ability to read the Queries saved in an Access database (i.e. interpret the data stored in the system Queries table). However, Jackcess does not have the ability to execute these Queries.

这意味着 Jackcess 可以检索与 Access 中保存的查询关联的 SQL 代码,但 Jackcess 不能执行该 SQL 代码(或返回其结果)。

换句话说,如果我们在 Access 中保存了一个名为 [MySavedQuery] 的查询,那么 Jackcess 可以检索包含 SQL 命令的 String,例如,

SELECT * FROM Customers WHERE City='wherever'

但 Jackcess 无法执行该命令以实际返回该查询的结果。此外,Jackcess 方法 db.getTable() 可以打开 Access ,但它不能像打开表一样打开已保存的查询。

然而,UCanAccess可以执行保存的 Access 查询并返回其结果。也就是说,UCanAccess 可以

SELECT * FROM MySavedQuery

关于java - 如何使用 Jackcess 从查询而不是从表中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23240293/

相关文章:

java - 什么是 "typing models"?

java - Box2d libgdx,对像素到米的东西有点困惑

ms-access - 过滤子表单、开头、多个条件

c - 从 PLC(OPC 客户端服务器 Kepware)传输到 MS Access,C

java - 使用 Jackcess 在 Java 中为条件循环结果集

java - 为什么这个 while 循环不会中断?

java - 显示24小时格式的时间?

ms-access - 从匹配记录中返回特定字段

java - UCanAccess/Jackcess 在 Access 中创建查看/保存查询

java - 在 jackcess 中查找带有是/否类型列的行