我最近开始使用Java中的Jackcess库来处理MS Access数据库。该库非常好,但我有一个关于搜索行的问题。
假设我在名为 X 的列的一行中有"杰克爱苹果",我将使用哪段代码来搜索包含"苹果"一词的所有 X 行?我知道这可以在 SQL 中使用通配符轻松完成,但由于无法在 Jackcess 中使用 SQL 查询,因此这不是一个有效的选择。
我考虑过使用 UCanAccess,但我对库有问题,即使我在加载数据库时使用"memory=false"选项,它仍然需要近 1.4GB 的内存。
@centic的答案在jackcess版本3.5.0之前是准确的。 从 3.5.0 版本开始,您可以使用新的 PatternColumnPredicate 类通过游标执行各种通配符/模式/正则表达式搜索。
使用 Jackcess,您需要迭代行并自己应用过滤器。只要你的过滤器是相当静态的,这应该很容易构建。