為什么要使用CachedRowSetImpl?


   很多情況我們使用ResultSet 就會因為這樣那樣的問題,rs被關閉或數據鏈接被關閉,導致ResultSet不能使用。其實這個問題我們可以用CachedRowSetImpl來解決。我的理解是這是一個結果的緩存類,保存在其中的數據不會隨着數據庫和ResultSet的連接的關閉而丟失,可以傳遞。

   使用方法如下:

 1 package com.ifly.myhome.test;
 2 import java.sql.*;
 3 import com.sun.rowset.CachedRowSetImpl;
 4 public class test {
 5     private static Connection con;
 6     private static String user = "kh";
 7     private static String password = "kh";
 8     private static  String className = "com.mysql.jdbc.Driver";
 9     private static String url = "jdbc:mysql://localhost:3306/student";
10     public static void main(String[] args) {
11         try {
12             Class.forName(className);
13             con = DriverManager.getConnection(url, user, password);
14             String sql="select * from student";
15             PreparedStatement pstm=con.prepareStatement(sql);
16             pstm.execute();
17             ResultSet rs=pstm.getResultSet();
18             CachedRowSetImpl rowset=new CachedRowSetImpl();
19             rowset.populate(rs);
20             rs.close();
21             pstm.close();
22             con.close();
23             while (rowset.next()) {
24                 System.out.println("id:"+rowset.getString("id"));
25                  
26             }
27              
28         } catch (Exception e) {
29             // TODO Auto-generated catch block
30             e.printStackTrace();
31         }
32     }

從上面的例子可以看出,數據庫和ResultSet的連接都已經關閉了,而且仍然可以進行數據循環出值來。使用方法也很簡單(紅色字體所示)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM