У меня есть следующий код:Как использовать одно и то же соединение с JdbcTemplate Spring?
@Test
public void springTest() throws SQLException{
//Connect to the DB.
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("org.h2.Driver");
dataSource.setUrl("jdbc:h2:/data/h2/testa");
dataSource.setUsername("");
dataSource.setPassword("");
JdbcTemplate jt=new JdbcTemplate(dataSource);
jt.execute("SELECT 1");
jt.execute("SELECT 1");
}
Я ожидаю, что два Execute() линии для повторного использования того же соединения. Тем не менее, выход журнала говорит:
2011-02-10 12:24:17 DriverManagerDataSource [INFO] Loaded JDBC driver: org.h2.Driver 2011-02-10 12:24:17 JdbcTemplate [DEBUG] Executing SQL statement [SELECT 1] 2011-02-10 12:24:17 DataSourceUtils [DEBUG] Fetching JDBC Connection from DataSource 2011-02-10 12:24:17 DriverManagerDataSource [DEBUG] Creating new JDBC DriverManager Connection to [jdbc:h2:/data/h2/testa] 2011-02-10 12:24:17 DataSourceUtils [DEBUG] Returning JDBC Connection to DataSource 2011-02-10 12:24:17 JdbcTemplate [DEBUG] Executing SQL statement [SELECT 1] 2011-02-10 12:24:17 DataSourceUtils [DEBUG] Fetching JDBC Connection from DataSource 2011-02-10 12:24:17 DriverManagerDataSource [DEBUG] Creating new JDBC DriverManager Connection to [jdbc:h2:/data/h2/testa] 2011-02-10 12:24:17 DataSourceUtils [DEBUG] Returning JDBC Connection to DataSource
Приведенный выше пример работает довольно быстро, но у меня есть больший кусок кода, который делает в основном то же самое и вешает в течение длительного времени на Creating new JDBC DriverManager Connection
. Я никогда не получаю ошибку, но это заставляет код работать очень медленно. Могу ли я как-то реорганизовать вышеуказанный код, чтобы просто использовать одно и то же соединение?
Благодаря
Это легкая смена, и она, похоже, сработала. Это поточно-безопасный? – User1
Это поточно-безопасный, так как это пул соединений. :) Я тоже использовал это в своих тестовых примерах, предоставил мне проводник 'dataSource' вместо его программного создания. – limc
Ничего себе, мой большой код только что получил как 100 раз быстрее! – User1