从Spring-JDBC获取结果集

7
我正在使用Spring对JDBC的支持。我想使用JdbcTemplate(或SimpleJdbcTemplate)来执行查询并将结果作为ResultSet实例获取。
我唯一能想到的方法是使用:
String sql = "select * from....";
SqlRowSet results = jdbcTemplate.queryForRowSet(sql);
((ResultSetWrappingSqlRowSet) results).getResultSet();

这种方法的明显缺点是需要我做一个关于SqlRowSet实现类型的假设(通过转换),但有更好的方法吗?
背景信息...
我想获取结果作为ResultSet,而不是一组bean的原因是结果将被传递直接到Jasper报告进行显示。换句话说,Java bean将仅用于临时存储ResultSet中的每一行,并且如果可能的话,我想避免为每个Jasper报告创建这样的bean。
谢谢,唐
2个回答

3
如果您只想执行查询并获取结果,为什么不使用普通的JDBC并获取结果集呢?请注意,您不需要Spring来执行此操作。
    Connection c = ...
    c.prepareCall("select ...").getResultSet();

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

1

你可以在JdbcTemplate回调(如ResultSetExtractor)中调用Jasper,也可以使用直接的JDBC将ResultSet传递给Jasper。无论哪种方式,当你调用Jasper时,你与数据库的连接仍然处于活动状态,直到报告完成。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接