<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>西安JavaEye饭局群</title>
    <description>广招来自西安的JavaEye的伙计们，大家经常聚聚，吃吃，喝喝，坐坐，聊聊... ...
本人联系方式：
QQ:13963415
MSN:leeguannan#msn.com
E-mail：leegn#126.com</description>
    <link>http://xian.group.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>Michael</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://michael.javaeye.com">Michael</a>&nbsp;
          链接：<a href="http://xian.group.javaeye.com/group/blog/211496" style="color:red;">http://xian.group.javaeye.com/group/blog/211496</a>&nbsp;
          发表时间: 2008年07月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>西安地图</p>
          <br/>
          <span style="color:red;">
            <a href="http://xian.group.javaeye.com/group/blog/211496#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></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 04 Jul 2008 13:34:24 +0800</pubDate>
        <link>http://xian.group.javaeye.com/group/blog/211496</link>
        <guid>http://xian.group.javaeye.com/group/blog/211496</guid>
      </item>
      <item>
        <title>Appfuse的不惑</title>
        <author>O.Lions</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://o-lions.javaeye.com">O.Lions</a>&nbsp;
          链接：<a href="http://xian.group.javaeye.com/group/blog/84724" style="color:red;">http://xian.group.javaeye.com/group/blog/84724</a>&nbsp;
          发表时间: 2007年05月30日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          开始接触Appfuse了，眼前的项目就要开工了，忍不住自己写这些东西，有感于最近两周来看过所有关于Appfuse的先驱们！公司这边要求用Appfuse的时候，在JAVAEYE看到了robbin关于Appfuse--&ldquo;玩具论&rdquo;的文字，从起初的感叹到现在开始务实的进入Appfuse体系，采集下各位先驱的名言，每个人都有自己不同的看法，在面对Appfuse是好是坏的时候，我还是感谢Appfuse给自己带来了一个新的思想境界，而不是仅仅看它开发速度有多快，多灵活，集成的框架有多少。在J道里有人提出将组建思想发扬广大，做为一个出入行业一年的我来说，有太多的东西要用大脑认真思考，总觉得还有太多的东西需要学习，公司的技术总监虽然不断的给我灌输着好多先进的理念，忽然感觉脑子不够用了，忽然觉得现在对很多开源组件那种激动感觉没有了，而是发现自己开始有了一种对思想欲罢不能的感触，在看了&ldquo;江南白衣&rdquo;的&ldquo;SpringSide&rdquo;的时候，忽然让自己有了种耳目一新的感觉，感谢这些先驱者了，Appfuse，我也希望很快可以像Robbin说的那样，接受他的&ldquo;玩具论&rdquo;。
          <br/>
          <span style="color:red;">
            <a href="http://xian.group.javaeye.com/group/blog/84724#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></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 30 May 2007 12:05:20 +0800</pubDate>
        <link>http://xian.group.javaeye.com/group/blog/84724</link>
        <guid>http://xian.group.javaeye.com/group/blog/84724</guid>
      </item>
      <item>
        <title>所支持拖拽功能的Swing-JTree代码</title>
        <author>soleegn</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://xiancoder.javaeye.com">soleegn</a>&nbsp;
          链接：<a href="http://xian.group.javaeye.com/group/blog/75830" style="color:red;">http://xian.group.javaeye.com/group/blog/75830</a>&nbsp;
          发表时间: 2007年04月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>备份原型</p>
          <br/>
          <span style="color:red;">
            <a href="http://xian.group.javaeye.com/group/blog/75830#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></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 28 Apr 2007 11:33:00 +0800</pubDate>
        <link>http://xian.group.javaeye.com/group/blog/75830</link>
        <guid>http://xian.group.javaeye.com/group/blog/75830</guid>
      </item>
      <item>
        <title>Annotation的幻想</title>
        <author>soleegn</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://xiancoder.javaeye.com">soleegn</a>&nbsp;
          链接：<a href="http://xian.group.javaeye.com/group/blog/71849" style="color:red;">http://xian.group.javaeye.com/group/blog/71849</a>&nbsp;
          发表时间: 2007年04月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>前一段各位老大都在Bolg里谈了自己对<font face="Arial">Annotation的看法，有说好的，有说坏的，我看只要是有用的都是好的。</font></p>
