我有一个 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/