RowSet接口继承规定了五个新的接口:
1.
CachedRowSet
:
CachedRowset
可以不用与数据源建立长期的连接,只有当从数据库读取数据或是往数据库写入数据的时候才会与数据库建立连接,它提供了一种轻量级的访问数据库的方式,其数据均存在内存中。
2.
JdbcRowSet
:对ResultSet的对象进行包装,使得可以将ResultSet对象做为一个JavaBeans ™ 组件。
3.
FilteredRowSet
:继承自CachedRowSet,可以根据设置条件得到数据的子集。
4.
JoinRowSet
:
继承自CachedRowSet,可以将多个RowSet对象进行SQL Join语句的合并。
5.
WebRowSet
:继承自CachedRowSet,可以将WebRowSet对象输出成XML格式。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.sql.RowSet;
import com.sun.rowset.CachedRowSetImpl;
public class testCachedRowSet {
public static void testCachedRowSet() {
}
public static com.sun.rowset.CachedRowSetImpl Query_all() throws SQLException{
Connection conn = null;
String url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=testrowset";
String user="sa";
String password="sa";
// 获得数据库连接
conn= DriverManager.getConnection(url,user,password);
java.sql.Statement stmt = conn.createStatement();
// 查询数据库,获得表数据
ResultSet rs = stmt.executeQuery("select * from test"); // 根据ResultSet对象生成CachedRowSet类型的对象
CachedRowSetImpl crs = new CachedRowSetImpl();
crs.populate(rs);
// 关闭ResultSet
rs.close();
// 关闭数据库的连接
conn.close();
return crs;
}
public static void main(String[] args) throws SQLException {
String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
Connection conn = null;
String url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=testrowset;SelectMethod=Cursor";//最后注意事项的部分
String user="sa";
String password="sa";
try {
Class.forName(driver).newInstance();
CachedRowSetImpl crs = new CachedRowSetImpl();
crs=Query_all();
crs.setTableName("test");
crs.next();
//改操作
crs.updateString(1, "434");
//查操作
String id = crs.getString("ID");
System.out.println(id);
//删操作
crs.deleteRow();
crs.updateRow();
// 重新获取与数据库的连接
conn= DriverManager.getConnection(url,user,password);
// 将CachedRowSet的内容更新到数据库
crs.acceptChanges(conn);
// 关闭CachedRowSet
crs.close();
// 关闭数据库连接
conn.close();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}