<p>最近在做一个项目，由于数据模型是动态的，而且出于性能方面的考虑只能舍弃hibernate，从头来做，回归到Spring+DAO+JDBC时代，其实比单纯的DAO+JDBC已经进步了许多了，毕竟不用去考虑事务问题了，方便多了... ...</p>
<p>但是hibernate本身还是有很多东西可以借鉴的，比方说新加入的<font face="Arial">Annotation包，摄取了XML配置，比原先的使用方法又方便了许多了～于是借鉴一下～</font></p>
<p>看看原先的代码:</p>
<div class="code_title">java 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-j">
    <li class="alt"><span><span>List&nbsp;listResult&nbsp;=&nbsp;</span><span class="keyword">super</span><span>.getJdbcTemplate().queryForList(sql); &nbsp;&nbsp;</span></span></li>
    <li class=""><span></span><span class="keyword">if</span><span>&nbsp;(listResult.size()&nbsp;&gt;&nbsp;</span><span class="number">0</span><span>)&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">for</span><span>&nbsp;(Iterator&nbsp;it&nbsp;=&nbsp;listResult.iterator();&nbsp;it.hasNext();)&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map&nbsp;map&nbsp;=&nbsp;(Map)&nbsp;it.next(); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SysUser&nbsp;user&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;SysUser(); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setId(map.get(</span><span class="string">&quot;SYSUSERID&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;SYSUSERID&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setName(map.get(</span><span class="string">&quot;SYSUSERNAME&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;SYSUSERNAME&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setAlias(map.get(</span><span class="string">&quot;SYSUSERALIAS&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;SYSUSERALIAS&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setPassword(map.get(</span><span class="string">&quot;SYSUSERPASSWORD&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;SYSUSERPASSWORD&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setDesc(map.get(</span><span class="string">&quot;SYSUSERDESC&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;SYSUSERDESC&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setPhone(map.get(</span><span class="string">&quot;PHONE&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;PHONE&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setMobile(map.get(</span><span class="string">&quot;MOBILE&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;MOBILE&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setMail(map.get(</span><span class="string">&quot;MAIL&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;MAIL&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setReverse1(map.get(</span><span class="string">&quot;SYSUSERREVERSE1&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;SYSUSERREVERSE1&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setReverse2(map.get(</span><span class="string">&quot;SYSUSERREVERSE2&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;SYSUSERREVERSE2&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setHeadShipId(map.get(</span><span class="string">&quot;HEADSHIPID&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;HEADSHIPID&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setOrganizationId(map.get(</span><span class="string">&quot;ORGANIZATIONID&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;ORGANIZATIONID&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setPositionId(map.get(</span><span class="string">&quot;POSITIONID&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;POSITIONID&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setTitleId(map.get(</span><span class="string">&quot;TITLEID&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;TITLEID&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list.add(user); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>}&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>看看这段代码，多可怜满屏幕充斥着set方法，写的人头昏眼花的，辛苦的体验。</p>
