【发布时间】:2011-06-25 01:46:30
【问题描述】:
我有以下代码:
@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] 加载的 JDBC 驱动程序:org.h2.Driver 2011-02-10 12:24:17 JdbcTemplate [DEBUG] 执行 SQL 语句 [SELECT 1] 2011-02-10 12:24:17 DataSourceUtils [DEBUG] 从数据源获取 JDBC 连接 2011-02-10 12:24:17 DriverManagerDataSource [DEBUG] 创建新的 JDBC DriverManager 连接到 [jdbc:h2:/data/h2/testa] 2011-02-10 12:24:17 DataSourceUtils [DEBUG] 返回 JDBC 连接到 DataSource 2011-02-10 12:24:17 JdbcTemplate [DEBUG] 执行 SQL 语句 [SELECT 1] 2011-02-10 12:24:17 DataSourceUtils [DEBUG] 从数据源获取 JDBC 连接 2011-02-10 12:24:17 DriverManagerDataSource [DEBUG] 创建新的 JDBC DriverManager 连接到 [jdbc:h2:/data/h2/testa] 2011-02-10 12:24:17 DataSourceUtils [DEBUG] 返回 JDBC 连接到 DataSource上面的例子运行得非常快,但是我有一段更大的代码,它基本上做同样的事情,并且在Creating new JDBC DriverManager Connection 上挂了很长时间。我从来没有收到错误,但它使代码运行非常缓慢。我可以以某种方式重构上述代码以仅使用相同的连接吗?
谢谢
【问题讨论】: