从结果集中过滤行

我创建了一个返回结果集的 java 方法,如下所示:


String query = "SELECT * FROM "+table_name+" WHERE "+parameter+ " = " +condition;

ResultSet rs = stmt.excecuteQuery(query);

return rs;

我的理解是 ResultSet 可以像一个 SQL 表,我正在寻找一种方法来进一步从这个结果集中选择特定的行。


类似于另一种方法:


public ResultSet filterRS (ResultSet rs){

String query = "SELECT * FROM "+rs+" WHERE "+new_parameter+ " = " +new_condition;

ResultSet rs_new = stmt.excecuteQuery(query);

return rs_new;

}

我已经阅读了文档,但没有说明如何执行此操作。有可能以简单的方式吗?


幕布斯6054654
浏览 121回答 2
2回答

慕桂英4014372

请注意:您不应该像那样合并您的查询。您应该像这样绑定语句中的参数:&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;queryString&nbsp;=&nbsp;"SELECT&nbsp;*&nbsp;FROM&nbsp;FOO&nbsp;WHER&nbsp;BAR&nbsp;=&nbsp;?1&nbsp;"; &nbsp;&nbsp;&nbsp;&nbsp;Query&nbsp;q&nbsp;=&nbsp;em.createNativeQuery(queryString); &nbsp;&nbsp;&nbsp;&nbsp;q.setParameter(1,&nbsp;conditionGoesHere); &nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;<Result>&nbsp;result&nbsp;=&nbsp;(TCiletEpsTracking)&nbsp;query.getResultList();获得结果集后,您可以通过多种方式进行操作。我一直采用老式的方法,循环遍历整个结果集,如果满足我的条件,则将条目添加到列表中。不过,如果您使用的是 Java 8,我认为使用流可能更适合您。这里有一些文献:https&nbsp;:&nbsp;//beginnersbook.com/2017/10/java-8-stream-filter/

DIEA

你不能。您需要在第一个查询中指定所有过滤条件,如:select * from my_tableWHERE column1 = x&nbsp; AND column2 = y然后,您运行此 SQL 并获得所需的行。你可以任意组合AND和OR。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java