程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 讓我感覺很爽的CachedRowSet

讓我感覺很爽的CachedRowSet

編輯:關於JAVA

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved