如何关闭JNDI连接?

时间:2015-04-12 13:45:31

标签: jdbc jndi

我正在使用JNDI进行数据库连接。我在META-INF中创建了一个用于连接的XML文件。

<?xml version="1.0" encoding="UTF-8"?>
<!-- The contents of this file will be loaded for each web application -->
<Context crossContext="true">

    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>

    <Resource name="jdbc/myDB" auth="Container"
        type="javax.sql.DataSource"
        maxActive="100" maxIdle="30" maxWait="600000"
        username="root" 
        password="abc123" 
        driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost:3306/game"/>
</Context>

在java类中,我使用以下代码来获取连接

    Context envContext;
    Datasource ds;
    envContext = new InitialContext();
    Context initContext  = (Context)envContext.lookup("java:/comp/env");
    DataSource ds = (DataSource)initContext.lookup("jdbc/myDB");
    Connection con=ds.getConnection();

但是,我该如何关闭连接呢?

1 个答案:

答案 0 :(得分:2)

DataSource将负责管理与数据库的物理连接。当您呼叫con.close必须)时,物理连接将返回到池并将连接设置为休眠状态。如果连接已关闭,DataSource将负责获取新连接(如果可能)。

简而言之,您不必担心关闭物理连接。