2011-02-03 35 views
1

我想与resultSetHoldability参数组准备的语句来ResultSet.CLOSE_CURSORS_AT_COMMIT在Spring JDBC中,如何在语句上设置RESULT SET HOLDABILITY?

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

...和相同的方法prepareCall。我目前使用的是Spring的JdbcTemplateSimpleJdbcCall,因为它有方便的declareParameters()execute(Map paramValues)方法。

那么设置resultSetHoldability最简单的方法是什么?

回答

2

最简单的方法是使用的各种query方法上JdbcTemplate内搭一件PreparedStatementCreator对象作为自己的第一个参数之一。

您给它一个PreparedStatementCreator对象,它从所提供的Connection构造出PreparedStatement,并返回该对象,例如,

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

jdbcTemplate.query(psc, ...); 
0

您可以使用以下方法。

execute(ConnectionCallback action) 

的connectioncallback,您可以访问连接对象,其中有一个setHoldability方法

+0

我理解正确吗?我应该在调用任何其他query()或call()方法之前使用自己的连接回调调用execute()?它会使用适当的设置连接呢? – Infeligo 2011-02-03 09:14:18