<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>好好活就是做有意义的事</title>
    <description></description>
    <link>http://olda.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>[转]将听吾计用之必胜留之，将不听吾计，用之必败，去之</title>
        <author>aoaoao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://olda.javaeye.com">aoaoao</a>&nbsp;
          链接：<a href="http://olda.javaeye.com/blog/193165" style="color:red;">http://olda.javaeye.com/blog/193165</a>&nbsp;
          发表时间: 2008年05月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          jimmy_c  说的不错<br />----------------------------------------------------------------------<br />Team Leader首要的任务应该是团结每一个人，发挥每个人的聪明才智。永远把团队放在第一位，自己放在第二位。<br />考虑自己有没有这样的现象：<br />1. 项目会议把自己精心准备，算无遗策的方案说出来，没有人响应。必须一个一个的追问他们的看法；<br />2. Team成员的执行经常和自己的预想差异很大，<strong>不得不</strong>当面质问，弄得对方很不愉快，自己也很委屈——其实我不想这样的；<br />3. 相较思想活跃，有主见的成员，更欣赏默不出声，但执行力强的人；<br />4. 经常想到一些Team Building的主意，但是没有时间做。因为总是在做一些“救火”的工作；<br />5. 对于上面一些“不可能实现”的工期和不合理的命令，虽然不认可，但是依然强迫team照做；<br />6. 觉得除了自己，Team中再没有别人更懂得设计和管理了；<br />7. 觉得除了自己，Team中再没有别人更关心项目的成败；<br />...<br />也许这件事的处理上你是对的。不过我比较担心的是你的结论，<br /><div class="quote_title">引用</div><div class="quote_div">将听吾计用之必胜留之，将不听吾计，用之必败，去之</div><br />项目管理不是行军打仗，诸葛亮一出，蜀国人才凋零。
          <br/>
          <span style="color:red;">
            <a href="http://olda.javaeye.com/blog/193165#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 15 May 2008 09:26:53 +0800</pubDate>
        <link>http://olda.javaeye.com/blog/193165</link>
        <guid>http://olda.javaeye.com/blog/193165</guid>
      </item>
      <item>
        <title>答复: ExtJS发布2.1版本，但是更改了License，希望大家就此展开讨论</title>
        <author>aoaoao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://olda.javaeye.com">aoaoao</a>&nbsp;
          链接：<a href="http://olda.javaeye.com/blog/190157" style="color:red;">http://olda.javaeye.com/blog/190157</a>&nbsp;
          发表时间: 2008年05月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          转charon 的帖子，好久没有看到这么精彩文章了。<br />--------------------------------------------<br /><div class="quote_title">hax 写道</div><div class="quote_div"><br />我认为你的批评是有一定道理的，但是站的立场是商业用户的角度。背信，我觉得是有点说过了。毕竟人家没有对商业用户做过任何承诺。而且，任何开源项目都是没有担保的，作者随时可以废弃和终止项目——此乃常识。难道你也骂人家背信？既然用了开源，就应该有这个<strong>觉悟</strong>。<br /></div><br /><br />你难道真的以为开源是在过家家？ 作者当然可以废弃和终止项目，就比如jython,原作者干了一段时间就跳到ironpython去了，再比如webwork的Rickard Oberg，跳了不知道多少个项目。但是，有人即便认可他们的能力和天才，也很少会再对他们主导的开源项目太当一回事(别的人或组织主导的另当别论)。<br /><br />而且，如果大家都是本着过家家来玩开源，开源也搞不到现在这个气候。到如今，无数商业组织都或多或少依赖于开源项目，敢情他们都是生活在剃刀边缘？整天担心受怕所使用的开源软件出个漏洞没人提供补丁。这个情形貌似是MS最喜欢看到的吧。开源的光辉貌似也不是为了培养一大批夜不能寐的强迫症患者。兄弟你真的有必要再回去好好读一读开源的文献了，搞清楚目标是什么。如果不能为使用者提供可信赖的价值，即便开到五脏六腑全通都没用。<br /><br />一个人或团队的信誉是以他的行为为媒介传播的，而他的行为也为信誉作了担保和实践。这个和是不是处于开源社区根本就没关系,也和目标客户是不是商业客户没关系。本质上说，这次更换许可证的行为从就是一种钓鱼的做法，侵犯的是对使用者而言可预期的选择权；或者说，如果从一开始就告诉大家成熟以后要切换许可证，那么，还有多少人(包括商业客户)会来为这个产品的成熟作贡献(实现者虽然是主要作用，但是没有那么多人来使用、报告bug、提供建议，一个产品也走不到现在这一步，而且通常是那些商业使用者，才有能力提供真实生产环境下的改进意见)。<br /><br /><div class="quote_title">引用</div><div class="quote_div"><br />以商业角度说，天下没有白吃的午餐。以社区角度说，他并没有伤害你。所以无论哪个角度，说人家背信都有点过分。</div><br />这个就更错了。第一，从小了说，天下是有白吃的午餐，比如bsd许可的那些东西，给的约束极为宽松，而且很多组织的行为都是可预期的，比如apache,spring,dojo等等，不会说一个项目干着干着就撂挑子了(通常都是因为热点转向使用者流失而导致消亡)，或者看看使用者众多，就通过换个许可证玩玩强制收费。从智慧传承角度来说，BSD类与GPL类只不过是不同的角度，大拿们没谁比谁更笨。<br /><br />第二，从大了说，这个午餐还真不是白吃的，如果没有使用者提供的反馈，很多项目都走不到成熟的一步。这个投入本身就是一种付出。还是那句话，如果一开始就明示，不愿意鸟它的根本就不会费上一点力气在这上面。<br /><br />另外，不知道你有没有经历过当年263.net免费邮箱的收费风波，从天下没有白吃的午餐这个角度来说，确实263.net当时领风气之先，是那时北方最大的免费邮箱提供商，但说收费也就收费了，法律上基本无不妥，但有背诚信这个嫌疑却是结结实实背上了。<br /><br />当初gpl从v2升级到v3，整个开源社区酝酿来那么久，还争论不断，而这个还是非本质性的。<br /><br />其实这次风波，最简单的避免办法就是现有开发团队废弃这个项目，根据现有的代码基从1.0开始从新打造一个适用于GPL的新项目，而把原来的项目移交给愿意继续按LGPL开发的人或团队。或者，索性学别人，搞一个社区版，一个商业加强版。这样做，谁都没话说。
          <br/>
          <span style="color:red;">
            <a href="http://olda.javaeye.com/blog/190157#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 06 May 2008 13:19:52 +0800</pubDate>
        <link>http://olda.javaeye.com/blog/190157</link>
        <guid>http://olda.javaeye.com/blog/190157</guid>
      </item>
      <item>
        <title>[转贴]GPL与LGPL</title>
        <author>aoaoao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://olda.javaeye.com">aoaoao</a>&nbsp;
          链接：<a href="http://olda.javaeye.com/blog/187882" style="color:red;">http://olda.javaeye.com/blog/187882</a>&nbsp;
          发表时间: 2008年04月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          GPL（GNU General Public License）<br /><br />我们很熟悉的Linux就是采用了GPL。GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用，但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种linux，包括商业公司的linux和linux上各种各样的由个人，组织，以及商业软件公司开发的免费软件了。<br /><br />GPL协议的主要内容是只要在一个软件中使用("使用"指类库引用，修改后的代码或者衍生代码)GPL 协议的产品，则该软件产品必须也采用GPL协议，既必须也是开源和免费。这就是所谓的"传染性"。GPL协议的产品作为一个单独的产品使用没有任何问题，还可以享受免费的优势。<br /><br />由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议，对于使用GPL协议的开源代码，商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。<br /><br />其它细节如再发布的时候需要伴随GPL协议等和BSD/Apache等类似。<br /><br />LGPL（GNU Lesser General Public License）<br /><br />LGPL 是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。<br /><br />但是如果修改LGPL协议的代码或者衍生，则所有修改的代码，涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用，但不适合希望以LGPL协议代码为基础，通过修改和衍生的方式做二次开发的商业软件采用。<br /><br />GPL/LGPL都保障原作者的知识产权，避免有人利用开源代码复制并开发类似的产品<br /><br /><br />-------------------转贴的分割线-------------------<br />这下用Ext的风险就大多了~
          <br/>
          <span style="color:red;">
            <a href="http://olda.javaeye.com/blog/187882#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 29 Apr 2008 09:20:11 +0800</pubDate>
        <link>http://olda.javaeye.com/blog/187882</link>
        <guid>http://olda.javaeye.com/blog/187882</guid>
      </item>
      <item>
        <title>【转贴】Spring RMI</title>
        <author>aoaoao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://olda.javaeye.com">aoaoao</a>&nbsp;
          链接：<a href="http://olda.javaeye.com/blog/187777" style="color:red;">http://olda.javaeye.com/blog/187777</a>&nbsp;
          发表时间: 2008年04月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Remote Method Invocation (RMI) Model: <br /><br />RMI was first introduced in JDK 1.1.  But developing and accessing  RMI services involves various steps and also have lookups which makes the code hard to test. Spring simplifies the RMI by providing a 'proxy factory bean' that enables us to wire the RMI services into spring application as if they were local beans. Spring also provides a remote exporter that converts our 'spring managed beans' into RMI services. <br /><br />Spring's 'RmiProxyFactoryBean' is a factory bean that creates a proxy to RMI service. It is declared spring configuration file under the &lt;bean> tag as follows, <br /><br />&lt;bean    id="service1"    <br /><br />         class="org.springframework.remoting.rmi.RmiProxyFactoryBean"> <br /><br />   &lt;property name="serviceUrl"> <br /><br />      &lt;value>rmi://${hostname}/service1&lt;/value>   <br /><br />   &lt;/property> <br /><br />   &lt;property name="serviceInterface"> <br /><br />      &lt;value>service1&lt;/value> <br /><br />   &lt;/property> <br /><br />&lt;/bean> <br /><br />The url of the RMI service is set through the 'serviceUrl' property. The 'serviceInterface' property specifies the interface that the service implements and only through that the client invokes methods on the service. <br /><br />For using the service the implementation  code is wired to the RMI using the following code, <br /><br />&lt;bean id="serviceimpl" class="serviceimpl"> <br /><br />   &lt;property name="service1"> <br /><br />       &lt;ref bean="service1"/> <br /><br />   &lt;/property> <br /><br />&lt;/bean> <br /><br />------------------------------------------- <br /><br />First set the path and classpath as before. Next edit the RMI service. <br /><br />//f:\springdemo\rmserver.java <br /><br />import java.rmi.*; <br /><br />public  interface  rmserver  extends Remote <br /><br />{ <br /><br />   String   getresult(String   s)  throws RemoteException; <br /><br />} <br /><br />---------------------------------------------- <br /><br />//f:\springdemo\rmserverimpl.java <br /><br />import java.rmi.*; <br /><br />import java.rmi.server.*; <br /><br />public class rmserverimpl extends UnicastRemoteObject <br /><br />                             implements rmserver <br /><br />{ <br /><br />   public static void main(String args[]) <br /><br />   { <br /><br />      try <br /><br />      { <br /><br />         rmserverimpl   ob = new rmserverimpl(); <br /><br />         Naming.rebind("rmserver",ob); <br /><br />         System.out.println("ready"); <br /><br />      } <br /><br />      catch(Exception e1) <br /><br />         {System.out.println(""+e1);} <br /><br />   } <br /><br />   public rmserverimpl() throws RemoteException <br /><br />   { <br /><br />   System.out.println("constructor ok"); <br /><br />   } <br /><br />   public String getresult(String  a)  throws RemoteException <br /><br />   { <br /><br />       return "Hai..."+a; <br /><br />   } <br /><br />} <br /><br />---------------------------------------------- <br /><br />//f:\springdemo\rmserver.xml <br /><br />&lt;?xml version="1.0" encoding="UTF-8"?> <br /><br />&lt;!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" <br /><br />"http://www.springframework.org/dtd/ <br /><br /> spring-beans.dtd"> <br /><br />&lt;beans> <br /><br />  &lt;bean id="rmserver" <br /><br />        class="org.springframework.remoting.rmi.RmiProxyFactoryBean"> <br /><br />   &lt;property name="serviceUrl"> <br /><br />       &lt;value>rmi://localhost/rmserver&lt;/value>   <br /><br />   &lt;/property> <br /><br />   &lt;property name="serviceInterface"> <br /><br />       &lt;value>rmserver&lt;/value> <br /><br />   &lt;/property> <br /><br />  &lt;/bean> <br /><br />  &lt;bean     id="rmserverimpl"    class="rmserverimpl"> <br /><br />      &lt;property name="rmserver"> <br /><br />          &lt;ref bean="rmserver"/> <br /><br />      &lt;/property> <br /><br />  &lt;/bean> <br /><br />&lt;/beans> <br /><br />--------------------------------------------- <br /><br />//f:\springdemo\rmspring.java <br /><br />import java.rmi.*; <br /><br />import org.springframework.beans.factory.*; <br /><br />import org.springframework.beans.factory.xml.*; <br /><br />import org.springframework.core.io.*; <br /><br />public class  rmspring <br /><br />{ <br /><br />   public static void main(String args[]) <br /><br />   { <br /><br />      try <br /><br />      { <br /><br />         System.out.println("Wait.."); <br /><br />         Resource     res = new ClassPathResource("rmi.xml"); <br /><br />         BeanFactory   factory = new XmlBeanFactory(res); <br /><br />         rmserver bean1 = (rmserver) factory.getBean("rmserver"); <br /><br />         String r=bean1.getresult(args[0]); <br /><br />         System.out.println(r); <br /><br />      } <br /><br />      catch(Exception e1) <br /><br />          {System.out.println(""+e1);} <br /><br />   } <br /><br />} <br /><br />--------------------------------------- <br /><br />To run: <br /><br />f:\springdemo>javac rmserver.java <br /><br />f:\springdemo>javac rmserverimpl.java <br /><br />f:\springdemo>rmic rmserverimpl (To create stub and skeleton) <br /><br />f:\springdemo>javac rmspring.java <br /><br />f:\springdemo>start rmiregistry (a blank window will appear) <br /><br />f:\springdemo>java rmserverimpl <br /><br />Open another Window and run the client code by giving the argument <br /><br />f:\springdemo>java rmspring "sam" <br /><br />We will get the output as: <br /><br />Wait..  <br />...... <br />Hai... sam <br /><br />Here we have removed the 'lookup' code in the client side. <br /><br />----------------------------------------------------------------- <br /><br />Spring also supports the server side of RMI. Here the service itself is written with spring and it is exposed as an RMI service. Here the bean is written as a simple JavaBean. Also we need not generate the stub and skeleton using 'rmic' command and manually add it to RMI registry. Instead of these traditional procedure 'RmiServiceExporter' is used to export any Spring managed bean as an RMI service. It wrapps the bean in an adapter class. The adapter class is then bound to RMI registry and the proxies request the service. <br /><br />&lt;bean     class="org.springframework.remoting.rmi.RmiServiceExporter"> <br /><br />   &lt;property name="service1"> <br /><br />       &lt;ref bean="service1"/> <br /><br />   &lt;/property> <br /><br />   &lt;property name="serviceName"> <br /><br />        &lt;value>service1&lt;/value> <br /><br />   &lt;/property> <br /><br />   &lt;property name="serviceInterface"> <br /><br />        &lt;value>service1&lt;/value> <br /><br />   &lt;/property> <br /><br />&lt;/bean> <br /><br />The 'serviceName property' indicates the name of service and 'serviceInterface' specifies the interface implemented by the service. There is no need of 'serviceUrl' here <br /><br />First set the path and classpath as before. Next edit the service. <br /><br />//f:\springdemo\rmservice.java <br /><br />public  interface  rmservice <br /><br />{ <br /><br />    String     getresult(String    s); <br /><br />} <br />------------------------------------------ <br /><br />//f:\springdemo\rmserviceimpl.java <br /><br />public class rmserviceimpl  implements    rmservice <br /><br />{ <br /><br />   public static void main(String args[]) <br /><br />   { <br /><br />      System.out.println("ready"); <br /><br />   } <br /><br />   public rmserviceimpl() <br /><br />   { <br /><br />      System.out.println("constructor ok"); <br /><br />   } <br /><br />   public String getresult(String  a) <br /><br />   { <br /><br />      return "Hai"+a; <br /><br />   } <br /><br />} <br /><br />------------------------------------------ <br /><br />//f:\springdemo\rmservice.xml <br /><br />&lt;?xml version="1.0" encoding="UTF-8"?> <br /><br />&lt;!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" <br /><br />"http://www.springframework.org/dtd/  spring-beans.dtd"> <br /><br />  &lt;beans> <br /><br />   &lt;bean    class="org.springframework.remoting.rmi.RmiServiceExporter"> <br /><br />   &lt;property name="service"> <br /><br />       &lt;value>rmservice&lt;/value>   <br /><br />   &lt;/property> <br /><br />   &lt;property name="serviceName"> <br /><br />       &lt;value>service1&lt;/value>   <br /><br />   &lt;/property> <br /><br />   &lt;property name="serviceInterface"> <br /><br />       &lt;value>rmservice&lt;/value> <br /><br />   &lt;/property> <br /><br />   &lt;/bean> <br /><br />   &lt;bean id="rmservice" class="rmserviceimpl"> <br /><br />   &lt;/bean> <br /><br />&lt;/beans> <br /><br />------------------------------------------ <br /><br />//f:\springdemo\rmserviceclient.java <br /><br />import java.io.*; <br /><br />import org.springframework.beans.factory.*; <br /><br />import org.springframework.beans.factory.xml.*; <br /><br />import org.springframework.core.io.*; <br /><br />class   rmserviceclient <br /><br />{ <br /><br />   public static void main(String args[]) <br /><br />   { <br /><br />      try <br /><br />      { <br /><br />         System.out.println("Wait.."); <br /><br />         Resource  res = new ClassPathResource("rmservice.xml"); <br /><br />         BeanFactory  factory = new  XmlBeanFactory(res); <br /><br />         System.out.println("factory created"); <br /><br />         rmservice bean1 = (rmservice)factory.getBean("rmservice"); <br /><br />         String s = bean1.getresult(args[0]); <br /><br />         System.out.println(s); <br /><br />      } <br /><br />        catch(Exception e1) <br /><br />               {System.out.println(""+e1);} <br /><br />   } <br /><br />} <br /><br />--------------------------------------- <br /><br />To run: <br /><br />f:\springdemo>javac rmservice.java <br /><br />f:\springdemo>javac rmserviceimpl.java <br /><br />f:\springdemo>javac rmserviceclient.java <br /><br />f:\springdemo>java rmsserviceclient <br /><br />We will get Output as: <br /><br />Wait.. <br /><br />Aug 12, 2002 10:55:07 PM   <br /><br />     org.springframework.beans.factory. <br /><br />     xml.XmlBeanDefinitionReader <br /><br />     loadBeanDefinitions <br /><br />INFO: Loading XML bean definitions from <br /><br />      class path resource[rmservice.xml] <br /><br />Aug 12, 2002 10:55:07 PM <br /><br />     org.springframework.beans.factory. <br /><br />     support.AbstractBeanFactory getBean <br /><br />INFO: Creating shared instance of <br /><br />      singleton bean 'rmservice' <br /><br />constructor   ok <br /><br />Hai...sam   <br /><br />Here the service interface doesn't extend the 'java.rmi.Remote' method and 'RemoteException' is not thrown by the methods. There is no binding in the implementation code. Also we can direcly run the client. No run to run 'rmserverimpl' first. Also there is no need to run the RMI registry.
          <br/>
          <span style="color:red;">
            <a href="http://olda.javaeye.com/blog/187777#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 28 Apr 2008 22:03:48 +0800</pubDate>
        <link>http://olda.javaeye.com/blog/187777</link>
        <guid>http://olda.javaeye.com/blog/187777</guid>
      </item>
      <item>
        <title>品牌意识</title>
        <author>aoaoao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://olda.javaeye.com">aoaoao</a>&nbsp;
          链接：<a href="http://olda.javaeye.com/blog/179798" style="color:red;">http://olda.javaeye.com/blog/179798</a>&nbsp;
          发表时间: 2008年04月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          经验模式<br /><br />经营与推销<br /><br />坐等的焦虑与绝望<br /><br />比个人更加焦虑和绝望的公司<br /><br />程序员==演员？<br /><br />有了目标才能忘我工作
          <br/>
          <span style="color:red;">
            <a href="http://olda.javaeye.com/blog/179798#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 06 Apr 2008 10:58:15 +0800</pubDate>
        <link>http://olda.javaeye.com/blog/179798</link>
        <guid>http://olda.javaeye.com/blog/179798</guid>
      </item>
      <item>
        <title>在更加真实残酷的环境中还能生存</title>
        <author>aoaoao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://olda.javaeye.com">aoaoao</a>&nbsp;
          链接：<a href="http://olda.javaeye.com/blog/176090" style="color:red;">http://olda.javaeye.com/blog/176090</a>&nbsp;
          发表时间: 2008年03月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          真没想到，真实与残酷的环境来得这么突然，袁朗突然进行了从好人到烂人的转变，心态上完全没有适应。所有的光荣与梦想一下子全都没了，只剩下不能输3个字。<br />我还行不行，能不能保持住修路的心态？如果许三多面临的是一个李梦当班长的草原5班时，他能否坚持到路修完？<br />一定不能上救护车，一定不能做27，先不要考虑能不能做39。保持好自己的节奏，踏踏实实修好眼前的路，享受修路的过程，而不要为修路的结果迷茫。
          <br/>
          <span style="color:red;">
            <a href="http://olda.javaeye.com/blog/176090#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 26 Mar 2008 02:55:22 +0800</pubDate>
        <link>http://olda.javaeye.com/blog/176090</link>
        <guid>http://olda.javaeye.com/blog/176090</guid>
      </item>
      <item>
        <title>又被触摸灵魂</title>
        <author>aoaoao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://olda.javaeye.com">aoaoao</a>&nbsp;
          链接：<a href="http://olda.javaeye.com/blog/170985" style="color:red;">http://olda.javaeye.com/blog/170985</a>&nbsp;
          发表时间: 2008年03月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="300" height="300"><param name="movie" value="http://www.56.com/n_v162_/c30_/16_/2_/fjj310_/zhajm_119389805781_/195000_/0_/21898306.swf" /><param name="quality" value="high" /><param name="menu" value="false" /><param name="wmode" value="" /><embed src="http://www.56.com/n_v162_/c30_/16_/2_/fjj310_/zhajm_119389805781_/195000_/0_/21898306.swf" wmode="" quality="high" menu="false" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="300" height="300"></embed></object>
          <br/>
          <span style="color:red;">
            <a href="http://olda.javaeye.com/blog/170985#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 13 Mar 2008 22:54:42 +0800</pubDate>
        <link>http://olda.javaeye.com/blog/170985</link>
        <guid>http://olda.javaeye.com/blog/170985</guid>
      </item>
      <item>
        <title> 在更加真实与残酷的环境中还能生存</title>
        <author>aoaoao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://olda.javaeye.com">aoaoao</a>&nbsp;
          链接：<a href="http://olda.javaeye.com/blog/168538" style="color:red;">http://olda.javaeye.com/blog/168538</a>&nbsp;
          发表时间: 2008年03月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          7、8年前的夜里，曾经和2个业务主管通宵分析为什么计算机库存与实际库存差别在上百万，就像破案一样一笔笔的追查、核对、分析，非常有意思。<br />最近这个项目开发环境和7、8年前的情况很类似，所有程序员的代码只能在运行在远程服务器端，他们曾经熟悉的debug方式完全无法使用，出现异常要从远程服务器上的log中寻找蛛丝马迹
          <br/>
          <span style="color:red;">
            <a href="http://olda.javaeye.com/blog/168538#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 06 Mar 2008 09:19:41 +0800</pubDate>
        <link>http://olda.javaeye.com/blog/168538</link>
        <guid>http://olda.javaeye.com/blog/168538</guid>
      </item>
      <item>
        <title>[转贴]Oracle 分析函数使用介绍，我也恶俗一把</title>
        <author>aoaoao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://olda.javaeye.com">aoaoao</a>&nbsp;
          链接：<a href="http://olda.javaeye.com/blog/165595" style="color:red;">http://olda.javaeye.com/blog/165595</a>&nbsp;
          发表时间: 2008年02月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <br />Oracle 分析函数使用介绍 <br />分析函数是oracle816引入的一个全新的概念,为我们分析数据提供了一种简单高效的处理方式.在分析函数出现以前,我们必须使用自联查询,子查询或者内联视图,甚至复杂的存储过程实现的语句,现在只要一条简单的sql语句就可以实现了,而且在执行效率方面也有相当大的提高.下面我将针对分析函数做一些具体的说明. <br /><br />今天我主要给大家介绍一下以下几个函数的使用方法 <br />1. 自动汇总函数rollup,cube, <br />2. rank 函数, rank,dense_rank,row_number <br />3. lag,lead函数 <br />4. sum,avg,的移动增加,移动平均数 <br />5. ratio_to_report报表处理函数 <br />6. first,last取基数的分析函数 <br /><br /><br />基础数据 <br /><br /><br /><br /><br />Code: [Copy to clipboard] <br />06:34:23 SQL&gt; select * from t; <br /><br />BILL_MONTH AREA_CODE NET_TYPE LOCAL_FARE <br />--------------- ---------- ---------- -------------- <br />200405 5761 G 7393344.04 <br />200405 5761 J 5667089.85 <br />200405 5762 G 6315075.96 <br />200405 5762 J 6328716.15 <br />200405 5763 G 8861742.59 <br />200405 5763 J 7788036.32 <br />200405 5764 G 6028670.45 <br />200405 5764 J 6459121.49 <br />200405 5765 G 13156065.77 <br />200405 5765 J 11901671.70 <br />200406 5761 G 7614587.96 <br />200406 5761 J 5704343.05 <br />200406 5762 G 6556992.60 <br />200406 5762 J 6238068.05 <br />200406 5763 G 9130055.46 <br />200406 5763 J 7990460.25 <br />200406 5764 G 6387706.01 <br />200406 5764 J 6907481.66 <br />200406 5765 G 13562968.81 <br />200406 5765 J 12495492.50 <br />200407 5761 G 7987050.65 <br />200407 5761 J 5723215.28 <br />200407 5762 G 6833096.68 <br />200407 5762 J 6391201.44 <br />200407 5763 G 9410815.91 <br />200407 5763 J 8076677.41 <br />200407 5764 G 6456433.23 <br />200407 5764 J 6987660.53 <br />200407 5765 G 14000101.20 <br />200407 5765 J 12301780.20 <br />200408 5761 G 8085170.84 <br />200408 5761 J 6050611.37 <br />200408 5762 G 6854584.22 <br />200408 5762 J 6521884.50 <br />200408 5763 G 9468707.65 <br />200408 5763 J 8460049.43 <br />200408 5764 G 6587559.23 <br /><br />BILL_MONTH AREA_CODE NET_TYPE LOCAL_FARE <br />--------------- ---------- ---------- -------------- <br />200408 5764 J 7342135.86 <br />200408 5765 G 14450586.63 <br />200408 5765 J 12680052.38 <br /><br />40 rows selected. <br /><br />Elapsed: 00:00:00.00 <br /><br /><br /><br /><br />1. 使用rollup函数的介绍 <br /><br /><br /><br /><br />Quote: <br />下面是直接使用普通sql语句求出各地区的汇总数据的例子 <br />06:41:36 SQL&gt; set autot on <br />06:43:36 SQL&gt; select area_code,sum(local_fare) local_fare <br />06:43:50 2 from t <br />06:43:51 3 group by area_code <br />06:43:57 4 union all <br />06:44:00 5 select '合计' area_code,sum(local_fare) local_fare <br />06:44:06 6 from t <br />06:44:08 7 / <br /><br />AREA_CODE LOCAL_FARE <br />---------- -------------- <br />5761 54225413.04 <br />5762 52039619.60 <br />5763 69186545.02 <br />5764 53156768.46 <br />5765 104548719.19 <br />合计 333157065.31 <br /><br />6 rows selected. <br /><br />Elapsed: 00:00:00.03 <br /><br />Execution Plan <br />---------------------------------------------------------- <br />0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=7 Card=1310 Bytes= <br />24884) <br /><br />1 0 UNION-ALL <br />2 1 SORT (GROUP BY) (Cost=5 Card=1309 Bytes=24871) <br />3 2 TABLE ACCESS (FULL) OF 'T' (Cost=2 Card=1309 Bytes=248 <br />71) <br /><br />4 1 SORT (AGGREGATE) <br />5 4 TABLE ACCESS (FULL) OF 'T' (Cost=2 Card=1309 Bytes=170 <br />17) <br /><br /><br /><br /><br /><br />Statistics <br />---------------------------------------------------------- <br />0 recursive calls <br />0 db block gets <br /><span style="color: #ff0000">6 consistent gets <br /></span>0 physical reads <br />0 redo size <br />561 bytes sent via SQL*Net to client <br />503 bytes received via SQL*Net from client <br />2 SQL*Net roundtrips to/from client <br />1 sorts (memory) <br />0 sorts (disk) <br />6 rows processed <br /><br /><br />下面是使用分析函数rollup得出的汇总数据的例子 <br />06:44:09 SQL&gt; select nvl(area_code,'合计') area_code,sum(local_fare) local_fare <br />06:45:26 2 from t <br />06:45:30 3 group by rollup(nvl(area_code,'合计')) <br />06:45:50 4 / <br /><br />AREA_CODE LOCAL_FARE <br />---------- -------------- <br />5761 54225413.04 <br />5762 52039619.60 <br />5763 69186545.02 <br />5764 53156768.46 <br />5765 104548719.19 <br />333157065.31 <br /><br />6 rows selected. <br /><br />Elapsed: 00:00:00.00 <br /><br />Execution Plan <br />---------------------------------------------------------- <br />0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=5 Card=1309 Bytes= <br />24871) <br /><br />1 0 SORT (GROUP BY ROLLUP) (Cost=5 Card=1309 Bytes=24871) <br />2 1 TABLE ACCESS (FULL) OF 'T' (Cost=2 Card=1309 Bytes=24871 <br />) <br /><br /><br /><br /><br /><br />Statistics <br />---------------------------------------------------------- <br />0 recursive calls <br />0 db block gets <br /><span style="color: #ff0000">4 consistent gets</span> <br />0 physical reads <br />0 redo size <br />557 bytes sent via SQL*Net to client <br />503 bytes received via SQL*Net from client <br />2 SQL*Net roundtrips to/from client <br />1 sorts (memory) <br />0 sorts (disk) <br />6 rows processed <br /><br /><br />从上面的例子我们不难看出使用rollup函数,系统的sql语句更加简单,耗用的资源更少,从6个consistent gets降到4个consistent gets,如果基表很大的话,结果就可想而知了. <br /><br /><br /><br /><br />1. 使用cube函数的介绍 <br /><br /><br /><br /><br />Quote: <br />为了介绍cube函数我们再来看看另外一个使用rollup的例子 <br />06:53:00 SQL&gt; select area_code,bill_month,sum(local_fare) local_fare <br />06:53:37 2 from t <br />06:53:38 3 group by rollup(area_code,bill_month) <br />06:53:49 4 / <br /><br />AREA_CODE BILL_MONTH LOCAL_FARE <br />---------- --------------- -------------- <br />5761 200405 13060433.89 <br />5761 200406 13318931.01 <br />5761 200407 13710265.93 <br />5761 200408 14135782.21 <br />5761 54225413.04 <br />5762 200405 12643792.11 <br />5762 200406 12795060.65 <br />5762 200407 13224298.12 <br />5762 200408 13376468.72 <br />5762 52039619.60 <br />5763 200405 16649778.91 <br />5763 200406 17120515.71 <br />5763 200407 17487493.32 <br />5763 200408 17928757.08 <br />5763 69186545.02 <br />5764 200405 12487791.94 <br />5764 200406 13295187.67 <br />5764 200407 13444093.76 <br />5764 200408 13929695.09 <br />5764 53156768.46 <br />5765 200405 25057737.47 <br />5765 200406 26058461.31 <br />5765 200407 26301881.40 <br />5765 200408 27130639.01 <br />5765 104548719.19 <br />333157065.31 <br /><br />26 rows selected. <br /><br />Elapsed: 00:00:00.00 <br /><br />系统只是根据rollup的第一个参数area_code对结果集的数据做了汇总处理,而没有对bill_month做汇总分析处理,cube函数就是为了这个而设计的. <br />下面,让我们看看使用cube函数的结果 <br /><br />06:58:02 SQL&gt; select area_code,bill_month,sum(local_fare) local_fare <br />06:58:30 2 from t <br />06:58:32 3 group by cube(area_code,bill_month) <br />06:58:42 4 order by area_code,bill_month nulls last <br />06:58:57 5 / <br /><br />AREA_CODE BILL_MONTH LOCAL_FARE <br />---------- --------------- -------------- <br />5761 200405 13060.43 <br />5761 200406 13318.93 <br />5761 200407 13710.27 <br />5761 200408 14135.78 <br />5761 54225.41 <br />5762 200405 12643.79 <br />5762 200406 12795.06 <br />5762 200407 13224.30 <br />5762 200408 13376.47 <br />5762 52039.62 <br />5763 200405 16649.78 <br />5763 200406 17120.52 <br />5763 200407 17487.49 <br />5763 200408 17928.76 <br />5763 69186.54 <br />5764 200405 12487.79 <br />5764 200406 13295.19 <br />5764 200407 13444.09 <br />5764 200408 13929.69 <br />5764 53156.77 <br />5765 200405 25057.74 <br />5765 200406 26058.46 <br />5765 200407 26301.88 <br />5765 200408 27130.64 <br />5765 104548.72 <br />200405 79899.53 <br />200406 82588.15 <br />200407 84168.03 <br />200408 86501.34 <br />333157.05 <br /><br />30 rows selected. <br /><br />Elapsed: 00:00:00.01 <br /><br />可以看到,在cube函数的输出结果比使用rollup多出了几行统计数据.这就是cube函数根据bill_month做的汇总统计结果 <br /><br /><br /><br />1 rollup 和 cube函数的再深入 <br /><br /><br /><br /><br />Quote: <br />从上面的结果中我们很容易发现,每个统计数据所对应的行都会出现null, <br />我们如何来区分到底是根据那个字段做的汇总呢, <br />这时候,oracle的grouping函数就粉墨登场了. <br />如果当前的汇总记录是利用该字段得出的,grouping函数就会返回1,否则返回0 <br /><br /><br />1 select decode(grouping(area_code),1,'all area',to_char(area_code)) area_code, <br />2 decode(grouping(bill_month),1,'all month',bill_month) bill_month, <br />3 sum(local_fare) local_fare <br />4 from t <br />5 group by cube(area_code,bill_month) <br />6* order by area_code,bill_month nulls last <br />07:07:29 SQL&gt; / <br /><br />AREA_CODE BILL_MONTH LOCAL_FARE <br />---------- --------------- -------------- <br />5761 200405 13060.43 <br />5761 200406 13318.93 <br />5761 200407 13710.27 <br />5761 200408 14135.78 <br />5761 all month 54225.41 <br />5762 200405 12643.79 <br />5762 200406 12795.06 <br />5762 200407 13224.30 <br />5762 200408 13376.47 <br />5762 all month 52039.62 <br />5763 200405 16649.78 <br />5763 200406 17120.52 <br />5763 200407 17487.49 <br />5763 200408 17928.76 <br />5763 all month 69186.54 <br />5764 200405 12487.79 <br />5764 200406 13295.19 <br />5764 200407 13444.09 <br />5764 200408 13929.69 <br />5764 all month 53156.77 <br />5765 200405 25057.74 <br />5765 200406 26058.46 <br />5765 200407 26301.88 <br />5765 200408 27130.64 <br />5765 all month 104548.72 <br />all area 200405 79899.53 <br />all area 200406 82588.15 <br />all area 200407 84168.03 <br />all area 200408 86501.34 <br />all area all month 333157.05 <br /><br />30 rows selected. <br /><br />Elapsed: 00:00:00.01 <br />07:07:31 SQL&gt; <br /><br /><br />可以看到,所有的空值现在都根据grouping函数做出了很好的区分,这样利用rollup,cube和grouping函数,我们做数据统计的时候就可以轻松很多了. <br /><br /><br /><br /><br /><br />2. rank函数的介绍 <br /><br />介绍完rollup和cube函数的使用,下面我们来看看rank系列函数的使用方法. <br /><br />问题2.我想查出这几个月份中各个地区的总话费的排名. <br /><br /><br />Quote: <br />为了将rank,dense_rank,row_number函数的差别显示出来,我们对已有的基础数据做一些修改,将5763的数据改成与5761的数据相同. <br />1 update t t1 set local_fare = ( <br />2 select local_fare from t t2 <br />3 where t1.bill_month = t2.bill_month <br />4 and t1.net_type = t2.net_type <br />5 and t2.area_code = '5761' <br />6* ) where area_code = '5763' <br />07:19:18 SQL&gt; / <br /><br />8 rows updated. <br /><br />Elapsed: 00:00:00.01 <br /><br />我们先使用rank函数来计算各个地区的话费排名. <br />07:34:19 SQL&gt; select area_code,sum(local_fare) local_fare, <br />07:35:25 2 rank() over (order by sum(local_fare) desc) fare_rank <br />07:35:44 3 from t <br />07:35:45 4 group by area_codee <br />07:35:50 5 <br />07:35:52 SQL&gt; select area_code,sum(local_fare) local_fare, <br />07:36:02 2 rank() over (order by sum(local_fare) desc) fare_rank <br />07:36:20 3 from t <br />07:36:21 4 group by area_code <br />07:36:25 5 / <br /><br />AREA_CODE LOCAL_FARE FARE_RANK <br />---------- -------------- ---------- <br />5765 104548.72 1 <br />5761 54225.41 2 <br />5763 54225.41 2 <br />5764 53156.77 4 <br />5762 52039.62 5 <br /><br />Elapsed: 00:00:00.01 <br /><br />我们可以看到红色标注的地方出现了,跳位,排名3没有出现 <br />下面我们再看看dense_rank查询的结果. <br /><br /><br />07:36:26 SQL&gt; select area_code,sum(local_fare) local_fare, <br />07:39:16 2 dense_rank() over (order by sum(local_fare) desc ) fare_rank <br />07:39:39 3 from t <br />07:39:42 4 group by area_code <br />07:39:46 5 / <br /><br />AREA_CODE LOCAL_FARE FARE_RANK <br />---------- -------------- ---------- <br />5765 104548.72 1 <br />5761 54225.41 2 <br />5763 54225.41 2 <br />5764 53156.77 3 这是这里出现了第三名 <br />5762 52039.62 4 <br /><br />Elapsed: 00:00:00.00 <br /><br /><br />在这个例子中,出现了一个第三名,这就是rank和dense_rank的差别, <br />rank如果出现两个相同的数据,那么后面的数据就会直接跳过这个排名,而dense_rank则不会, <br />差别更大的是,row_number哪怕是两个数据完全相同,排名也会不一样,这个特性在我们想找出对应没个条件的唯一记录的时候又很大用处 <br /><br /><br />1 select area_code,sum(local_fare) local_fare, <br />2 row_number() over (order by sum(local_fare) desc ) fare_rank <br />3 from t <br />4* group by area_code <br />07:44:50 SQL&gt; / <br /><br />AREA_CODE LOCAL_FARE FARE_RANK <br />---------- -------------- ---------- <br />5765 104548.72 1 <br />5761 54225.41 2 <br />5763 54225.41 3 <br />5764 53156.77 4 <br />5762 52039.62 5 <br /><br />在row_nubmer函数中,我们发现,哪怕sum(local_fare)完全相同,我们还是得到了不一样排名,我们可以利用这个特性剔除数据库中的重复记录. <br /><br />这个帖子中的几个例子是为了说明这三个函数的基本用法的. 下个帖子我们将详细介绍他们的一些用法. <br /><br /><br /><br /><br />2. rank函数的介绍 <br /><br />a. 取出数据库中最后入网的n个用户 <br />select user_id,tele_num,user_name,user_status,create_date <br />from ( <br />select user_id,tele_num,user_name,user_status,create_date, <br />rank() over (order by create_date desc) add_rank <br />from user_info <br />) <br />where add_rank &lt;= :n; <br /><br />b.根据object_name删除数据库中的重复记录 <br />create table t as select obj#,name from sys.obj$; <br />再insert into t1 select * from t1 数次. <br />delete from t1 where rowid in ( <br />select row_id from ( <br />select rowid row_id,row_number() over (partition by obj# order by rowid ) rn <br />) where rn &lt;&gt; 1 <br />); <br /><br />c. 取出各地区的话费收入在各个月份排名. <br />SQL&gt; select bill_month,area_code,sum(local_fare) local_fare, <br />2 rank() over (partition by bill_month order by sum(local_fare) desc) area_rank <br />3 from t <br />4 group by bill_month,area_code <br />5 / <br /><br />BILL_MONTH AREA_CODE LOCAL_FARE AREA_RANK <br />--------------- --------------- -------------- ---------- <br />200405 5765 25057.74 1 <br />200405 5761 13060.43 2 <br />200405 5763 13060.43 2 <br />200405 5762 12643.79 4 <br />200405 5764 12487.79 5 <br />200406 5765 26058.46 1 <br />200406 5761 13318.93 2 <br />200406 5763 13318.93 2 <br />200406 5764 13295.19 4 <br />200406 5762 12795.06 5 <br />200407 5765 26301.88 1 <br />200407 5761 13710.27 2 <br />200407 5763 13710.27 2 <br />200407 5764 13444.09 4 <br />200407 5762 13224.30 5 <br />200408 5765 27130.64 1 <br />200408 5761 14135.78 2 <br />200408 5763 14135.78 2 <br />200408 5764 13929.69 4 <br />200408 5762 13376.47 5 <br /><br />20 rows selected. <br />SQL&gt; <br /><br /><br />3. lag和lead函数介绍 <br /><br />取出每个月的上个月和下个月的话费总额 <br />1 select area_code,bill_month, local_fare cur_local_fare, <br />2 lag(local_fare,2,0) over (partition by area_code order by bill_month ) pre_local_fare, <br />3 lag(local_fare,1,0) over (partition by area_code order by bill_month ) last_local_fare, <br />4 lead(local_fare,1,0) over (partition by area_code order by bill_month ) next_local_fare, <br />5 lead(local_fare,2,0) over (partition by area_code order by bill_month ) post_local_fare <br />6 from ( <br />7 select area_code,bill_month,sum(local_fare) local_fare <br />8 from t <br />9 group by area_code,bill_month <br />10* ) <br />SQL&gt; / <br />AREA_CODE BILL_MONTH CUR_LOCAL_FARE PRE_LOCAL_FARE LAST_LOCAL_FARE NEXT_LOCAL_FARE POST_LOCAL_FARE <br />--------- ---------- -------------- -------------- --------------- --------------- --------------- <br />5761 200405 13060.433 0 0 13318.93 13710.265 <br />5761 200406 13318.93 0 13060.433 13710.265 14135.781 <br />5761 200407 13710.265 13060.433 13318.93 14135.781 0 <br />5761 200408 14135.781 13318.93 13710.265 0 0 <br />5762 200405 12643.791 0 0 12795.06 13224.297 <br />5762 200406 12795.06 0 12643.791 13224.297 13376.468 <br />5762 200407 13224.297 12643.791 12795.06 13376.468 0 <br />5762 200408 13376.468 12795.06 13224.297 0 0 <br />5763 200405 13060.433 0 0 13318.93 13710.265 <br />5763 200406 13318.93 0 13060.433 13710.265 14135.781 <br />5763 200407 13710.265 13060.433 13318.93 14135.781 0 <br />5763 200408 14135.781 13318.93 13710.265 0 0 <br />5764 200405 12487.791 0 0 13295.187 13444.093 <br />5764 200406 13295.187 0 12487.791 13444.093 13929.694 <br />5764 200407 13444.093 12487.791 13295.187 13929.694 0 <br />5764 200408 13929.694 13295.187 13444.093 0 0 <br />5765 200405 25057.736 0 0 26058.46 26301.881 <br />5765 200406 26058.46 0 25057.736 26301.881 27130.638 <br />5765 200407 26301.881 25057.736 26058.46 27130.638 0 <br />5765 200408 27130.638 26058.46 26301.881 0 0 <br />20 rows selected. <br /><br />利用lag和lead函数,我们可以在同一行中显示前n行的数据,也可以显示后n行的数据. <br /><br /><br />4. sum,avg,max,min移动计算数据介绍 <br /><br />计算出各个连续3个月的通话费用的平均数 <br />1 select area_code,bill_month, local_fare, <br />2 sum(local_fare) <br />3 over ( partition by area_code <br />4 order by to_number(bill_month) <br />5 range between 1 preceding and 1 following ) &quot;3month_sum&quot;, <br />6 avg(local_fare) <br />7 over ( partition by area_code <br />8 order by to_number(bill_month) <br />9 range between 1 preceding and 1 following ) &quot;3month_avg&quot;, <br />10 max(local_fare) <br />11 over ( partition by area_code <br />12 order by to_number(bill_month) <br />13 range between 1 preceding and 1 following ) &quot;3month_max&quot;, <br />14 min(local_fare) <br />15 over ( partition by area_code <br />16 order by to_number(bill_month) <br />17 range between 1 preceding and 1 following ) &quot;3month_min&quot; <br />18 from ( <br />19 select area_code,bill_month,sum(local_fare) local_fare <br />20 from t <br />21 group by area_code,bill_month <br />22* ) <br />SQL&gt; / <br /><br />AREA_CODE BILL_MONTH LOCAL_FARE 3month_sum 3month_avg 3month_max 3month_min <br />--------- ---------- ---------------- ---------- ---------- ---------- ---------- <br />5761 200405 13060.433 26379.363 13189.6815 13318.93 13060.433 <br />5761 200406 13318.930 40089.628 13363.2093 13710.265 13060.433 <br />5761 200407 13710.265 41164.976 13721.6587 14135.781 13318.93 <br />40089.628 = 13060.433 + 13318.930 + 13710.265 <br />13363.2093 = (13060.433 + 13318.930 + 13710.265) / 3 <br />13710.265 = max(13060.433 + 13318.930 + 13710.265) <br />13060.433 = min(13060.433 + 13318.930 + 13710.265) <br />5761 200408 14135.781 27846.046 13923.023 14135.781 13710.265 <br />5762 200405 12643.791 25438.851 12719.4255 12795.06 12643.791 <br />5762 200406 12795.060 38663.148 12887.716 13224.297 12643.791 <br />5762 200407 13224.297 39395.825 13131.9417 13376.468 12795.06 <br />5762 200408 13376.468 26600.765 13300.3825 13376.468 13224.297 <br />5763 200405 13060.433 26379.363 13189.6815 13318.93 13060.433 <br />5763 200406 13318.930 40089.628 13363.2093 13710.265 13060.433 <br />5763 200407 13710.265 41164.976 13721.6587 14135.781 13318.93 <br />5763 200408 14135.781 27846.046 13923.023 14135.781 13710.265 <br />5764 200405 12487.791 25782.978 12891.489 13295.187 12487.791 <br />5764 200406 13295.187 39227.071 13075.6903 13444.093 12487.791 <br />5764 200407 13444.093 40668.974 13556.3247 13929.694 13295.187 <br />5764 200408 13929.694 27373.787 13686.8935 13929.694 13444.093 <br />5765 200405 25057.736 51116.196 25558.098 26058.46 25057.736 <br />5765 200406 26058.460 77418.077 25806.0257 26301.881 25057.736 <br />5765 200407 26301.881 79490.979 26496.993 27130.638 26058.46 <br />5765 200408 27130.638 53432.519 26716.2595 27130.638 26301.881 <br /><br />20 rows selected. <br /><br />5. ratio_to_report函数的介绍 <br /><br /><br /><br /><br />Quote: <br />1 select bill_month,area_code,sum(local_fare) local_fare, <br />2 ratio_to_report(sum(local_fare)) over <br />3 ( partition by bill_month ) area_pct <br />4 from t <br />5* group by bill_month,area_code <br />SQL&gt; break on bill_month skip 1 <br />SQL&gt; compute sum of local_fare on bill_month <br />SQL&gt; compute sum of area_pct on bill_month <br />SQL&gt; / <br /><br />BILL_MONTH AREA_CODE LOCAL_FARE AREA_PCT <br />---------- --------- ---------------- ---------- <br />200405 5761 13060.433 .171149279 <br />5762 12643.791 .165689431 <br />5763 13060.433 .171149279 <br />5764 12487.791 .163645143 <br />5765 25057.736 .328366866 <br />********** ---------------- ---------- <br />sum 76310.184 1 <br /><br />200406 5761 13318.930 .169050772 <br />5762 12795.060 .162401542 <br />5763 13318.930 .169050772 <br />5764 13295.187 .168749414 <br />5765 26058.460 .330747499 <br />********** ---------------- ---------- <br />sum 78786.567 1 <br /><br />200407 5761 13710.265 .170545197 <br />5762 13224.297 .164500127 <br />5763 13710.265 .170545197 <br />5764 13444.093 .167234221 <br />5765 26301.881 .327175257 <br />********** ---------------- ---------- <br />sum 80390.801 1 <br /><br />200408 5761 14135.781 .170911147 <br />5762 13376.468 .161730539 <br />5763 14135.781 .170911147 <br />5764 13929.694 .168419416 <br />5765 27130.638 .328027751 <br />********** ---------------- ---------- <br />sum 82708.362 1 <br /><br /><br />20 rows selected. <br /><br /><br /><br />6 first,last函数使用介绍 <br /><br /><br /><br /><br />Quote: <br />取出每月通话费最高和最低的两个用户. <br />1 select bill_month,area_code,sum(local_fare) local_fare, <br />2 first_value(area_code) <br />3 over (order by sum(local_fare) desc <br />4 rows unbounded preceding) firstval, <br />5 first_value(area_code) <br />6 over (order by sum(local_fare) asc <br />7 rows unbounded preceding) lastval <br />8 from t <br />9 group by bill_month,area_code <br />10* order by bill_month <br />SQL&gt; / <br /><br />BILL_MONTH AREA_CODE LOCAL_FARE FIRSTVAL LASTVAL <br />---------- --------- ---------------- --------------- --------------- <br />200405 5764 12487.791 5765 5764 <br />200405 5762 12643.791 5765 5764 <br />200405 5761 13060.433 5765 5764 <br />200405 5765 25057.736 5765 5764 <br />200405 5763 13060.433 5765 5764 <br />200406 5762 12795.060 5765 5764 <br />200406 5763 13318.930 5765 5764 <br />200406 5764 13295.187 5765 5764 <br />200406 5765 26058.460 5765 5764 <br />200406 5761 13318.930 5765 5764 <br />200407 5762 13224.297 5765 5764 <br />200407 5765 26301.881 5765 5764 <br />200407 5761 13710.265 5765 5764 <br />200407 5763 13710.265 5765 5764 <br />200407 5764 13444.093 5765 5764 <br />200408 5762 13376.468 5765 5764 <br />200408 5764 13929.694 5765 5764 <br />200408 5761 14135.781 5765 5764 <br />200408 5765 27130.638 5765 5764 <br />200408 5763 14135.781 5765 5764 <br /><br />20 rows selected. <br /><br /><p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://olda.javaeye.com/blog/165595#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 27 Feb 2008 22:43:27 +0800</pubDate>
        <link>http://olda.javaeye.com/blog/165595</link>
        <guid>http://olda.javaeye.com/blog/165595</guid>
      </item>
      <item>
        <title>book mark</title>
        <author>aoaoao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://olda.javaeye.com">aoaoao</a>&nbsp;
          链接：<a href="http://olda.javaeye.com/blog/165461" style="color:red;">http://olda.javaeye.com/blog/165461</a>&nbsp;
          发表时间: 2008年02月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <a href="http://blog.csdn.net/kdnuggets/archive/2008/02/22/2113063.aspx" target="_blank">介绍oracle 分析函数的文章</a>
          <br/>
          <span style="color:red;">
            <a href="http://olda.javaeye.com/blog/165461#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 27 Feb 2008 14:37:32 +0800</pubDate>
        <link>http://olda.javaeye.com/blog/165461</link>
        <guid>http://olda.javaeye.com/blog/165461</guid>
      </item>
      <item>
        <title>长相守</title>
        <author>aoaoao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://olda.javaeye.com">aoaoao</a>&nbsp;
          链接：<a href="http://olda.javaeye.com/blog/164881" style="color:red;">http://olda.javaeye.com/blog/164881</a>&nbsp;
          发表时间: 2008年02月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          长相守是很困难的，随时随地，一生。<br />把同事当成战友，<br />那么以前的同事当成什么呢？<br />今天碰到了这样的事，<br />我怀疑我是否懂得了什么是珍惜。<br /><br />Edison Chen 的道歉说得很好听，语速较慢内容也比较简单，拿来练听力。
          <br/>
          <span style="color:red;">
            <a href="http://olda.javaeye.com/blog/164881#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 25 Feb 2008 21:00:38 +0800</pubDate>
        <link>http://olda.javaeye.com/blog/164881</link>
        <guid>http://olda.javaeye.com/blog/164881</guid>
      </item>
      <item>
        <title>严将严兵</title>
        <author>aoaoao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://olda.javaeye.com">aoaoao</a>&nbsp;
          链接：<a href="http://olda.javaeye.com/blog/164006" style="color:red;">http://olda.javaeye.com/blog/164006</a>&nbsp;
          发表时间: 2008年02月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          很明显，这就是我们组的带兵方针。<br />做得鬼中鬼，方为人上人。<br />今天给我这个task只不过是当南瓜第一天的训练任务，<br />想当老A，就一定要比老百姓付出多一些。<br />不行？<br />不行就上救护车～～
          <br/>
          <span style="color:red;">
            <a href="http://olda.javaeye.com/blog/164006#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 21 Feb 2008 22:38:51 +0800</pubDate>
        <link>http://olda.javaeye.com/blog/164006</link>
        <guid>http://olda.javaeye.com/blog/164006</guid>
      </item>
      <item>
        <title>一声霹雳一把剑</title>
        <author>aoaoao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://olda.javaeye.com">aoaoao</a>&nbsp;
          链接：<a href="http://olda.javaeye.com/blog/163487" style="color:red;">http://olda.javaeye.com/blog/163487</a>&nbsp;
          发表时间: 2008年02月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          特意做了一个怒吼钢七连连歌的mp3,今天同事不停的在哼二人转，于是呼大吼一声：一声霹雳一把剑～ 周围立刻没声了。。<br />下班的时候，看见桌上的草稿纸写着：一群猛虎钢七连。。。<br />回家反复看了这个片段，震撼的不行，特意存在这里。
          <br/>
          <span style="color:red;">
            <a href="http://olda.javaeye.com/blog/163487#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 19 Feb 2008 22:56:08 +0800</pubDate>
        <link>http://olda.javaeye.com/blog/163487</link>
        <guid>http://olda.javaeye.com/blog/163487</guid>
      </item>
      <item>
        <title>生活是有意义的，梦想在等着你们</title>
        <author>aoaoao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://olda.javaeye.com">aoaoao</a>&nbsp;
          链接：<a href="http://olda.javaeye.com/blog/163185" style="color:red;">http://olda.javaeye.com/blog/163185</a>&nbsp;
          发表时间: 2008年02月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          又一个宅男把士兵突击的盘要走了，真心希望他能就此改变～<br /><br /><img src="http://olda.javaeye.com/upload/picture/pic/7980/3d9bc0f3-7ef2-32f4-bc56-ccb03ec5eebf.jpg" /><br /><img src="http://olda.javaeye.com/upload/picture/pic/7978/4f300e16-7266-39e1-bf16-0d4a33c7e583.jpg" />
          <br/>
          <span style="color:red;">
            <a href="http://olda.javaeye.com/blog/163185#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 18 Feb 2008 21:28:54 +0800</pubDate>
        <link>http://olda.javaeye.com/blog/163185</link>
        <guid>http://olda.javaeye.com/blog/163185</guid>
      </item>
      <item>
        <title>七情六欲</title>
        <author>aoaoao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://olda.javaeye.com">aoaoao</a>&nbsp;
          链接：<a href="http://olda.javaeye.com/blog/162870" style="color:red;">http://olda.javaeye.com/blog/162870</a>&nbsp;
          发表时间: 2008年02月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          用了大部分的剩余休息时间，搞定并且整理了todolist,从而使这个博客沦为许愿板的可能降低了不少，算是一个小进步。<br /><br />洗澡的时候考虑了不少需要安排进todo list的事，结果一个感动中国把自己感动得稀里哗啦的，事忘了一大半，看来除了游戏还有些东西能干扰自己，活活。<br /><br />不过这种干扰还是比较值得的，毕竟触及了灵魂。<br /><br />中国足球很给同事面子，当然我是不会给中国足球面子了。
          <br/>
          <span style="color:red;">
            <a href="http://olda.javaeye.com/blog/162870#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 17 Feb 2008 22:31:37 +0800</pubDate>
        <link>http://olda.javaeye.com/blog/162870</link>
        <guid>http://olda.javaeye.com/blog/162870</guid>
      </item>
      <item>
        <title>平常心</title>
        <author>aoaoao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://olda.javaeye.com">aoaoao</a>&nbsp;
          链接：<a href="http://olda.javaeye.com/blog/162442" style="color:red;">http://olda.javaeye.com/blog/162442</a>&nbsp;
          发表时间: 2008年02月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          我们最缺少的就是时间，为什么缺少呢？因为浪费的太多了。
          <br/>
          <span style="color:red;">
            <a href="http://olda.javaeye.com/blog/162442#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 15 Feb 2008 12:32:26 +0800</pubDate>
        <link>http://olda.javaeye.com/blog/162442</link>
        <guid>http://olda.javaeye.com/blog/162442</guid>
      </item>
      <item>
        <title>每天都比昨天好一点</title>
        <author>aoaoao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://olda.javaeye.com">aoaoao</a>&nbsp;
          链接：<a href="http://olda.javaeye.com/blog/162223" style="color:red;">http://olda.javaeye.com/blog/162223</a>&nbsp;
          发表时间: 2008年02月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          又有新的愿望了，看看啥时能实现。<br />【Linux的基本使用】0/1<br />[Stateless session bean] 0/1<br />[MDB]0/1
          <br/>
          <span style="color:red;">
            <a href="http://olda.javaeye.com/blog/162223#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 14 Feb 2008 14:10:32 +0800</pubDate>
        <link>http://olda.javaeye.com/blog/162223</link>
        <guid>http://olda.javaeye.com/blog/162223</guid>
      </item>
      <item>
        <title>createNiceMock很有意义</title>
        <author>aoaoao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://olda.javaeye.com">aoaoao</a>&nbsp;
          链接：<a href="http://olda.javaeye.com/blog/162079" style="color:red;">http://olda.javaeye.com/blog/162079</a>&nbsp;
          发表时间: 2008年02月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          用了createNiceMock收拾了一下httpservletrequest，才觉得easymock还真简单，我这人可笨了，弄了大半天才发现这么个好玩意。<br />现在代码能运行，可还没发现一个下断言的好思路，网上的方法我还不懂，不过我相信，慢慢就懂了。<br /><br />很好玩，刚刚搞明白点easy mock ,公司框架竟然用jmock,而且用的很炫，研究研究8，被我安排在一个相对靠后的重要度了。
          <br/>
          <span style="color:red;">
            <a href="http://olda.javaeye.com/blog/162079#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 13 Feb 2008 16:17:05 +0800</pubDate>
        <link>http://olda.javaeye.com/blog/162079</link>
        <guid>http://olda.javaeye.com/blog/162079</guid>
      </item>
      <item>
        <title>好好活就是做有意义的事</title>
        <author>aoaoao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://olda.javaeye.com">aoaoao</a>&nbsp;
          链接：<a href="http://olda.javaeye.com/blog/162041" style="color:red;">http://olda.javaeye.com/blog/162041</a>&nbsp;
          发表时间: 2008年02月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          许几个愿吧，据说这样会很灵。<br />[EasyMock]1/2<br />[Selenium]0/1<br />更多的[木木的script] <br />[BgmKorean]0/1<br />.....<br />还有很多很多有意义的事，我们现在最缺的就是时间。
          <br/>
          <span style="color:red;">
            <a href="http://olda.javaeye.com/blog/162041#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 13 Feb 2008 11:25:09 +0800</pubDate>
        <link>http://olda.javaeye.com/blog/162041</link>
        <guid>http://olda.javaeye.com/blog/162041</guid>
      </item>
  </channel>
</rss>