2012-07-04 3 views
2

Я прочитал несколько статей о получении соединения с использованием Spring DataSource.Соединение Spring JDBC без dataSource

Но в нашей установке, объект подключения получен через уже настроенную среду. После кода образца:

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

    Connection connection = RequestUtils.getConnection(pool); 

Таким образом, после прочтения этого 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

Смежные вопросы