欢迎光临
我们一直在努力

jdk 1.5学习之RowSet(二)-JSP教程,Java技巧及代码

建站超值云服务器,限时71元/月

continue…..

joinrowset接口:

       这个接口可以提供我们在无连接的状态下直接对结果集进行join。下面的代码提供了joinrowset的实现:

cachedrowset crs1=new caehedrowsetimpl();

crs1.seturl(“jdbc:mydql://localhost:3306/test”);

crs1.setusername(“root”);

crs1.setpassword(“”);

crs1.setcommand(“select * from table1”);

crs1.execute();

cachedrowset crs2=new caehedrowsetimpl();

crs2.seturl(“jdbc:mydql://localhost:3306/test”);

crs2.setusername(“root”);

crs2.setpassword(“”);

crs2.setcommand(“select * from table2”);

crs2.execute();

joinrowset jrs=new joinrowsetimpl();

jrs.addrowset(crs1,”id”);

jrs.addrowset(crs2,”id”);

while(jrs.next())

       system.out.println(jrs.getint(“id”)+”\t\t”+jrs.getstring(“name”)+”\t\t”+jrs.getstring(“info”);

这段代码的作用和执行select * from table1 inner join table2 on table1.id=table2.id语句得到的结果集是一样的。但是我个人认为与其这样复杂地使用joinrowset,不如直接使用这条join语句来得到cachedrowset。

       默认的join是inner join的,接口还支持cross join,full join,left outer join和right outer join,我们通过setjointype()方法来修改连接类型,当然这还是需要数据库的支持。还有一个值得注意的地方就是,在这个例子里我连接的列在两个表里面都叫id,那么我们取数据的时候就使用id这个名字,那如果两列的名字不一样呢?系统就会为这个连接列取一个默认的名字叫做”mergedcol”。

 

filteredrowset接口:

.net的ado.net支持获取结果集使用一定的条件过滤从而得到不同的结果,那现在jdk1.5也能做到了,filterrowset接口让我们可以灵活地定义过滤条件达到不同的效果。javax.sql.rowset包里面的predicate接口就是这个过滤器,我们通过实现这个接口定义过滤条件,下面是示意代码:

public class filter implements predicate {

       private int min;

       private int max;

       private string colname;

       public filter (int min ,int max ,string colname) {

              this.min=min; this.max=max; this.colname=colname;

       }

       public boolean evaluate (rowset rs) {

              cachedrowset crs=(cachedrowset)rs;

              if((crs.getint(colname)>min)&& (crs.getint(colname)<max))

                     return true;

         else return false;

       }

}

下面我们就使用这个过滤器来过滤掉id不在min和max之间的数据:

       filteredrowset frs=new filteredrowset();

       ……

       frs.setcommand(“select * from table1”);

       frs.execute();//先获取所有数据;

       frs.setfilter(new filter(1,20,”id”);//过滤掉id值不在1和20之间的数据;

因为实现prdicate接口里面的方法很灵活,所以我们就能很灵活地设置过滤条件,我们就可以只通过一条语句得到不同的结果。

 

webrowset接口:

       xml因为其平台无关性越来越受到开发者的青睐,它也是数据持久化的一个不错的选择,webrowset封装了读写xml的方法,我们就可以轻松地把数据库的数据持久化到xml或者从xml读取数据写入数据库。

       写入到xml文件的方法是wrs.writexml(new fileoutputstream(“data.xml”));它执行的结果是把内存中的数据写入当前目录里面的data.xml文件中。在这个xml文件里面记录了三类数据:

              properties:包括setxxx()方法所有的属性,没有设置的就是默认属性

              metadata:包括数据库表的相关元数据,对应resultsetmetadata里的信息

              data:结果集的全部数据

       从xml文件读取数据装载到rowset的方法是readxml(…);只要是按照规范的格式写的xml都可以装载进来。

 

结语:

       五个rowset接口里面分别都还有一些方法,由于篇幅有限,我只列出了其中一些典型的方法,希望本文对大家进一步学习jdk1.5有所帮助!

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » jdk 1.5学习之RowSet(二)-JSP教程,Java技巧及代码
分享到: 更多 (0)