Spring中JdbcTemplate如何处理大结果集呢?

乔欣 Spring 发布时间:2023-02-06 09:56:57 阅读数:222 1
下文笔者讲述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
			}
		}
	});
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/Spring/202302/5673.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者