如何停止在 Spring-JDBC 中处理行?

9il*_*0lo 6 java spring jdbc spring-jdbc

我有一个消费者可以说他不想处理更多数据。

我已经查看了 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?
  }}
);
Run Code Online (Sandbox Code Playgroud)

jua*_*umn 0

看看:

jdbcTemplate.setFetchSize(intValue):当此语句生成的 ResultSet 对象需要更多行时,向 JDBC 驱动程序提供有关应从数据库获取的行数的提示。如果指定的值为零,则忽略提示。默认值为零。

jdbcTemplate.setMaxRows(intValue):将此 Statement 对象生成的任何 ResultSet 对象可以包含的最大行数限制设置为给定数量。如果超出限制,多余的行将被静默删除。

我认为jdbcTemplate.setMaxRows(intValue)可能对您的要求有所帮助。