Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
让我感觉很爽的CachedRowSet

作者:未知 来源:月光软件站 加入时间:2005-5-13 月光软件站

作者:fbysss
Blog: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);
        }
    }




相关文章

相关软件