В Spring JDBC, как установить RESULT SET HOLDABILITY для операторов? - PullRequest
1 голос
/ 03 февраля 2011

Я хотел бы подготовить операторы с параметром resultSetHoldability, установленным на ResultSet.CLOSE_CURSORS_AT_COMMIT:

PreparedStatement stmnt = conn.prepareStatement(sql, resultSetType, resultSetConcurrency,
    ResultSet.CLOSE_CURSORS_AT_COMMIT)

... и то же самое для prepareCall.В настоящее время я использую JdbcTemplate и SimpleJdbcCall Spring, потому что он имеет такие удобные declareParameters() и execute(Map paramValues) методы.

Итак, какой самый простой способ установить resultSetHoldability?

Ответы [ 2 ]

2 голосов
/ 03 февраля 2011

Самый простой способ - использовать один из различных методов query для JdbcTemplate, которые принимают объект PreparedStatementCreator в качестве первого аргумента.

Вы даете ему объект PreparedStatementCreator, который создает PreparedStatement из предоставленного Connection и возвращает его, например,

PrepatedStatementCreator psc = new PrepatedStatementCreator() {
   public PreparedStatement createPreparedStatement(Connection conn) {
      return conn.prepareStatement(sql, resultSetType, resultSetConcurrency, 
          resultSetHoldability);
   }
}

jdbcTemplate.query(psc, ...);
0 голосов
/ 03 февраля 2011

Вы можете использовать следующий метод.

   execute(ConnectionCallback action)

Обратный звонок от соединения дает вам доступ к объекту соединения, у которого есть setHoldability метод

...