【发布时间】:2010-01-26 14:05:23
【问题描述】:
如果我像这样创建 JdbcTemplate 的新实例;
JdbcTemplate jdbcTemplate = new JdbcTemplate(getDataSource());
通过将数据源作为参数传递(数据源从服务器连接池中检索连接),我是否需要在完成连接后关闭连接?
换句话说,如果我有一个连接池,之前的代码会导致我的应用程序在每次请求执行代码时创建一个新连接
【问题讨论】:
如果我像这样创建 JdbcTemplate 的新实例;
JdbcTemplate jdbcTemplate = new JdbcTemplate(getDataSource());
通过将数据源作为参数传递(数据源从服务器连接池中检索连接),我是否需要在完成连接后关闭连接?
换句话说,如果我有一个连接池,之前的代码会导致我的应用程序在每次请求执行代码时创建一个新连接
【问题讨论】:
没有。这就是全部。使用 JdbcTemplate,它将管理资源(连接、PreparedStatement、ResultSet)。它是template method design pattern 的实现。
它简化了 JDBC 的使用并有助于避免常见错误。它 执行核心 JDBC 工作流,离开 应用程序代码提供 SQL 和 提取结果。
【讨论】:
我所做的是扩展 JdbcTemplate 并覆盖执行方法以使用连接池(特殊情况)。
【讨论】:
JdbcTemplate will be injected with a DataSource 是 org.apache.commons.dbcp.BasicDataSource 类的一个实例,因此已经实现了连接池。