在Spring中,在datasource xml中以下列方式创建bean时,它是否也建立了与数据库的连接? 如果它打开数据库连接,那么它是如何关闭的?
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin@localhost:1521/myoracledb" />
<property name="username" value="root" />
<property name="password" value="password" />
</bean>
rs.close();, ps.close();和conn.close();在finally块中保证连接关闭,其中rs是ResultSet对象,ps是PreparedStatement对象,conn是Connection对象。
我正在使用普通的JDBC(使用Spring-Datasource.xml)和springMVC,并且面临一些与数据库保持打开状态的连接问题。
还有其他方法可以确保数据库连接在此过程中保持关闭状态吗?
答案 0 :(得分:1)
第一件事
datasource
中的spring-context.xml
配置提供标准JDBC DataSource interface
的简单实施,通过JDBC Driver
配置普通的bean properties
,并返回{{ 1}}用于每次new Connection
来电。
每次执行getConnection
时,都会为您建立新连接。
其次
在finally块中使用(datasourceObject.getConnection()
,rs.close()
和)ps.close()
可确保连接关闭。
是的,这就是为什么建议关闭conn.close()
中的connection
,因为即使在某些finally
的情况下,Exception
块也会被执行,释放资源