从 Spring-JDBC 获取结果集

Dón*_*nal 6 java spring jdbc jasper-reports

我正在使用 Spring 对 JDBC 的支持。我想使用JdbcTemplate(或 SimpleJdbcTemplate)来执行查询并获取结果作为 ResultSet 的实例。

我可以看到实现这一目标的唯一方法是使用:

String sql = "select * from....";
SqlRowSet results = jdbcTemplate.queryForRowSet(sql);
((ResultSetWrappingSqlRowSet) results).getResultSet();
Run Code Online (Sandbox Code Playgroud)

这种方法的一个明显缺点是它需要我对 SqlRowSet 的实现类型进行假设(通过强制转换),但有没有更好的方法?

背景资料...

我想以 ResultSet 而不是 bean 集合的形式获取结果的原因是,结果将直接传递给 Jasper 报告进行显示。换句话说,Java bean 只会用于临时存储 ResultSet 中的每一行,如果可能的话,我想避免为每个 Jasper 报告创建这样的 bean。

干杯,唐

Mig*_*ing 3

如果您只想执行查询并获取结果,为什么不使用普通 jdbc 并获取结果集呢?请注意,您不需要 spring 来完成此操作。

    Connection c = ...
    c.prepareCall("select ...").getResultSet();
Run Code Online (Sandbox Code Playgroud)

此外,使用对象作为 DTO 也有优势。即使您的数据访问或报告工具发生变化,您也不需要更改 DTO 类(假设您开始使用 xquery 而不是 jdbc,或者使用 apache-poi 而不是 jasper)。