Spring中JdbcTemplate如何处理大结果集呢?
下文笔者讲述Spring中JdbcTemplate如何查询大结果集呢?下文笔者将一一道来,如下所示
JdbcTemplate普通查询结果集
public list<Book> findAll() { return jdbcTemplate.query( "select * from shopgoods", (rs, rowNum) -> new Book( rs.getLong("id"), rs.getString("name"), rs.getBigDecimal("price") ) ); } //以上查询方式,是一次性全部检索数据 //对数据量小的情况,还可以适用,当数据很大时,则会产生相应的异常信息java.lang.OutOfMemoryError: Java heap space
JDBC Template查询大数据
//使用RowCallbackHandler逐行处理的方式 //即可避免OOM的错误,采用这种方式处理大型ResultSet import org.springframework.jdbc.core.RowCallbackHandler; jdbcTemplate.query("select * from shopgoods", new RowCallbackHandler() { public void processRow(ResultSet resultSet) throws SQLException { while (resultSet.next()) { String name = resultSet.getString("Name"); // process it } } });
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。