⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jdk 1.5学习之rowset(二).htm

📁 Sun的高速缓存CachedRowSet方案资料档
💻 HTM
📖 第 1 页 / 共 2 页
字号:
            align=left>       
            System.out.println(jrs.getInt(“id”)+”\t\t”+jrs.getString(“name”)+”\t\t”+jrs.getString(“info”);</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" 
            align=left>这段代码的作用和执行select * from table1 inner join table2 on 
            table1.id=table2.id语句得到的结果集是一样的。但是我个人认为与其这样复杂地使用JoinRowSet,不如直接使用这条Join语句来得到CachedRowSet。</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" 
            align=left>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 默认的Join是inner 
            join的,接口还支持cross join,full join,left outer join和right outer 
            join,我们通过setJoinType()方法来修改连接类型,当然这还是需要数据库的支持。还有一个值得注意的地方就是,在这个例子里我连接的列在两个表里面都叫id,那么我们取数据的时候就使用id这个名字,那如果两列的名字不一样呢?系统就会为这个连接列取一个默认的名字叫做”MergedCol”。</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" 
            align=left>
            <P>&nbsp;</P>
            <P></P>
            <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">FilteredRowSet接口:</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">.NET的ADO.NET支持获取结果集使用一定的条件过滤从而得到不同的结果,那现在jdk1.5也能做到了,FilterRowSet接口让我们可以灵活地定义过滤条件达到不同的效果。Javax.sql.rowset包里面的Predicate接口就是这个过滤器,我们通过实现这个接口定义过滤条件,下面是示意代码:</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">public class Filter 
            implements Predicate {</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            private int min;</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            private int max;</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            private String colName;</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            public Filter (int min ,int max ,String colName) {</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            this.min=min; this.max=max; this.colName=colName;</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            }</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            public boolean evaluate (RowSet rs) {</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            CachedRowSet crs=(CachedRowSet)rs;</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            if((crs.getInt(colName)&gt;min)&amp;&amp; 
            (crs.getInt(colName)&lt;max))</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            return true;</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            else return false;</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            }</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">}</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt">下面我们就使用这个过滤器来过滤掉id不在min和max之间的数据:</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            FilteredRowSet frs=new FilteredRowSet();</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            ……</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            frs.setCommand(“select * from table<CHMETCNV tcsc="0" numbertype="1" 
            negative="False" hasspace="False" sourcevalue="1" unitname="”" 
            w:st="on">1”</CHMETCNV>);</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            frs.execute();//先获取所有数据;</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            frs.setFilter(new Filter(1,20,”id”);//过滤掉id值不在1和20之间的数据;</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt">因为实现Prdicate接口里面的方法很灵活,所以我们就能很灵活地设置过滤条件,我们就可以只通过一条语句得到不同的结果。</P>
            <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">
            <P>&nbsp;</P>
            <P></P>
            <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">WebRowSet接口:</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            XML因为其平台无关性越来越受到开发者的青睐,它也是数据持久化的一个不错的选择,WebRowSet封装了读写XML的方法,我们就可以轻松地把数据库的数据持久化到XML或者从XML读取数据写入数据库。</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            写入到XML文件的方法是wrs.writeXML(new 
            FileOutputStream(“data.xml”));它执行的结果是把内存中的数据写入当前目录里面的data.xml文件中。在这个xml文件里面记录了三类数据:</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            properties:包括setXXX()方法所有的属性,没有设置的就是默认属性</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            metadata:包括数据库表的相关元数据,对应ResultSetMetaData里的信息</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            data:结果集的全部数据</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            从xml文件读取数据装载到RowSet的方法是readXML(…);只要是按照规范的格式写的xml都可以装载进来。</P>
            <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">
            <P>&nbsp;</P>
            <P></P>
            <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">结语:</P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            五个RowSet接口里面分别都还有一些方法,由于篇幅有限,我只列出了其中一些典型的方法,希望本文对大家进一步学习jdk1.5有所帮助!</P></TD></TR>
        <TR>
          <TD class=Article_tdbgall align=right colSpan=2>
            <SCRIPT language=javascript 
            src="jdk 1.5学习之RowSet(二).files/5.js"></SCRIPT>
          </TD></TR>
        <TR>
          <TD class=Article_tdbgall align=right colSpan=2><STRONG><FONT 
            color=#ff0001>在百度搜索: </FONT><A 
            href="http://www.baidu.com/baidu?tn=techan_pg&amp;word=jdk 1.5学习之RowSet(二)" 
            target=_blank>jdk 1.5学习之RowSet(二)</A></STRONG> </TD></TR></TBODY></TABLE><!--网页中部左栏文章内容代码结束--></TD>
    <TD width=3></TD>
    <TD class=Article_tdbgall vAlign=top width=180><!--网页中部右栏代码开始-->
      <TABLE style="WORD-BREAK: break-all" cellSpacing=0 cellPadding=0 
      width="100%" border=0>
        <TBODY>
        <TR>
          <TD class=left_title align=middle>相 关 文 章</TD></TR>
        <TR>
          <TD class=left_tdbg1>
            <LI><A 
            href="http://www.techan-shop.com/Procedures/java/200604/51952.html">老康:Java开源项目Hibernate快速入门</A><BR>
            <LI><A 
            href="http://www.techan-shop.com/Procedures/java/200604/51942.html">Java中的两个特殊变量this和super</A><BR>
            <LI><A 
            href="http://www.techan-shop.com/Procedures/java/200604/51943.html">EclipsePro: 
            Java Tools for Professional Eclipse Developers</A><BR>
            <LI><A 
            href="http://www.techan-shop.com/Procedures/java/200604/51944.html">[学习笔记]Thinking 
            in Java (the 2nd edition) Study Note (3)</A><BR>
            <LI><A 
            href="http://www.techan-shop.com/Procedures/java/200604/51945.html">java通过jacob调用word</A><BR>
            <LI><A 
            href="http://www.techan-shop.com/Procedures/java/200604/51946.html">从XML元素结构到JAVA实现</A><BR>
            <LI><A 
            href="http://www.techan-shop.com/Procedures/java/200604/51947.html">Eclipse方式: 
            Processes that Adapt (part I)</A><BR>
            <LI><A 
            href="http://www.techan-shop.com/Procedures/java/200604/51948.html">关于软件的思考(一)---面向对象、模式、框架</A><BR>
            <LI><A 
            href="http://www.techan-shop.com/Procedures/java/200604/51949.html">jdk1.5学习之RowSet(一)</A><BR>
            <LI><A 
            href="http://www.techan-shop.com/Procedures/java/200604/51950.html">关于java 
            socket的问题</A><BR></LI></TD></TR>
        <TR>
          <TD class=left_tdbg2></TD></TR>
        <TR>
          <TD class=left_title align=middle>推 荐 </TD></TR>
        <TR>
          <TD class=left_tdbg1>
            <SCRIPT language=javascript 
            src="jdk 1.5学习之RowSet(二).files/6.js"></SCRIPT>
          </TD></TR>
        <TR>
          <TD class=left_tdbg2></TD></TR></TBODY></TABLE><!--网页中部右栏代码结束--></TD>
    <TD width=1></TD></TR></TBODY></TABLE>
<TABLE class=center_tdbgall cellSpacing=0 cellPadding=0 width=760 align=center 
border=0>
  <TBODY>
  <TR>
    <TD class=main_shadow>
      <SCRIPT language=javascript src="jdk 1.5学习之RowSet(二).files/7.js"></SCRIPT>
    </TD></TR></TBODY></TABLE>
<TABLE class=Bottom_tdbgall style="WORD-BREAK: break-all" cellSpacing=0 
cellPadding=5 width=760 align=center border=0>
  <TBODY>
  <TR align=middle>
    <TD class=Bottom_Adminlogo colSpan=2>| <A class=Bottom 
      onclick="this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.wszcy.cn');" 
      href="http://www.techan-shop.com/Procedures/java/200604/51953.html#">设为首页</A> 
      | <A class=Bottom 
      href="javascript:window.external.addFavorite('http://www.wszcy.cn','巴蜀信息网');">加入收藏</A> 
      | <A class=Bottom href="http://www.techan-shop.com/lxwm.htm">联系我们</A> | <A 
      class=Bottom href="http://www.techan-shop.com/sitemap/map/">网站地图</A> | <A 
      class=Bottom href="http://www.techan-shop.com/page/">栏目导航</A></TD></TR>
  <TR class=Bottom_Copyright>
    <TD align=middle>版权所有 &copy; 巴蜀信息网</TD></TR></TBODY></TABLE></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -