以下代码,当我关闭Connection之后session 还存在,请问什么原因?public class CursorQueryRunner {    private Connection con;
    private ResultSet rs;    ...
 
    ...
    一系列处理...    public void close() throws SQLException {
    
        if (rs != null) {
            rs.close();
        }
        if (!autoClose) {
            return;
        }
       
        // 查看存在的session个数 (这时为1)
        int i = TransactionController.getOpenSessionCount();
   
        if (con != null && !con.isClosed()) {
            con.close();
        }
        // 关闭之后再次查看存在的session个数 (这时还是为1)
         int y = TransactionController.getOpenSessionCount();
    }
}  请各位指点到底是什么原因,应该怎么改?? 
  解决马上给分!! 急急!!!!

解决方案 »

  1.   

    TransactionController.getOpenSessionCount(); 这个方法代码呢?
      

  2.   


    public class TransactionController implements TransactionControllerIF {    //
        private Connection con;
        //
        private static int openCount = 0;      ...    // 比如有连接connection的处理就累加
         openCount++;
        ...
      
       public static int getOpenSessionCount() {
            return openCount;
        }}
      

  3.   


    只看到了count++ ,没有看到count--之类的。
      

  4.   

     private static int openCount = 0;  静态变量关闭的时候应该把静态变量的值清空
      

  5.   

    To:joejoe1991 那个 ... 一系列处理中有 count-- 处理,
    但是我不确定有没有调用了那里,,我再查一下,
      

  6.   

    To : wdz567 在其他叶面调用这个class后最后openCount 会回到0的。
    一定要清空吗?
      

  7.   

    应该是你关掉connection 之后没有调用count--
      

  8.   


    我在增加了以下代码,   
    public class TransactionController implements TransactionControllerIF { 
        
       ...   // Add   
       public static int removeOpenSessionCount() {
            openCount--;
            return openCount;
        }   ...}经过测试session值变回了0;但是疑问, 改动之前,当我关闭Connection 既执行 con.close();之后,
    session count数为1,
    这只是count数没有进行减算,发生的问题吗?实际 con.close(); 的话session还会存在吗??
      

  9.   


    关闭了connection,session还在。只不过不可用了。。