从结果集中筛选行

rqmkfv5c  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(280)

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

String query = "SELECT * FROM "+table_name+" WHERE "+parameter+ " = " +condition;
ResultSet rs = stmt.excecuteQuery(query);
return rs;

我的理解是resultset可以像sql表一样,我正在寻找一种方法来进一步从这个resultset中选择特定的行。
类似于另一种方法:

public ResultSet filterRS (ResultSet rs){
String query = "SELECT * FROM "+rs+" WHERE "+new_parameter+ " = " +new_condition;
ResultSet rs_new = stmt.excecuteQuery(query);
return rs_new;
}

我读过文件,但里面没有提到怎么做。有没有可能用一种简单的方法?

lzfw57am

lzfw57am1#

请注意:您不应该这样处理您的查询。您应该这样绑定语句中的参数:

String queryString = "SELECT * FROM FOO WHER BAR = ?1 ";
    Query q = em.createNativeQuery(queryString);
    q.setParameter(1, conditionGoesHere);
    List <Result> result = (TCiletEpsTracking) query.getResultList();

一旦你有了结果集,有几种方法可以做到。我总是走老式的方法,在整个结果集上循环,如果它们符合我的条件,就向列表中添加条目。
不过,如果您使用的是Java8,那么使用流可能会对您更好。以下是一些文献:https://beginnersbook.com/2017/10/java-8-stream-filter/

fcy6dtqo

fcy6dtqo2#

不,你不能。
您需要在第一个查询中指定所有筛选条件,如中所示:

select * from my_table
WHERE column1 = x
  AND column2 = y

然后,运行这个sql,得到所需的行。你可以有 AND 以及 OR .

相关问题