【问题标题】:Spring - get ResultsSet from querySpring - 从查询中获取结果集
【发布时间】:2012-11-26 11:56:50
【问题描述】:

我想使用SpringJDBCTemplate,但我想收到ResultSet,它不会将完整的查询结果存储在内存中,因为您会发现使用java JDBC执行标准语句。我发现最接近ResultSet 的是

SqlRowSet sqlRowSet = template.getJdbcOperations().queryForRowSet(query, queryParameters);

但这会将整个数据库结果加载到内存中?

【问题讨论】:

  • JDBCTemplate 将在返回结果之前关闭连接,因此据我所知,使用 JDBCTemplate 执行“传统”结果集方法是不可能的。为什么你需要一个结果集?也许可以用不同的方式解决?
  • SimpleJdbcOperations 类有一个 queryForList 方法,你可以使用它,但它不会给你一个 ResultSet

标签: java spring jdbc


【解决方案1】:

如果您想使用 JDBCTemplate 获取 ResultSet 对象,您可以使用以下代码检索 javax.sql.Connection:

Connection conn = jdbcTemplate.getDataSource().getConnection();

您现在可以执行 createStatement() 或preparedStatement() 来获取 ResultSet 对象。 这是我想到的唯一方式。我希望这会对你有所帮助。

【讨论】:

  • 似乎是最简单的方法...我想知道为什么 jdbc 模板没有决定返回 ResultSet
【解决方案2】:

这是你要找的吗?

    JdbcTemplate t = new JdbcTemplate(dataSource);
    t.query("select * from t1", new ResultSetExtractor<Object>() {
        public Object extractData(ResultSet rs) throws SQLException, DataAccessException {
            ... process your rs
            return null;
        }
    });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多