让我感觉很爽的CachedRowSet

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航