spring jdbc中的双向结果集

Posted

技术标签:

【中文标题】spring jdbc中的双向结果集【英文标题】:bidirectional resultset in spring jdbc 【发布时间】:2015-04-01 19:12:44 【问题描述】:

我们在 spring jdbc 代码中使用 NamedParmae​​terJdbcTemplate。默认情况下,它只返回向前的结果集。我们可以在任何地方(不覆盖 NamedParameterJdbcTemplate)配置 spring jdbc 中结果集的类型吗?

我们正在使用以下方法。

query(String sql, SqlParameterSource paramSource, ResultSetExtractor<T> rse)
    throws DataAccessException

【问题讨论】:

你检查设置ResultSet.TYPE_SCROLL_INSENSITIVE了吗? 在哪里可以配置 spring 以使用 TYPE_SCROLL_INSESNITIVE? 【参考方案1】:

NamedParameterJdbcTemplate 不够灵活,无法做到这一点,因为它使用硬连线的PreparedStatementCreatorFactory 对象来创建语句。您需要能够调用 PreparedStatementCreatorFactory #setResultSetType 才能获得可滚动的结果集。

继承NamedParameterJdbcTemplate 并覆盖getPreparedStatementCreator 方法以创建正确配置的PreparedStatementCreatorFactory 是完成您想做的事情的唯一方法。

【讨论】:

以上是关于spring jdbc中的双向结果集的主要内容,如果未能解决你的问题,请参考以下文章

JDBC结果集

如何从 Java JDBC 中的 callableStatement 获取滚动不敏感的结果集?

JDBC API 可滚动可编辑的结果集

JDBC——ResultSet结果集对象

PostgreSQL & JDBC“查询返回了多个结果集”

将JDBC ResultSet结果集转成List