发下错误信息啊.另外在OperateJDBC中s = con.createStatement();出现错误也不一定是Statement没关,也有可能是CON对象有问题啊.
从楼主的代码上看不到有什么不对的地方

解决方案 »

  1.   

    你要确保closeConnection()是被调用了OperateJDBC类的其他方法,也就是closeConnection()应该被写到finally中。另外我觉得你没有必要把execute,getResultSet和closeConnection的逻辑分开,你将他们分开的目的是从性能方面上考虑的,但这样逻辑上比不好看,我觉得你应当引入数据库连接池的技术,这样可以使你的程序更好一点。
      

  2.   

    我觉得数据库操作方法返回ResultSet 很不好,因为你需要取外面关闭ResultSet ,我都是返回对象的集合List<...>,这样就可以在数据库操作的类里面吧结果集、statement和连接全部释放掉,就像你写的关闭方法closeConnection(),其他方法在finally{}里调用就OK了。
      

  3.   


    public List<User> findUsers(){
    try{
    //查询代码
    }
    catch(Exception e){
    //异常处理
    }finally{
    //释放资源,调用写好的方法。
    this.closeConnection();
    }
    return ...;
    }
      

  4.   

    查询集合的时候 把数据保存在List对象里面  然后每次操作完数据库都在finally里面关闭
      

  5.   

    lz   closeConnection()这个方法又被调用吗