爲何要使用CachedRowSetImpl?

   不少狀況咱們使用ResultSet 就會由於這樣那樣的問題,rs被關閉或數據連接被關閉,致使ResultSet不能使用。其實這個問題咱們能夠用CachedRowSetImpl來解決。個人理解是這是一個結果的緩存類,保存在其中的數據不會隨着數據庫和ResultSet的鏈接的關閉而丟失,能夠傳遞。java

   使用方法以下:mysql

 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的鏈接都已經關閉了,並且仍然能夠進行數據循環出值來。使用方法也很簡單(紅色字體所示)sql

相關文章
相關標籤/搜索