在我的应用程序中,我们试图从Spring获取java.sql.Connection,
Connection conn = DataSourceUtils.getConnection(this.getJdbcTemplate().getDataSource());
我使用此连接对象来设置准备状态并执行查询以获取结果集。
我知道当我们使用jdbcTemplate时,打开连接,关闭连接等的负担由spring本身承担,我们不需要明确处理代码。
但在这种情况下我有点困惑,因为我们从jdbcTemplate显式获取连接对象,我们是否还需要在代码中明确处理连接关闭?我们正在使用连接池。
提前致谢。
BD
答案 0 :(得分:1)
这取决于您配置的数据源类型(在您的情况下是配置了连接池的数据源),因此DatasourceUtils getConnection使用相同的数据源,因此您创建的Connection对象将被合并,这意味着如果您调用close在此连接对象上,连接实际上不会被关闭,而是将返回到连接池
答案 1 :(得分:1)
如上所述,取决于如何获得连接,您将关闭连接或将其返回到池中。
但是当你使用JbbcTemplate时,你根本不需要处理连接,因为Spring会为你处理这个。
您应该定义一个行映射器来处理所有结果集处理,然后在JdbcTemplate上调用适当的方法来为您执行语句。然后,Spring代码将
请参阅Spring documentation for JdbcTemplate,其中详细说明了您必须做什么以及Spring为您做了什么。