Фильтрация строк из набора результатов - PullRequest
0 голосов
/ 17 октября 2018

Я создал метод 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;
}

Я прочитал документы, но ничего не говорится о том, как это сделать.Возможно ли это простым способом?

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Нет, вы не можете.

Вам необходимо указать все условия фильтрации в первом запросе, например:

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

Затем вы запускаете этот SQL и получаете строкиты хочешь.Вы можете иметь любую комбинацию AND и OR.

0 голосов
/ 17 октября 2018

Просто примечание: вам не следует так задавать вопросы.Вы должны связать аргументы в выражении следующим образом:

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

Как только вы получите набор результатов, есть несколько способов сделать это.Я всегда шел по старому пути, перебирая весь набор результатов и добавляя записи в список, если они удовлетворяют моим условиям.

Если вы используете Java 8, используя потоки Iдумаю, может быть лучше для вас.Вот немного литературы здесь: https://beginnersbook.com/2017/10/java-8-stream-filter/

...