美文网首页安卓面试宝典
为什么要使用CachedRowSetImpl?

为什么要使用CachedRowSetImpl?

作者: itbird01 | 来源:发表于2018-03-15 09:07 被阅读22次

    很多情况我们使用ResultSet 就会因为这样那样的问题,rs被关闭或数据链接被关闭,导致ResultSet不能使用。其实这个问题我们可以用CachedRowSetImpl来解决。我的理解是这是一个结果的缓存类,保存在其中的数据不会随着数据库和ResultSet的连接的关闭而丢失,可以传递。

    使用方法如下:

    package com.ifly.myhome.test;
    import java.sql.*;
    import com.sun.rowset.CachedRowSetImpl;
    public class test {
    private static Connection con;
    private static String user = "kh";
    private static String password = "kh";
    private static  String className = "com.mysql.jdbc.Driver";
    private static String url = "jdbc:mysql://localhost:3306/student";
    public static void main(String[] args) {
            try {
                Class.forName(className);
                con = DriverManager.getConnection(url, user, password);
                String sql="select * from student";
                PreparedStatement pstm=con.prepareStatement(sql);
                pstm.execute();
                ResultSet rs=pstm.getResultSet();
                CachedRowSetImpl rowset=new CachedRowSetImpl();
                rowset.populate(rs);
                rs.close();
                pstm.close();
                con.close();
                while (rowset.next()) {
                    System.out.println("id:"+rowset.getString("id"));
                     
                }
                 
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    }
    

    从上面的例子可以看出,数据库和ResultSet的连接都已经关闭了,而且仍然可以进行数据循环出值来。使用方法也很简单

    相关文章

      网友评论

        本文标题:为什么要使用CachedRowSetImpl?

        本文链接:https://www.haomeiwen.com/subject/xjkqqftx.html