2012-07-04 28 views
2

我讀過幾篇關於使用Spring DataSource獲取Connection的文章。沒有數據的Spring JDBC連接來源

但是在我們的公司設置中,連接對象是通過已經配置好的環境獲得的。以下示例代碼:

​​

因此,在閱讀本tutorial

後我在使用利用連接對象的JdbcTemplate從上面的代碼混淆。

+0

我不能正確解釋問題或問題嗎? –

回答

3

我相信JdbcTemplate並不是按照您的預期設計的。作爲一種解決方法,如果您可以爲您創建的每個連接創建單獨的JdbcTemplate,那麼可以將連接包裝在DataSource的一個薄包裝中,然後將其提供給JdbcTemplate。

我認爲它應該工作,但我還沒有嘗試過呢......

class SingleConnectionDataSource implements DataSource { 
    private Connection connection; 
    public SingleConnectionDataSource(Connection connection) { 
     this.connection = connection; 
    } 

    public Connection getConnection() { 
     return this.connection; 
    } 
    public Connection getConnection(String username, String password) { 
     return this.connection; 
    } 
} 

// at the place you want to use JdbcTemplate 
Connection conn = blablabla; // your own way to get it 
JdbcTemplate jdbcTemplate = new JdbcTemplate(new SingleConnectionDataSource(conn)); 
1

其實,春天已經提供SingleConnectionDataSource實現(已經看到了4.1.7版本)。

它甚至可以讓你抑制通過模板關閉連接。

+0

只有在此主題上的正確答案 – fhanik