jdk1.5中RowSet子接口教程
2008-01-05 20:20:16 来源:WEB开发网核心提示:在jdk1.4的javax.sql包中有一个RowSet接口,但是没有具体实现的类,jdk1.5中RowSet子接口教程,”Tiger”诞生之后,引入了javax.sql.rowset包中的五个子接口和com.sun.rowset包里面的对应的五个实现类,当然这种方法可以连接一个数据源,假如我们在上下文环境种绑定了一个
在jdk1.4的javax.sql包中有一个RowSet接口,但是没有具体实现的类。”Tiger”诞生之后,引入了javax.sql.rowset包中的五个子接口和com.sun.rowset包里面的对应的五个实现类,这样我们就可是使用功能强大的RowSet了。
jdk1.5中RowSet的五个子接口分别是JdbcRowSet,CachedRowSet,WebRowSet,JoinRowSet和FilteredRowSet,他们为我们的数据库开发带来了强大的功能和方便的操作。
java运行环境是:RedHat 9
Jdk 1.5.1_01
Eclipse 3.1m4
MySQL 4.1.10 (JDBC Driver:org.gjt.mm.mysql.Driver)
首先在test数据库里面创建了两个表用于这次的学习,下面是脚本:
然后我就插入了一些数据用于测试。以下内容以我的环境示意,大家只要修改相应地方就可用于自己的测试。
RowSet对象可分为两类:有连接的和无连接的。JdbcRowSet是唯一一个有连接的实现,和传统的ResultSet一个样,有连接的实现是基于Jdbc驱动的连接,数据库的连接是贯穿整个对数据库的操作。而无连接的实现是基于Reader和Writer流的连接,在需要读取数据和写入数据的时候才建立连接,在整个操作过程中都是断开连接的,后面四个接口对象都是无连接的实现。下面我就针对每一个接口来介绍一下它们各自的功能。
JdbcRowSet接口:
我的理解是这个接口基本上和ResultSet有类似的功能,只不过它的结果集默认是ResultSet.TYPE_SCROLL_INSENSITIVE和ResultSet.CONCUR_UPDATABLE的,也就是说默认的结果集就是可以上下滚动和可更新的。
因为本身RowSet接口就是ResultSet的子接口,所以1.5里面的所有RowSet都有ResultSet的方法,而JdbcRowSet又只是在默认的属性和ResultSet有区别,所以它对结果集的操作方法和ResultSet都是一样的,我就不具体介绍了,大家可以参考API。
下面我介绍一下JdbcRowSet的创建方法,这有两种方法,一种是基于传统的JDBC连接数据库的方法:
这样就创建了一个对象(JdbcRowSetImpl是com.sun.rowset包里面的实现类,文中的五个接口在包中都对应有一个实现类),这个对象里面的数据就是和rs里面的数据是一样的。还有一种创建的方法是使用默认的构造方法,然后set属性得到数据,个人推荐使用第二种方法:
这样创建的对象是和第一种方法是一样的结果。当然这种方法可以连接一个数据源,假如我们在上下文环境种绑定了一个数据源,JNDI名字是dataSource1,那么下面的代码就可以获得对象:
java运行环境是:RedHat 9
Jdk 1.5.1_01
Eclipse 3.1m4
MySQL 4.1.10 (JDBC Driver:org.gjt.mm.mysql.Driver)
首先在test数据库里面创建了两个表用于这次的学习,下面是脚本:
create table table1 (id int not null , name varchar(20) not null);
create table table2 (id int not null, info varchar(20) not null);
然后我就插入了一些数据用于测试。以下内容以我的环境示意,大家只要修改相应地方就可用于自己的测试。
RowSet对象可分为两类:有连接的和无连接的。JdbcRowSet是唯一一个有连接的实现,和传统的ResultSet一个样,有连接的实现是基于Jdbc驱动的连接,数据库的连接是贯穿整个对数据库的操作。而无连接的实现是基于Reader和Writer流的连接,在需要读取数据和写入数据的时候才建立连接,在整个操作过程中都是断开连接的,后面四个接口对象都是无连接的实现。下面我就针对每一个接口来介绍一下它们各自的功能。
JdbcRowSet接口:
我的理解是这个接口基本上和ResultSet有类似的功能,只不过它的结果集默认是ResultSet.TYPE_SCROLL_INSENSITIVE和ResultSet.CONCUR_UPDATABLE的,也就是说默认的结果集就是可以上下滚动和可更新的。
因为本身RowSet接口就是ResultSet的子接口,所以1.5里面的所有RowSet都有ResultSet的方法,而JdbcRowSet又只是在默认的属性和ResultSet有区别,所以它对结果集的操作方法和ResultSet都是一样的,我就不具体介绍了,大家可以参考API。
下面我介绍一下JdbcRowSet的创建方法,这有两种方法,一种是基于传统的JDBC连接数据库的方法:
Class.forName(“org.gjt.mm.mysql.Driver”);
Connection conn=DriverManager.getConnection(“jdbc:mydql://localhost:3306/test”,”root’,””);
Statement stmt=conn.createStatement();
ResultSet rs=stamt.executeQuery(“select * from table1”);
JdbcRowSet jrs=new JdbcRowSetImpl(rs);
这样就创建了一个对象(JdbcRowSetImpl是com.sun.rowset包里面的实现类,文中的五个接口在包中都对应有一个实现类),这个对象里面的数据就是和rs里面的数据是一样的。还有一种创建的方法是使用默认的构造方法,然后set属性得到数据,个人推荐使用第二种方法:
JdbcRowSet jrs=new JdbcRowSetImpl();
jrs.setUrl(“jdbc:mydql://localhost:3306/test”);
jrs.setUsername(“root”);
jrs.setPassWord(“”);
jrs.setCommand(“select * from table1”);
jrs.execute();
这样创建的对象是和第一种方法是一样的结果。当然这种方法可以连接一个数据源,假如我们在上下文环境种绑定了一个数据源,JNDI名字是dataSource1,那么下面的代码就可以获得对象:
[]
更多精彩
赞助商链接