Как остановить обработку строк в Spring-JDBC? - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть потребитель, который может сказать, что он не хочет обрабатывать больше данных.

Я посмотрел на методы в Spring JdbcTemplate, но не вижу способа сообщить Spring, что я не хочу обрабатывать больше строк, когда я нахожусь в режиме обратного вызова.

Я мог бы выбросить исключение, но тогда jdbcTemplate.query(...) перебросит это исключение, а такое поведение я не желаю.

Есть ли способ принудительно остановить обработку строк, не вызывая исключения?

jdbc.query(sql, new RowCallbackHandler() {

  @Override
  public void processRow(ResultSet rs) throws SQLException
  {
    // TODO how to stop if I want to do it here?
  }}
);

1 Ответ

0 голосов
/ 27 апреля 2018

Взгляните на:

jdbcTemplate.setFetchSize (intValue): Дает драйверу JDBC подсказку о количестве строк, которые следует извлечь из базы данных, когда для объектов ResultSet, генерируемых этим оператором, требуется больше строк Если указанное значение равно нулю, то подсказка игнорируется. По умолчанию значение равно нулю.

jdbcTemplate.setMaxRows (intValue): Устанавливает ограничение на максимальное количество строк, которое любой объект ResultSet генерирует с помощью этого оператора Объект может содержать до заданного числа. Если предел превышен, лишние строки отбрасываются.

Я думаю, что jdbcTemplate.setMaxRows (intValue) может быть полезным для ваших требований.

...