Hibernate数据源连接没有关闭

时间:2016-03-11 00:55:04

标签: java spring hibernate

我有这个问题,当@Predestroying我的应用程序数据源连接没有关闭时,有什么想法吗?

@PreDestroy
public void freeDatasource()  {


    try {
        System.out.println("---------"+ds.getConnection().isClosed());
        ds.getConnection().close();                             
        System.out.println("-------"+ds.getConnection().isClosed());

    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
         }

输出是: - - -假 ----假

三江源

1 个答案:

答案 0 :(得分:1)

这是因为每次调用ds.getConnection()时,您的dataSource都将返回池中的一个连接实例。因此,如果您想测试连接是否关闭,您最好将其分配给变量然后进行测试。

public void freeDatasource()  {

Connection conn = ds.getConnection;
    try {
        System.out.println("---------"+conn.isClosed());
        conn.close();                             
        System.out.println("-------"+conn.isClosed());

    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
         }