2

Spring DataSource を使用して接続を取得することに関するいくつかの記事を読みました。

しかし、会社のセットアップでは、接続オブジェクトは既に構成された環境を介して取得されます。サンプルコードに従う:

 String pool = PropertyFileReader.getPropertyValue("database.properties", "development.connectionPool");

    Connection connection = RequestUtils.getConnection(pool);

したがって、このチュートリアルを読んだ後

上記のコードの接続オブジェクトを使用して JDBCTemplate を使用することに混乱しています。

4

2 に答える 2

3

I believe JdbcTemplate is not designed to work against a Connection as what you expected. As a workaround, if you are fine to create a separate JdbcTemplate for each connection you created, you may wrap your connection in a thin wrapper of DataSource, and feed it to JdbcTemplate.

I think it should work but I haven't tried it anyway...

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));
于 2012-07-10T09:59:59.663 に答える
2

実際、Spring はすでに SingleConnectionDataSource 実装を提供しています (バージョン 4.1.7 で見られます)。

テンプレートによる接続の終了を抑制することもできます。

于 2016-02-17T13:11:46.867 に答える