2011-02-03 40 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