在过滤类中,我已经决定;出于功能目的,首先从表中获取所有数据,然后使用类本身过滤此结果。我有一个代表表中所有数据的对象列表;我想知道过滤这些结果以将它们添加到 jTable 中的最快或更有效的方法是什么。
我正在寻找它来模仿 SQL 中的“Like”指令,以及 Java 编程。
DBMS 可以具有使过滤和排序更快的索引。主要的 DBMS 肯定拥有成熟和彻底开发的算法。因此在 SQL 中进行过滤和排序会更加高效。
另一方面,如果您计划缩小搜索结果,那么通过 Java 集合 API 对 DB 和后续迭代进行第一次迭代(或多次迭代)似乎是合理的。但是您应该以某种方式跟踪您的基本结果集(通过 SQL 获取)是否仍然相关。
无论如何,通过 Internet 从 DB 获取 100 000 条记录只是为了选择其中的 50 条听起来并不好。
SQL 在过滤方面总是比 JAVA 快。
收集您需要的数据,不多也不少。
为了模仿LIKE
,您将不得不遍历所有对象,然后在您所在的字段上,您必须使用String.match之类的东西来查看字段是否符合过滤条件。
正如 Robin 所说,在 SQL 中执行此操作比将所有内容从数据库中提取到 Java 中并在 Java 中进行过滤更有效。