关于CachedRowSetImpl类
前言:最近工作上由于需要处理到大数据级别的导入操作,因此接触到了SQLBulkCopy。在摸索SQLBulkCopy的过程中发现了不少新鲜的东西,今天先记录一下CachedRowSetImpl。 CachedRowSet 对象是一个数据行的容器,可在内存中缓存其各行,这使得进行操作时无需总是连接到数据源。此外,它还是一个 JavaBeansTM 组件,是可滚动、可更新、可..
前言:最近工作上由于需要处理到大数据级别的导入操作,因此接触到了SQLBulkCopy。在摸索SQLBulkCopy的过程中发现了不少新鲜的东西,今天先记录一下CachedRowSetImpl。
CachedRowSet 对象是一个数据行的容器,可在内存中缓存其各行,这使得进行操作时无需总是连接到数据源。此外,它还是一个 JavaBeansTM 组件,是可滚动、可更新、可序列化的。CachedRowSet 对象通常包含结果集中的行,但它也可以包含任何具有表格式的文件(如电子表格)中的行。参考实现只支持从 ResultSet 对象中获取数据,但是开发人员可以扩展 SyncProvider 实现,以提供对其他表格数据源的访问。
Java中CachedRowSetlmpl类实现了CachedRowSet接口。CachedRowSetlmpl对象可以保存ResulSet对象中的数据,而且CachedRowSetlmpl对象不依赖Connnection对象,一旦ResulSet对象中的数据保存到CachedRowSetlmpl对象,就可以关闭和数据库的连接。CachedRowSetlmpl继承了ResulSet的所有方法,说以可以和ResulSet的对象一样操作数据。
(为了加深印象偷偷黏了别人的代码过来)
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();
}
}
更多推荐
所有评论(0)