国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

運用Java 5 RowSet新特性訪問DB2

2019-11-18 12:16:15
字體:
來源:轉載
供稿:網友

  RowSet 新特性簡介

  java 5在Java Database Connectivity (JDBC)方面加強了支持,其中加入了新的包javax.sql.rowset,javax.sql.rowset.serial,javax.sql.rowset.spi。從RowSet接口繼續規定了五個新的接口:

  1. CachedRowSet: CachedRowset可以不用與數據源建立長期的連接,只有當從數據庫讀取數據或是往數據庫寫入數據的時候才會與數據庫建立連接,它提供了一種輕量級的訪問數據庫的方式,其數據均存在內存中。

  2. JdbcRowSet:對ResultSet的對象進行包裝,使得可以將ResultSet對象做為一個JavaBeans ™ 組件

  3. FilteredRowSet:繼續自CachedRowSet,可以根據設置條件得到數據的子集。

  4. JoinRowSet:繼續自CachedRowSet,可以將多個RowSet對象進行SQL Join語句的合并。

  5. WebRowSet:繼續自CachedRowSet,可以將WebRowSet對象輸出成xml格式。

  下面分別演示如何使用這五個新接口。


運用Java 5 RowSet新特性訪問DB2(圖一)
運用Java 5 RowSet新特性訪問DB2(圖二)  實驗環境

  IBM DB2 Universal 8.1
  數據庫名:DemoDB
  數據庫用戶名:db2admin
  數據庫密碼:passWord


運用Java 5 RowSet新特性訪問DB2(圖一)
運用Java 5 RowSet新特性訪問DB2(圖二)  CachedRowSet

  CachedRowSet可以通過調用populate(ResuletSet rs)來生成數據,一旦獲得數據,CachedRowSet就可以斷開與數據庫的連接,直到往數據庫寫入數據的時候才需建立連接。

  可以使用自己擴展的或是使用Reference Implement的實現類進行訪問數據庫。下面的代碼演示了如何根據ResultSet建立一個CachedRowSet對象,在中斷與數據庫連接的情況下,讀取數據,并做更新,最后再獲取數據庫連接,將更新落實到數據庫中。


public static void testCachedRowSet(){	Connection conn = null;	try {		// 獲得數據庫連接	    conn= DriverManager.getConnection(DB2URL, DB2USER, DB2PASSWORD);	    Statement stmt = conn.createStatement();	    // 查詢數據庫,獲得表數據	    ResultSet rs = stmt.executeQuery("select * from student");//$NON-NLS-1$	    // 根據ResultSet對象生成CachedRowSet類型的對象	    CachedRowSetImpl crs = new CachedRowSetImpl();	    crs.populate(rs);	    // 關閉ResultSet		rs.close();	    // 關閉數據庫的連接	    conn.close();	    // 在中斷與數據庫連接的情況下,對CachedRowSet進行操作	    OperateOnRowSet(crs);	    // 重新獲取與數據庫的連接	    conn= DriverManager.getConnection(DB2URL, DB2USER, DB2PASSWORD);	    // 將CachedRowSet的內容更新到數據庫	    crs.acceptChanges(conn);	    // 關閉CachedRowSet	    crs.close();	    // 關閉數據庫連接	    conn.close();	} catch (InstantiationException e) {	    System.out.accessException e) {	    System.out.println("Andrew: IllegalAccessException!");//$NON-NLS-1$	} catch (ClassNotFoundException e) {	    System.out.println("Andrew: ClassNotFoundException!");//$NON-NLS-1$	}catch (SQLException e) {	  	System.out.println("Andrew: SQLException!");//$NON-NLS-1$		e.printStackTrace();	}	}



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 岱山县| 秭归县| 永丰县| 福海县| 波密县| 镶黄旗| 泾阳县| 呈贡县| 文安县| 新民市| 临汾市| 曲麻莱县| 四子王旗| 荔浦县| 五莲县| 佛学| 襄樊市| 察隅县| 彭水| 潼关县| 六安市| 北碚区| 丹巴县| 河津市| 武夷山市| 砚山县| 赫章县| 库车县| 聂拉木县| 吐鲁番市| 岳阳市| 庆元县| 灵台县| 贵州省| 高要市| 滦南县| 外汇| 怀柔区| 巴林右旗| 云梦县| 科技|