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