<p>那考虑一下hibernate的做法，在PO中直接加入<font face="Arial">Annotation，直接对属性标注，告诉它&ldquo;你和表中的XXX字段关联，并且你还是一个主键（你不是主键，不要自作多情的去当ID）&rdquo;，这样就可以简化许多了！</font></p>
<p>可以直接去掉</p>
<div class="code_title">java 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-j">
    <li class="alt"><span><span class="keyword">for</span><span>&nbsp;(Iterator&nbsp;it&nbsp;=&nbsp;listResult.iterator();&nbsp;it.hasNext();)&nbsp;{ &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map&nbsp;map&nbsp;=&nbsp;(Map)&nbsp;it.next(); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SysUser&nbsp;user&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;SysUser(); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setId(map.get(</span><span class="string">&quot;SYSUSERID&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;SYSUSERID&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setName(map.get(</span><span class="string">&quot;SYSUSERNAME&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;SYSUSERNAME&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setAlias(map.get(</span><span class="string">&quot;SYSUSERALIAS&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;SYSUSERALIAS&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setPassword(map.get(</span><span class="string">&quot;SYSUSERPASSWORD&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;SYSUSERPASSWORD&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setDesc(map.get(</span><span class="string">&quot;SYSUSERDESC&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;SYSUSERDESC&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setPhone(map.get(</span><span class="string">&quot;PHONE&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;PHONE&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setMobile(map.get(</span><span class="string">&quot;MOBILE&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;MOBILE&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setMail(map.get(</span><span class="string">&quot;MAIL&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;MAIL&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setReverse1(map.get(</span><span class="string">&quot;SYSUSERREVERSE1&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;SYSUSERREVERSE1&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setReverse2(map.get(</span><span class="string">&quot;SYSUSERREVERSE2&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;SYSUSERREVERSE2&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setHeadShipId(map.get(</span><span class="string">&quot;HEADSHIPID&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;HEADSHIPID&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setOrganizationId(map.get(</span><span class="string">&quot;ORGANIZATIONID&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;ORGANIZATIONID&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setPositionId(map.get(</span><span class="string">&quot;POSITIONID&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;POSITIONID&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setTitleId(map.get(</span><span class="string">&quot;TITLEID&quot;</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;map.get(</span><span class="string">&quot;TITLEID&quot;</span><span>).toString()&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list.add(user); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>我们交给一个方法，让它自行去进行数据的取出和封装～多方便！</p>
<p>这样可以，那么我们同样可以告诉一个PO &rdquo;你和数据库中的XXX表相关联，自己去做基本的CRUD吧～&ldquo;你放心，只要方法处理得当就就可以去掉现在DAO实现层中的所有的基本CRUD方法。</p>
<p>思想再继续延伸下去，如果我们再PO的属性中标记出其他的信息，比方说告诉他&ldquo;你和表示层上的XXX控件相对应&rdquo;，其实request无非也就是个Map而已，一样的，我们可以直接通过<font face="Arial">Annotation的解释方法，把页面上传入Action层的与PO有关的简单信息直接封装到PO中，而无需再用一堆的set来设置值。</font></p>
<p>我们再看看ROR的做法，一个命令，生成数据库中对应的操作方法，简单CRUD页面，其实我们也可以这样做，用<font face="Arial">Annotation我们可以告诉PO对数据库上与谁关联，告诉页面又与谁关联～一个基于JAVA的ROR框架又出现了～～</font></p>
<p>呵呵，小弟不才，也就是想像，这样做其实就扔掉了JAVA本身的分层明确的优点，各个部分都耦合的不能再耦合了～</p>
          <br/>
          <span style="color:red;">
            <a href="http://xian.group.javaeye.com/group/blog/71849#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></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 17 Apr 2007 13:16:40 +0800</pubDate>
        <link>http://xian.group.javaeye.com/group/blog/71849</link>
        <guid>http://xian.group.javaeye.com/group/blog/71849</guid>
      </item>
      <item>
        <title>从Hibernate范型DAO设计打造的自用DAO</title>
        <author>soleegn</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://xiancoder.javaeye.com">soleegn</a>&nbsp;
          链接：<a href="http://xian.group.javaeye.com/group/blog/71838" style="color:red;">http://xian.group.javaeye.com/group/blog/71838</a>&nbsp;
          发表时间: 2007年04月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>几天前拜读了<strong>rainlife</strong>大哥哥的文章：</p>
<p><a href="http://www.javaeye.com/topic/69293">www.javaeye.com/topic/69293</a></p>
<p>于是乎自行改造了项目中的原有抽象结构:</p>
<p>范型DAO将所有DAO的CRUD方法使用范型抽象到此层面。</p>
<div class="code_title">IGenericDAO.java 代码</div>
<div class="dp-highlighter" style="WIDTH: 102.58%; HEIGHT: 272px">
<div class="bar"></div>
<ol class="dp-j">
    <li class="alt"><span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">interface</span><span>&nbsp;IGenericDAO<t></t>&nbsp;{ &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;List<t></t>&nbsp;find(String&nbsp;sql)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;NullSqlStringException,&nbsp;</span> </li>
    <li class=""><span>UnformatSelectStringException,AccessDataException; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;T&nbsp;save(T&nbsp;t)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;NullPointerException,AccessDataException; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">int</span><span>&nbsp;deleteById(String&nbsp;id)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;AccessDataException; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;T&nbsp;update(T&nbsp;t)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;NullPointerException,AccessDataException; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;T&nbsp;getById(String&nbsp;id)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;AccessDataException; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>}&nbsp;&nbsp;</span> </li>
</ol>
</div>
<p>此DAO层接口主要处理针对某一PO的特殊操作的方法。</p>
<div class="code_title">ISysUserDao.java 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-j">
    <li class="alt"><span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">interface</span><span>&nbsp;ISysUserDao<sysuser></sysuser>&nbsp;</span><span class="keyword">extends</span><span>&nbsp;IGenericDAO<sysuser></sysuser>&nbsp;{ &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;initializeRoles(SysUser&nbsp;user)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;NullPointerException; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;initializeOrganization(SysUser&nbsp;user)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;NullPointerException; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;initializeHeadShip(SysUser&nbsp;user)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;NullPointerException; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;initializePosition(SysUser&nbsp;user)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;NullPointerException; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;initializeTitle(SysUser&nbsp;user)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;NullPointerException; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;initializeWorkGroups(SysUser&nbsp;user)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;NullPointerException; &nbsp;&nbsp;</span> </li>
    <li class=""><span>}&nbsp;&nbsp;</span> </li>
</ol>
</div>
<p>其实，范型的真实类型已经在这一层上体现了，我们使用范型主要还是为了减少在此层接口中大量出现的相同的CRUD的方法的定义。</p>
          <br/>
          <span style="color:red;">
            <a href="http://xian.group.javaeye.com/group/blog/71838#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></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 17 Apr 2007 12:45:00 +0800</pubDate>
        <link>http://xian.group.javaeye.com/group/blog/71838</link>
        <guid>http://xian.group.javaeye.com/group/blog/71838</guid>
      </item>
      <item>
        <title>  方向</title>
        <author>pengjun_lovecoding@hotmail.com</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://pjun.javaeye.com">pengjun_lovecoding@hotmail.com</a>&nbsp;
          链接：<a href="http://xian.group.javaeye.com/group/blog/52335" style="color:red;">http://xian.group.javaeye.com/group/blog/52335</a>&nbsp;
          发表时间: 2007年02月05日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><font size="5">&nbsp;方向</font></p>
<p><font size="1">（2006年9月26日&nbsp; 写在废纸上的胡思乱想）</font></p>
<p>现在的我没有方向？真的没有方向。<br />
&nbsp; &quot;再就业&quot;快两个月了，两个月里面我做了些什么？工作，轻松的工作。<br />
&nbsp; 工作异常的轻松，没有加班也没有太严格的时间限制。<br />
&nbsp; 真的很轻松，真的轻松吗？轻松的工作，心为什么这么累。<br />
&nbsp; 心为什么这么累?<br />
&nbsp; 人说：书写是自己与自己的对话。<br />
&nbsp; 此时，我问我的心：为什么这么累？<br />
&nbsp; 心说：没有方向<br />
&nbsp; 我问：我的方向在那里？<br />
&nbsp; 心说：不知道，但是我本着心的职责告诉你&mdash;&mdash;你真的没有方向<br />
&nbsp; 混乱、迷失...<br />
&nbsp; 在我与我的心的对话中都得不到一个确切得答案。<br />
&nbsp; 似乎...有些逻辑错误...<br />
&nbsp; 看来，我真得没有方向。<br />
&nbsp; &quot;我的方向在那?&quot;<br />
&nbsp; 我把问题告诉我正在敲打键盘的手。<br />
&nbsp; 手说：肯定不在上面那些无里头的文字里。<br />
&nbsp; 我问：我的方向在那里？<br />
&nbsp; 手，有点不听使唤。近似疯狂的速度敲击键盘。<br />
&nbsp; 我呵斥道：嘿！伙计，我的方向在那里？<br />
&nbsp; 手，沉默！<br />
&nbsp; 注视着我的手，手依旧沉默。<br />
&nbsp; 我无趣的抬头，短暂晕眩，密密麻麻的一片。<br />
&nbsp; 整屏的System.out.println（#$%^&amp;*);<br />
&nbsp; 达芬奇秘密，我清醒时的第一反映。<br />
&nbsp; 我问手：这是什么意思？<br />
&nbsp; 手说：你的工作<br />
&nbsp; 我强调：我的方向在那？<br />
&nbsp; 手，又一次沉默。<br />
&nbsp; 我有些沮丧，想哭...<br />
&nbsp; 喃喃：轻松的工作，心累？心，为什么会累？<br />
&nbsp; 我感性的心和我赖以为生的手没能给我答案。<br />
&nbsp; 谁？谁能给我答案？<br />
&nbsp; 筋疲力尽,眼皮开始亲热...<br />
&nbsp; 似乎是梦。<br />
&nbsp; 梦中，好多人和我说话。<br />
&nbsp; 他们把我围在里面，喃喃的和我说话。<br />
&nbsp; 看不清是谁，却一刻不停<br />
&nbsp; 我有些浮躁，想努力的摆脱他们的包围。<br />
&nbsp; 徒劳，一次一次的徒劳...<br />
&nbsp; 我有些愤怒，大声的喊：Quietly！<br />
&nbsp; 不知是我声音太小，还是底气不足，他们依旧喃喃<br />
&nbsp; 我近乎绝望，又无力抗拒，他们依旧喃喃<br />
&nbsp; 心，我的心。越来越重...越来越累...<br />
&nbsp; 渐渐迷睡。<br />
&nbsp; 我也喃喃：心，怎么会累？<br />
&nbsp; 猛的醒来，他们依旧喃喃。话语却清晰可辩.<br />
&nbsp; ...<br />
&nbsp; &quot;...不会C，我觉得就像手里面少把刷子...;不过没关系，就你应该学起来快...&quot;<br />
&nbsp; &quot;...Hibernate就是好用，多对多的表操作一条语句就可以搞定...&quot;<br />
&nbsp; &quot;...小伙，有前途啊，好好学。Linux很有前途的&quot;<br />
&nbsp; &quot;...怎么还在用JB啊，现在是Java程序员都会用Eclipes了...&quot;<br />
&nbsp; ... <br />
&nbsp; &quot;...你们项目用什么架构啊？什么，什么也不用... 晕！..我们现在的项目用Struts＋Spring＋<br />
&nbsp;&nbsp; Hibernate＋EJB ^_^&quot;<br />
&nbsp; &quot;...你们也用WebService啊？用Apache Soap那只能说才入门 ... 呵呵&quot;<br />
&nbsp; ...<br />
&nbsp; &quot;...要想考研的就要好好看书，特别是英语。你什么时候开始复习高数啊...&quot;<br />
&nbsp; ... ...<br />
&nbsp; 话语如风，轻抚而过。心如海洋，波澜涌动。风四方起，海水无方向。<br />
&nbsp; 我似有触动问：我的方向在那里？<br />
&nbsp; 四周寂静，他们不见了。<br />
&nbsp; 手和心强烈抗议道：没见眼皮如漆似胶了吗？你忍心吗？<br />
&nbsp; 该睡觉了，梦里我喃喃道：我的方向在那里？<br />
&nbsp; 我的朋友请告诉我。&nbsp; </p>
          <br/>
          <span style="color:red;">
            <a href="http://xian.group.javaeye.com/group/blog/52335#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></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 05 Feb 2007 17:35:13 +0800</pubDate>
        <link>http://xian.group.javaeye.com/group/blog/52335</link>
        <guid>http://xian.group.javaeye.com/group/blog/52335</guid>
      </item>
      <item>
        <title>过河卒</title>
        <author>pengjun_lovecoding@hotmail.com</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://pjun.javaeye.com">pengjun_lovecoding@hotmail.com</a>&nbsp;
          链接：<a href="http://xian.group.javaeye.com/group/blog/52334" style="color:red;">http://xian.group.javaeye.com/group/blog/52334</a>&nbsp;
          发表时间: 2007年02月05日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <font style="padding: 1px; color: rgb(255, 255, 255); height: 10px;">过河卒</font><wbr></wbr><br />
<br />
&ldquo;楚河-汉界&rdquo;，将中国象棋的棋盘分成两大阵营；<br />
棋盘上的棋子，最普通的莫过于&ldquo;兵&rdquo;和&ldquo;卒&rdquo;；<br />
对他们来讲，过&ldquo;河&rdquo;难，过&ldquo;河&rdquo;后更难；<br />
因为他们，只能前进，不可退后；<br />
而每前行一步，付出的努力都比别人更多；<br />
为此，他们的成功，更显魅力！！！<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &mdash;&mdash;&mdash;摘自戴习为《过河卒》<br />
<br />
平凡而简单的人一个，无权无势也无牵无挂。<br />
一路厮杀，只进不退，死而后已，岂不爽哉！<br />
收起对&ldquo;车&rdquo;日行千里的羡慕；<br />
收起对&ldquo;马&rdquo;左右逢缘的感叹；<br />
目标记在心里面，向前进。<br />
一次一步，一步一脚印，跬步千里<br />
这个角色很适合现在的我。<br />
<br />
特将空间更名为<font color="#ee1000"><wbr></wbr>过河卒</font><wbr></wbr>以自勉。
          <br/>
          <span style="color:red;">
            <a href="http://xian.group.javaeye.com/group/blog/52334#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></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 05 Feb 2007 17:29:38 +0800</pubDate>
        <link>http://xian.group.javaeye.com/group/blog/52334</link>
        <guid>http://xian.group.javaeye.com/group/blog/52334</guid>
      </item>
  </channel>
</rss>