繁体   English   中英

从Spring jdbc获取java.sql.connection:getJdbcTemplate()

[英]Getting java.sql.connection from Spring jdbc : getJdbcTemplate()

在我的应用程序中,我们尝试从Spring获取java.sql.Connection,

Connection conn = DataSourceUtils.getConnection(this.getJdbcTemplate().getDataSource());

我使用此连接对象来设置准备语句,并执行查询以获取结果集。

我知道这个概念,当我们使用jdbcTemplate时,打开连接,关闭连接等的负担由spring本身承担,我们不需要显式地处理代码。

但是在这种情况下,我有点困惑,因为我们从jdbcTemplate显式地获得了连接对象,我们是否需要在代码中也显式地处理连接的关闭? 我们正在使用连接池。

提前致谢。

蓝光

这取决于您配置的数据源的类型(在您的情况下,它是配置有连接池的数据源),因此DatasourceUtils getConnection使用相同的数据源,因此创建的Connection对象将被池化,如果您对此连接调用close对象,该连接实际上不会关闭,而是将返回到连接池

如上所述,根据如何获得连接,您将关闭连接或将其返回到池中。

但是,当您使用JbbcTemplate时,您根本不需要处理连接,因为Spring会为您处理此问题。

您应该定义一个行映射器来处理所有结果集处理,然后只需在JdbcTemplate上调用适当的方法为您执行该语句。 然后,Spring代码将

  • 为您建立开放的联系
  • 执行查询过程的结果集
  • 使用行映射器将其映射到域对象
  • 关闭结果集
  • 关闭连接或将其返回到池中

请参阅JdbcTemplate的Spring文档,其中详细说明了您必须做什么以及Spring为您做什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM