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

Java 如何使用Jackcess从查询中检索数据,而不是从表中检索数据,java,ms-access,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

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

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

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

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

根据Jackcess常见问题解答(具体来说,):

Jackcess可以执行SQL查询吗

自1.1.19版本起,JackAccess能够读取Access数据库中保存的查询(即解释存储在系统查询表中的数据)。但是,Jackcess无法执行这些查询

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

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

选择*FROM Customers WHERE City='WHERE'
但是Jackcess无法执行该命令来实际返回该查询的结果。另外,Jackcess方法
db.getTable()
可以打开一个访问表,但它不能像打开一个表一样打开一个保存的查询

但是,您可以执行保存的Access查询并返回其结果。也就是说,UCanAccess可以做到

从MySavedQuery中选择*

所以在我的情况下我可以,因为查询在Access数据库中,但我应该怎么做?@Shiroga我更新了我的答案,试图让它更清楚:JackAccess无法返回Access保存的查询的结果。UCanAccess也适用于Linux?