在spring datasource xml中创建bean是否打开了与数据库的连接?

时间:2014-07-31 17:37:22

标签: java database spring jdbc spring-jdbc

在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,并且面临一些与数据库保持打开状态的连接问题。

还有其他方法可以确保数据库连接在此过程中保持关闭状态吗?

1 个答案:

答案 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块也会被执行,释放资源