回复:您的第一个查询(SELECT ... FROM tableName WHERE ...)
在其最简单的形式中,您可以使用 Jackcess 主页面 here 上“示例代码”下的“搜索具有特定列值的行”示例,即,
Table table = DatabaseBuilder.open(new File("my.mdb")).getTable("MyTable");
Row row = CursorBuilder.findRow(table, Collections.singletonMap("a", "foo"));
if(row != null) {
System.out.println("Found row where 'a' == 'foo': " + row);
} else {
System.out.println("Could not find row where 'a' == 'foo'");
}
要遍历多个匹配的行,您可以这样做
Table table = DatabaseBuilder.open(new File("my.mdb")).getTable("MyTable");
Cursor cursor = CursorBuilder.createCursor(table);
while (cursor.findNextRow(Collections.singletonMap("a", "foo"))) {
Row row = cursor.getCurrentRow();
System.out.println(String.format(
"a='%s', SomeFieldName='%s'.",
row.get("a"),
row.get("SomeFieldName")));
}
或者,正如@jtahlborn 在下面的评论中所建议的,
Table table = DatabaseBuilder.open(new File("my.mdb")).getTable("MyTable");
Cursor cursor = CursorBuilder.createCursor(table);
for (Row row : cursor.newIterable().addMatchPattern("a", "foo")) {
System.out.println(String.format(
"a='%s', SomeFieldName='%s'.",
row.get("a"),
row.get("SomeFieldName")));
}
回复:您的第二个查询(SELECT ... FROM table1 INNER JOIN table2 ON ...)
您可以使用一个for 或while 循环(类似于上面)来遍历一个表中的相关行,并使用一个内部for 或while 循环来遍历表中的相关行其他(相关)表。如果这两个表在 Access 中有一个现有的“关系”(又名“外键约束”),Jackcess 有一个可能有帮助的Joiner 类,讨论了here。
如果您需要进一步的帮助,您需要
尝试为自己编写一些代码,然后
ask a new question 显示您尝试使用的代码以及您遇到的
特定问题 .