让我感觉很爽的CachedRowSet

80酷酷网    80kuku.com

  cache
作者:fbysssBlog:blog.csdn.net/fbysss声明:本文章由fbysss原创,转载或引用请注明引用地址。

问题:在DBmanager.java中写了一个getResultSet方法,为的就是不用每次在页面中去释放连接。然而,在不同的操作系统环境下,不一定好使,比如在windows下,ResultSet是可以脱离connection继续使用的,但linux下就不行。如果要修改为Collection所有的页面都要进行修改,其改动量可想而知,这是我及其不愿意看到的。怎么办?幸好,我查到了CachedRowSet。是它救了我。最棒的是,CachedRowSet继承自ResultSet,我只需要修改核心方法,页面一点不用改动!代码:   /**     * 获取     * return ResultSet     */    //public ResultSet getResultSet(String _sSQL) throws Exception {    public ResultSet getResultSet(String _sSQL) throws Exception {

        System.out.println("-------返回数据集-------rowset1.0");        Connection vConn = getConnection();        try {            /*PreparedStatement pstmt = vConn.prepareStatement(_sSQL,            ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);            ResultSet rs = pstmt.executeQuery();*/            CachedRowSet crs = new CachedRowSetImpl();

            crs.setUrl(sUrl);            crs.setUsername(sUserName);            crs.setPassword(sPassword);            crs.setCommand(_sSQL);            crs.execute(vConn);            return crs;/*                        crs.release();            crs.populate(rs);            return crs; }*/        } catch (Exception ex) {            throw new Exception("获取CachedRowSet时出错。:" + ex.toString() +                                "\n sql:" +                                _sSQL);        } finally {            freeConnection(vConn);        }    }



分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: