在 Jackcess 中有使用 wildcards/regex 的正确方法吗?
Is there a proper way to use wildcards/regex in Jackcess?
我最近开始使用 Java 中的 Jackcess 库来处理 MS Access 数据库。该库非常好,但我有一个关于搜索行的问题。
假设我在名为 X 的列的一行中有“Jack loves apples”,我将使用哪一段代码来搜索 X 中包含单词“apples”的所有行?我知道这可以在 SQL 中使用通配符轻松完成,但是由于无法在 Jackcess 中使用 SQL 查询,所以这不是一个有效的选项。
我考虑过使用 UCanAccess,但我的库有问题,即使我在加载数据库时使用“memory=false”选项,它仍然需要将近 1.4GB 的内存。
使用 Jackcess,您需要迭代行并自行应用过滤器。只要你的过滤器是相当静态的,这应该很容易构建。
@centic 的回答在 jackcess 版本 3.5.0 之前都是准确的。从 3.5.0 版本开始,您可以使用新的 PatternColumnPredicate class 使用游标进行各种 wildcard/pattern/regex 搜索。
我最近开始使用 Java 中的 Jackcess 库来处理 MS Access 数据库。该库非常好,但我有一个关于搜索行的问题。
假设我在名为 X 的列的一行中有“Jack loves apples”,我将使用哪一段代码来搜索 X 中包含单词“apples”的所有行?我知道这可以在 SQL 中使用通配符轻松完成,但是由于无法在 Jackcess 中使用 SQL 查询,所以这不是一个有效的选项。
我考虑过使用 UCanAccess,但我的库有问题,即使我在加载数据库时使用“memory=false”选项,它仍然需要将近 1.4GB 的内存。
使用 Jackcess,您需要迭代行并自行应用过滤器。只要你的过滤器是相当静态的,这应该很容易构建。
@centic 的回答在 jackcess 版本 3.5.0 之前都是准确的。从 3.5.0 版本开始,您可以使用新的 PatternColumnPredicate class 使用游标进行各种 wildcard/pattern/regex 搜索。