<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>拿到一对A，你就要加注、加注、再加注！</title>
    <description></description>
    <link>http://donyee.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>我实现的一个dao助手类</title>
        <author>donyee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://donyee.javaeye.com">donyee</a>&nbsp;
          链接：<a href="http://donyee.javaeye.com/blog/238144" style="color:red;">http://donyee.javaeye.com/blog/238144</a>&nbsp;
          发表时间: 2008年09月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;</p>
<p class="MsoNormal" style="text-indent: 15.75pt;"><span style="font-family: 宋体;">这个类蛮实用的，我在几个项目中都使用。接口如下：</span>
</p>
<p class="MsoNormal" align="left" style="text-align: left;"><strong><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">public</span>
</strong>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> </span>
<strong><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">interface</span>
</strong>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> DaoHelper {</span>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span>
</p>
<p class="MsoNormal" align="left" style="text-align: left;"><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"><span>&nbsp;&nbsp;&nbsp; </span>
</span>
<strong><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">boolean</span>
</strong>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> add(String sql, Object... args);</span>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span>
</p>
<p class="MsoNormal" align="left" style="text-align: left;"><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"><span>&nbsp;&nbsp;&nbsp; </span>
</span>
<strong><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">boolean</span>
</strong>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> add(String sql, Connection conn, Object... args);</span>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span>
</p>
<p class="MsoNormal" align="left" style="text-align: left;"><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"><span>&nbsp;&nbsp;&nbsp; </span>
</span>
<strong><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">int</span>
</strong>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> update(String sql, Object... args);</span>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span>
</p>
<p class="MsoNormal" align="left" style="text-align: left;"><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"><span>&nbsp;&nbsp;&nbsp; </span>
</span>
<strong><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">int</span>
</strong>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> update(String sql, Connection conn, Object... args);</span>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span>
</p>
<p class="MsoNormal" align="left" style="text-align: left;"><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"><span>&nbsp;&nbsp;&nbsp; </span>
</span>
<strong><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">boolean</span>
</strong>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> delete(String sql, Object... args);</span>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span>
</p>
<p class="MsoNormal" align="left" style="text-align: left;"><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"><span>&nbsp;&nbsp;&nbsp; </span>
</span>
<strong><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">boolean</span>
</strong>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> delete(String sql, Connection conn, Object... args);</span>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span>
</p>
<p class="MsoNormal" align="left" style="text-align: left;"><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"><span>&nbsp;&nbsp;&nbsp; </span>
Object getObject(String sql, Class obj, Object... args);</span>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span>
</p>
<p class="MsoNormal" align="left" style="text-align: left;"><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"><span>&nbsp;&nbsp;&nbsp; </span>
Object getObject(String sql, Connection conn, Class obj,
Object... args);</span>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span>
</p>
<p class="MsoNormal" align="left" style="text-align: left;"><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"><span>&nbsp;&nbsp;&nbsp; </span>
List&lt;Object&gt; getList(String sql, Class obj, Object...
args);</span>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span>
</p>
<p class="MsoNormal" align="left" style="text-align: left;"><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"><span>&nbsp;&nbsp;&nbsp; </span>
String queryForString(String sql, Object... args);</span>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span>
</p>
<p class="MsoNormal" align="left" style="text-align: left;"><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"><span>&nbsp;&nbsp;&nbsp; </span>
Long queryForLong(String sql, Object... args);</span>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span>
</p>
<p class="MsoNormal" align="left" style="text-align: left;"><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"><span>&nbsp;&nbsp;&nbsp; </span>
Boolean queryForBoolean(String sql, Object... args);</span>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span>
</p>
<p class="MsoNormal" align="left" style="text-align: left;"><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"><span>&nbsp;&nbsp;&nbsp; </span>
Connection <span style="background: silver none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">getConn</span>
();</span>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span>
</p>
<p class="MsoNormal" align="left" style="text-align: left;"><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"><span>&nbsp;&nbsp;&nbsp; </span>
</span>
<strong><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">void</span>
</strong>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> returnConnection(Connection conn);</span>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span>
</p>
<p class="MsoNormal" align="left" style="text-align: left;"><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"><span>&nbsp;&nbsp;&nbsp; </span>
</span>
<strong><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">void</span>
</strong>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> rollBack(Connection conn);</span>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span>
</p>
<p class="MsoNormal" style="text-indent: 15pt;"><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">}</span>
</p>
<p class="MsoNormal" style="margin-left: 51.75pt; text-indent: -36pt;"><!-- [if !supportLists]--><span lang="EN-US"><span>（1）<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
</span>
</span>
<!-- [endif]--><span style="font-family: 宋体;">第一个</span>
<span lang="EN-US">add</span>
<span style="font-family: 宋体;">方法用来执行</span>
<span lang="EN-US">insert</span>
<span style="font-family: 宋体;">语句，并且提交事务；</span>
<span lang="EN-US">sql</span>
<span style="font-family: 宋体;">为数据库语句，</span>
<span lang="EN-US">args</span>
<span style="font-family: 宋体;">为数据库参数，要和数据库语句里的&ldquo;？&rdquo;对应。</span>
</p>
<p class="MsoNormal" style="margin-left: 51.75pt; text-indent: -36pt;"><!-- [if !supportLists]--><span lang="EN-US"><span>（2）<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
</span>
</span>
<!-- [endif]--><span style="font-family: 宋体;">第二个</span>
<span lang="EN-US">add</span>
<span style="font-family: 宋体;">方法多了一个</span>
<span lang="EN-US">Connetion</span>
<span style="font-family: 宋体;">参数，该方法将使用这个</span>
<span lang="EN-US">Conn</span>
<span style="font-family: 宋体;">来创建</span>
<span lang="EN-US">PreparedStatement</span>
<span style="font-family: 宋体;">，但是执行结束后不提交，需要手动提交。</span>
</p>
<p class="MsoNormal" style="margin-left: 51.75pt; text-indent: -36pt;"><!-- [if !supportLists]--><span lang="EN-US"><span>（3）<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
</span>
</span>
<!-- [endif]--><span style="font-family: 宋体;">其他</span>
<span lang="EN-US">update</span>
<span style="font-family: 宋体;">、</span>
<span lang="EN-US">delete</span>
<span style="font-family: 宋体;">同上</span>
</p>
<p class="MsoNormal" style="margin-left: 51.75pt; text-indent: -36pt;"><!-- [if !supportLists]--><span lang="EN-US"><span>（4）<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
</span>
</span>
<!-- [endif]--><span lang="EN-US"><span>&nbsp;</span>
getObject</span>
<span style="font-family: 宋体;">方法返回一个</span>
<span lang="EN-US">bean</span>
<span style="font-family: 宋体;">，把</span>
<span lang="EN-US">ResultSet</span>
<span style="font-family: 宋体;">转化为</span>
<span lang="EN-US">Bean</span>
<span style="font-family: 宋体;">，</span>
<span lang="EN-US">bean</span>
<span style="font-family: 宋体;">的属性必须和数据库列名称相同。</span>
</p>
<p class="MsoNormal" style="margin-left: 51.75pt; text-indent: -36pt;"><!-- [if !supportLists]--><span lang="EN-US"><span>（5）<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
</span>
</span>
<!-- [endif]--><span lang="EN-US"><span>&nbsp;</span>
getList</span>
<span style="font-family: 宋体;">方法返回一个</span>
<span lang="EN-US">List</span>
<span style="font-family: 宋体;">，将</span>
<span lang="EN-US">ResultSet</span>
<span style="font-family: 宋体;">处理为一个</span>
<span lang="EN-US">List</span>
<span style="font-family: 宋体;">返回</span>
</p>
<p class="MsoNormal" style="margin-left: 51.75pt; text-indent: -36pt;"><!-- [if !supportLists]--><span lang="EN-US"><span>（6）<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
</span>
</span>
<!-- [endif]--><span lang="EN-US"><span>&nbsp;</span>
queryForString</span>
<span style="font-family: 宋体;">，</span>
<span lang="EN-US">queryForLong</span>
<span style="font-family: 宋体;">，</span>
<span lang="EN-US">queryForBoolean</span>
<span style="font-family: 宋体;">将分别返回</span>
<span lang="EN-US">String</span>
<span style="font-family: 宋体;">、</span>
<span lang="EN-US">Long</span>
<span style="font-family: 宋体;">、</span>
<span lang="EN-US">Boolean</span>
<span style="font-family: 宋体;">结果。</span>
</p>
<p class="MsoNormal" style="margin-left: 15.75pt;"><span style="font-family: 宋体;">实现我使用了</span>
<span lang="EN-US">apache common</span>
<span style="font-family: 宋体;">里的</span>
<span lang="EN-US" style="background: silver none repeat scroll 0%; font-size: 10pt; font-family: &quot;Courier New&quot;; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">dbutils</span>
<span style="font-size: 10pt; font-family: 宋体; color: black;">包，另外由</span>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">DataSource</span>
<span style="font-size: 10pt; font-family: 宋体; color: black;">提供数据库</span>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">Connection</span>
<span style="font-size: 10pt; font-family: 宋体; color: black;">，我使用的是</span>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">c3p0</span>
<span style="font-size: 10pt; font-family: 宋体; color: black;">的实现，用</span>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">spring bean set </span>
<span style="font-size: 10pt; font-family: 宋体; color: black;">注入的。代码参考附件。</span>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"></span>
</p>
<p class="MsoNormal" style="margin-left: 15.75pt;"><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;</span>
</p>
<p class="MsoNormal" style="margin-left: 15.75pt;"><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">PS:</span>
<span style="font-size: 10pt; font-family: 宋体; color: black;">抛砖引玉，大家要是有更好的方法的话，可以拿出来共享一下，提高代码质量、加快开发速度。</span>
<span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"></span>
</p>
<p class="MsoNormal" style="margin-left: 15.75pt;"><span lang="EN-US" style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;</span>
</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://donyee.javaeye.com/blog/238144#comments" style="color:red;">已有 <strong>5</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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>Sun, 07 Sep 2008 19:41:12 +0800</pubDate>
        <link>http://donyee.javaeye.com/blog/238144</link>
        <guid>http://donyee.javaeye.com/blog/238144</guid>
      </item>
      <item>
        <title>面试小结与职业生涯思考</title>
        <author>donyee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://donyee.javaeye.com">donyee</a>&nbsp;
          链接：<a href="http://donyee.javaeye.com/blog/235835" style="color:red;">http://donyee.javaeye.com/blog/235835</a>&nbsp;
          发表时间: 2008年09月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;</p>
<p class="MsoNormal" style="text-indent: 15.75pt;"><span style="font-family: 宋体;">最近面试了三次，其中有一次是电话面试（杭州某知名公司哦），北京这有一次也是北京某知名公司。知名公司的面试过程都还不错，主要是他们问的也都还好，我答的都蛮烂的。面试结果大家都应该猜到呢。我还是继续老地方呆着，再准备半年看看。</span>
</p>
<p class="MsoNormal" style="text-indent: 15.75pt;"><span style="font-family: 宋体;">面试的结果如果被我的老板知道后，我估计他肯定会降低我的工资（面试过后我问其中一家公司，如果薪水低点会不会考虑我，人家说不要初级开发的）我的信心倍受打击啊。面试的题目也就是</span>
<span lang="EN-US">Spring</span>
<span style="font-family: 宋体;">、</span>
<span lang="EN-US">hibernate</span>
<span style="font-family: 宋体;">、</span>
<span lang="EN-US">struts</span>
<span style="font-family: 宋体;">等等，就是没有招</span>
<span lang="EN-US">Tapestry</span>
<span style="font-family: 宋体;">的。面试的题目好像也蛮基础的，如果用过的话大概都能讲出来，但是我却没有。抓紧时间多学习学习啊。</span>
</p>
<p class="MsoNormal" style="text-indent: 15.75pt;"><span style="font-family: 宋体;">面试过程中我的老毛病又暴露出来呢，表达能力欠缺。面试有紧张，说话不连贯。这个问题一定要解决，准备平时多练习英语口语，周末去搭讪</span>
<span lang="EN-US">MM</span>
<span style="font-family: 宋体;">，一举三得！</span>
</p>
<p class="MsoNormal" style="text-indent: 15.75pt;"><span style="font-family: 宋体;">我现在所在的公司是一家卡业务公司，主要做积分卡、储值卡，最近还推出了信用卡（测试阶段，我负责管理系统开发）。公司没有经验丰富的</span>
<span lang="EN-US">java</span>
<span style="font-family: 宋体;">开发人员，所以有什么事情也都是大家在一起看看，不然就搜索网络看看。其他都还不错，管理蛮轻松的。</span>
</p>
<p class="MsoNormal" style="text-indent: 15.75pt;"><span style="font-family: 宋体;">前几天看到个词&ldquo;</span>
 <span style="font-family: 宋体;">不疯魔，不成活&rdquo;，未来的半年时间里我将疯狂一下，一定把技术各方面都提高一个档次。</span>
</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; <span lang="EN-US" style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;">Fighting! Fighting! Fighting!</span>
</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://donyee.javaeye.com/blog/235835#comments" style="color:red;">已有 <strong>5</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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, 02 Sep 2008 17:16:44 +0800</pubDate>
        <link>http://donyee.javaeye.com/blog/235835</link>
        <guid>http://donyee.javaeye.com/blog/235835</guid>
      </item>
      <item>
        <title>服务器端Session和SNA</title>
        <author>donyee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://donyee.javaeye.com">donyee</a>&nbsp;
          链接：<a href="http://donyee.javaeye.com/blog/232147" style="color:red;">http://donyee.javaeye.com/blog/232147</a>&nbsp;
          发表时间: 2008年08月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;</p>
<p class="MsoNormal" style="text-indent: 15.75pt;"><span lang="EN-US">SNA</span>
<span style="font-family: 宋体;">（</span>
<span lang="EN-US">Share Nothing
Architecture</span>
<span style="font-family: 宋体;">）最近讨论的蛮多的，大概就是为了应用服务器的可伸缩性，而不在应用服务器端保存状态信息。具体到</span>
<span lang="EN-US">J2EE webapp</span>
<span style="font-family: 宋体;">来说，就是不使用</span>
<span lang="EN-US">HttpSession</span>
<span style="font-family: 宋体;">在本地保存会话状态，而把会话状态保存到其它地方如</span>
<span lang="EN-US">Memcached</span>
<span style="font-family: 宋体;">中，这样部署多个</span>
<span lang="EN-US">Tomcat</span>
<span style="font-family: 宋体;">来服务时，任何机器都可以向客户端提供服务。下面我就服务器端状态数据类型（生命周期）来分析，看看怎样构建高性能的</span>
<span lang="EN-US">SNA</span>
<span style="font-family: 宋体;">。</span>
</p>
<p class="MsoNormal" style="text-indent: 15.75pt;"><span style="font-family: 宋体;">第一种服务器端状态数据：应用系统运行所需要的数据，如用户权限部分包括用户名、角色名，这些数据是在整个应用系统都必须存在。这部分数据应该保存在</span>
<span lang="EN-US">Memcached</span>
<span style="font-family: 宋体;">中，并且当某个应用页面修改后，要和</span>
<span lang="EN-US">Memcached</span>
<span style="font-family: 宋体;">同步。即应用系统中要保存一份、</span>
<span lang="EN-US">Memcached</span>
<span style="font-family: 宋体;">中也要保存一份，这样当某一</span>
<span lang="EN-US">Tomcat</span>
<span style="font-family: 宋体;">停止服务时，其他正常运行的</span>
<span lang="EN-US">Tomcat</span>
<span style="font-family: 宋体;">可以继续提供服务而不会出现要求重新登入等情况。</span>
</p>
<p class="MsoNormal" style="text-indent: 15.75pt;"><span style="font-family: 宋体;">第二种服务器端状态数据：在几个页面里传递数据，如多个的注册页面或者查询页面和显示页面分开的情形。这部分数据相对于第一种数据变化较大，如果保存到</span>
<span lang="EN-US">Memcached</span>
<span style="font-family: 宋体;">中的话，要和</span>
<span lang="EN-US">Memcached</span>
<span style="font-family: 宋体;">多次交互访问，所以就直接保存在本地即用</span>
<span lang="EN-US">HttpSession</span>
<span style="font-family: 宋体;">来保存。这样的好处就是不需要和</span>
<span lang="EN-US">Memcached</span>
<span style="font-family: 宋体;">多次交互，而且负载均衡方案最好是使用</span>
<span lang="EN-US">IP per Server</span>
<span style="font-family: 宋体;">，就是每个</span>
<span lang="EN-US">IP</span>
<span style="font-family: 宋体;">即其后续的访问都由一个</span>
<span lang="EN-US">Tomcat</span>
<span style="font-family: 宋体;">来提供服务。当某</span>
<span lang="EN-US">Tomcat</span>
<span style="font-family: 宋体;">停止服务时，只会丢失一部分较少的数据。</span>
</p>
<p class="MsoNormal" style="text-indent: 15.75pt;"><span style="font-family: 宋体;">第三种服务器状态数据：永久持久化数据如数据库数据。这部分我不是很了解。方案应该有许多，可以把常访问的行数据或者较少行的表数据放到</span>
<span lang="EN-US">Memcached</span>
<span style="font-family: 宋体;">中，应用程序先访问</span>
<span lang="EN-US">Memcached</span>
<span style="font-family: 宋体;">，如果找不到则再访问数据库。（好像超出本文范围呢，等我以后研究清楚再来）</span>
</p>
<p class="MsoNormal" style="text-indent: 15.75pt;"><span style="font-family: 宋体;">对于第一二种来说，本地</span>
<span lang="EN-US">HttpSession</span>
<span style="font-family: 宋体;">相当于一级</span>
<span lang="EN-US">cache</span>
<span style="font-family: 宋体;">，而</span>
<span lang="EN-US">Memcached</span>
<span style="font-family: 宋体;">则为二级</span>
<span lang="EN-US">cache</span>
<span style="font-family: 宋体;">，这样的应用结构蛮清晰的。</span>
</p>
<p>
<span lang="EN-US" style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;">PS:</span>
<span style="font-size: 10.5pt; font-family: 宋体;">本人才疏学浅，目前在学习高性能互联网架构，写的有错误的地方，欢迎一起探讨。</span>
</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://donyee.javaeye.com/blog/232147#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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>Sun, 24 Aug 2008 21:43:54 +0800</pubDate>
        <link>http://donyee.javaeye.com/blog/232147</link>
        <guid>http://donyee.javaeye.com/blog/232147</guid>
      </item>
      <item>
        <title>首篇—序</title>
        <author>donyee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://donyee.javaeye.com">donyee</a>&nbsp;
          链接：<a href="http://donyee.javaeye.com/blog/229021" style="color:red;">http://donyee.javaeye.com/blog/229021</a>&nbsp;
          发表时间: 2008年08月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;</p>
<p class="MsoNormal" style="text-indent: 15.75pt;"><span style="font-family: 宋体;">最近打算往互联网应用方面发展，但是去面过一次才知道，新人是没有机会的。</span>
</p>
<p class="MsoNormal" style="text-indent: 15.75pt;"><span style="font-family: 宋体;">我计划在未来的一段时间里，整一个互联网应用模型出来，总架构师就是本人。具体的做什么应用我还没有考虑清楚，不过数据库我选择的是</span>
<span lang="EN-US">Postgresql</span>
<span style="font-family: 宋体;">，应用服务器选择</span>
<span lang="EN-US">Tomcat</span>
<span style="font-family: 宋体;">，</span>
<span lang="EN-US">WWW</span>
<span style="font-family: 宋体;">服务器选择</span>
<span lang="EN-US">Nginx</span>
<span style="font-family: 宋体;">，使用</span>
<span lang="EN-US">Memcached</span>
<span style="font-family: 宋体;">作分布式缓存，保存服务器端</span>
<span lang="EN-US">Session</span>
<span style="font-family: 宋体;">和其他缓存数据，其他的先不考虑。</span>
</p>
<p class="MsoNormal" style="text-indent: 15.75pt;"><span style="font-family: 宋体;">具体的架构大概是：</span>
<span lang="EN-US">Nginx</span>
<span style="font-family: 宋体;">做负载均衡，代理多个</span>
<span lang="EN-US">Tomcat</span>
<span style="font-family: 宋体;">，应用程序部署在</span>
<span lang="EN-US">Tomcat</span>
<span style="font-family: 宋体;">中。数据保存在</span>
<span lang="EN-US">Postgresql</span>
<span style="font-family: 宋体;">中，</span>
<span lang="EN-US">Postgresql</span>
<span style="font-family: 宋体;">也用多个，把查询和写数据的分开，或者是直接把数据根据键散列分区即保存到不同的数据库里，我比较倾向于后一种方案。</span>
</p>
<p class="MsoNormal" style="text-indent: 15.75pt;"><span lang="EN-US">Java</span>
<span style="font-family: 宋体;">框架的话，选择</span>
<span lang="EN-US">Tapestry5+Spring+JDBC</span>
<span style="font-family: 宋体;">，把我以前封装的一个</span>
<span lang="EN-US">JDBC</span>
<span style="font-family: 宋体;">助手类功能再完善一下，先凑活着用。</span>
</p>
<p class="MsoNormal" style="text-indent: 15.75pt;"><span style="font-family: 宋体;">大概就是这样呢，先做一些基础组件的开发工作，第一件事是用</span>
<span lang="EN-US">Memcached</span>
<span style="font-family: 宋体;">来保存</span>
<span lang="EN-US">Http Session</span>
<span style="font-family: 宋体;">，下周着手开发实现，等下篇来讲吧。</span>
</p>
<p class="MsoNormal" style="text-indent: 15.75pt;"><span lang="EN-US">PS:</span>
<span style="font-family: 宋体;">下周会有某公司的电话面试，但是感觉机会不大，谁让咱是新人呢。</span>
</p>
<p class="MsoNormal" style="text-indent: 15.75pt;"><span lang="EN-US">PS2:</span>
<span style="font-family: 宋体;">昨晚去玩轮滑，状态超好，居然学会了两招，而且昨天还是</span>
<span lang="EN-US">816</span>
<span style="font-family: 宋体;">（不要溜）。</span>
</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://donyee.javaeye.com/blog/229021#comments" style="color:red;">已有 <strong>3</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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>Sun, 17 Aug 2008 21:07:20 +0800</pubDate>
        <link>http://donyee.javaeye.com/blog/229021</link>
        <guid>http://donyee.javaeye.com/blog/229021</guid>
      </item>
      <item>
        <title>想往互联网公司发展</title>
        <author>donyee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://donyee.javaeye.com">donyee</a>&nbsp;
          链接：<a href="http://donyee.javaeye.com/blog/226222" style="color:red;">http://donyee.javaeye.com/blog/226222</a>&nbsp;
          发表时间: 2008年08月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;</p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">最近看了一些公司的招聘信息，我投了三份简历，都是互联网公司。我对互联网公司的定义就是那些依靠网站提供相关服务的。我投的一家是做医疗信息整合的、一家是做视频的、还有一家是做娱乐（模特、演员）信息，最后这家看起来很酷的，我是上个周末发送简历的，不知道要等多久，到现在还没有一家回应我，连个面试的机会都没有看到。给个面试机会吧，大佬！</span>
</p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">过去的一年我都是在做管理系统开发，那些数据库的ＣＲＵＤ操作，我都写的有些烦呢。在网络上看了许多高性能网站架构的文章，觉的很有兴趣。集群的数据库、分布式文件系统、分布式缓存系统，我觉的我自己有技术狂热症，处理大规模的网络应用，好像蛮有挑战的。可是我目前的工作根本不需要解决这些问题，所以我想换个互联网公司看看。</span>
</p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">我的情况呢，是</span>
<span lang="EN-US">07</span>
<span style="font-family: 宋体;">年</span>
<span lang="EN-US">7</span>
<span style="font-family: 宋体;">月开始工作的，对于</span>
<span lang="EN-US">Java </span>
<span style="font-family: 宋体;">比较熟悉，一直都是做</span>
<span lang="EN-US">BS</span>
<span style="font-family: 宋体;">结构的管理系统，我现在的公司是做卡支付方面的，我负责前台的管理系统，也独立完成了几个系统的开发，做的都还不错。对于</span>
<span lang="EN-US">Java</span>
<span style="font-family: 宋体;">开发框架</span>
<span lang="EN-US">Spring</span>
<span style="font-family: 宋体;">、</span>
<span lang="EN-US">Hibernate</span>
<span style="font-family: 宋体;">、</span>
<span lang="EN-US">Tapestry5</span>
<span style="font-family: 宋体;">比较熟悉，能够开发应用，其他</span>
<span lang="EN-US">web</span>
<span style="font-family: 宋体;">框架如</span>
<span lang="EN-US">Struts&hellip;</span>
<span style="font-family: 宋体;">可以快速上手。其他</span>
<span lang="EN-US">Html</span>
<span style="font-family: 宋体;">、</span>
<span lang="EN-US">javascript</span>
<span style="font-family: 宋体;">、</span>
<span lang="EN-US">css</span>
<span style="font-family: 宋体;">都开发应用，我这管理系统都是我一个人独立开发的。</span>
</p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">另外，对互联网有浓厚兴趣，看了许多高性能网络应用的文章，所以对这些架构有些了解。对一些常用的组件、程序我自己都有研究，如</span>
<span lang="EN-US">Nginx</span>
<span style="font-family: 宋体;">服务器、</span>
<span lang="EN-US">Memcached</span>
<span style="font-family: 宋体;">缓存组件，对</span>
<span lang="EN-US">Linux</span>
<span style="font-family: 宋体;">常用命令熟悉，我们这的生产环境都是</span>
<span lang="EN-US">Linux</span>
<span style="font-family: 宋体;">的</span><span style="font-family: 宋体;">。</span>
</p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">这些就算我的一些自我介绍吧，如果你对我的信息感兴趣，欢迎索取我的个人简历。我的电子邮箱</span>
<span lang="EN-US">don.yee#163.com</span>
</p>
<p class="MsoNormal" style="text-indent: 21pt;"><span lang="EN-US">&nbsp;</span>
</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://donyee.javaeye.com/blog/226222#comments" style="color:red;">已有 <strong>69</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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, 09 Aug 2008 18:05:35 +0800</pubDate>
        <link>http://donyee.javaeye.com/blog/226222</link>
        <guid>http://donyee.javaeye.com/blog/226222</guid>
      </item>
      <item>
        <title>超垃圾的面试经历</title>
        <author>donyee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://donyee.javaeye.com">donyee</a>&nbsp;
          链接：<a href="http://donyee.javaeye.com/blog/193052" style="color:red;">http://donyee.javaeye.com/blog/193052</a>&nbsp;
          发表时间: 2008年05月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;</p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">今天去了家</span><span lang="EN-US">XX</span><span style="font-family: 宋体;">公司面试，遇到两个很</span><span lang="EN-US">XX</span><span style="font-family: 宋体;">的面试官.</span><span style="font-family: 宋体;">问的问题都是</span><span lang="EN-US">SSH</span><span style="font-family: 宋体;">，其它的嘛也没有问。结果我说一直都是用</span><span lang="EN-US">Tapestry 5</span><span style="font-family: 宋体;">做开发，就没有再问</span><span lang="EN-US">Struts</span><span style="font-family: 宋体;">问题。然后就是问</span><span lang="EN-US">Hibernate</span><span style="font-family: 宋体;">，问那个什么配置怎么写。</span><span lang="EN-US">1</span><span style="font-family: 宋体;">使用数据库的序列怎么配置？（就那么配呗，日！偏要我说具体的）</span><span lang="EN-US">2</span><span style="font-family: 宋体;">数据库怎么配置？（也要我说具体的）</span><span lang="EN-US">3</span><span style="font-family: 宋体;">动态的表怎么配置？（没有用过，回答不知道）</span><span lang="EN-US">4</span><span style="font-family: 宋体;">怎么看</span><span lang="EN-US">Hibernate</span><span style="font-family: 宋体;">延迟加载（回答我不是很了解，大概是性能方面。）</span><span lang="EN-US">&hellip;</span><span style="font-family: 宋体;">前两个问题是蛮无聊的。我没有深入使用</span><span lang="EN-US">Hibernate</span><span style="font-family: 宋体;">，所以</span><span lang="EN-US">Hibernate</span><span style="font-family: 宋体;">的问题回答的都很烂。没有问</span><span lang="EN-US">Spring</span><span style="font-family: 宋体;">问题。</span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">其它的问题，就没有呢。我还真是晕啊！我目前是在一家小公司，做信息系统开发，我嫌弃</span><span lang="EN-US">Spring </span><span style="font-family: 宋体;">配置麻烦就用</span><span lang="EN-US">Google Guice</span><span style="font-family: 宋体;">做依赖注入。有个系统开始是使用</span><span lang="EN-US">Spring</span><span style="font-family: 宋体;">提供的</span><span lang="EN-US">JDBC</span><span style="font-family: 宋体;">封装，结果性能很差（好像是用反射实现的），我就自己写了个</span><span lang="EN-US">JDBC</span><span style="font-family: 宋体;">封装类，很方便使用。</span><span lang="EN-US">Hibernate</span><span style="font-family: 宋体;">也用过一次，只有一个</span><span lang="EN-US">Entity</span><span style="font-family: 宋体;">，是我为了简化开发（不想写数据库</span><span lang="EN-US">DDL</span><span style="font-family: 宋体;">），直接由</span><span lang="EN-US">Entity</span><span style="font-family: 宋体;">生成数据库表定义，还是使用了</span><span lang="EN-US">Hibernate Annotation</span><span style="font-family: 宋体;">（不想写</span><span lang="EN-US">xml</span><span style="font-family: 宋体;">配置）。我选择</span><span lang="EN-US">Tapestry 5</span><span style="font-family: 宋体;">做</span><span lang="EN-US">web</span><span style="font-family: 宋体;">框架是因为</span><span lang="EN-US">Tapestry 5</span><span style="font-family: 宋体;">开发很方便，我感觉比</span><span lang="EN-US">Struts</span><span style="font-family: 宋体;">方便。</span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">我选择开发框架的时候都是尽量的简化工作量，而且效果也都不错。没有深入是因为没有使用需求。难道现在其他公司的什么项目开发都是用的是</span><span lang="EN-US">SSH</span><span style="font-family: 宋体;">？还是我比较不幸的遇到这个只用</span><span lang="EN-US">SSH</span><span style="font-family: 宋体;">的极品公司？</span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">我个人认为面试中要考察的是应聘者解决问题的能力，考虑问题是否全面，解决的步骤是否合理等。某框架的某个配置参数怎么拼写？我晕，除了可以了解对框架的熟练程度之外，比较的脑残！</span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">我的简历写的也是偏向描述我解决问题的能力，说明了我在项目中解决的一些我认为关键的问题。结果没有人关心这些东西，超烂的面试，强烈的</span><span lang="EN-US">BS</span><span style="font-family: 宋体;">这两人。我不适合这个公司，这个公司也不适合我。</span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-size: 10.5pt; font-family: 宋体;">以后选择公司的时候一定要研究清楚，这种垃圾面试让人很不爽。发发牢骚，欢迎大家抛砖讨论。</span></p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://donyee.javaeye.com/blog/193052#comments" style="color:red;">已有 <strong>89</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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, 14 May 2008 17:58:30 +0800</pubDate>
        <link>http://donyee.javaeye.com/blog/193052</link>
        <guid>http://donyee.javaeye.com/blog/193052</guid>
      </item>
      <item>
        <title>从零开始构建数据仓库一建立开发环境</title>
        <author>donyee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://donyee.javaeye.com">donyee</a>&nbsp;
          链接：<a href="http://donyee.javaeye.com/blog/178962" style="color:red;">http://donyee.javaeye.com/blog/178962</a>&nbsp;
          发表时间: 2008年04月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          

<p class="MsoNormal" style="text-indent: 28pt"><span style="font-size: 14pt; font-family: 宋体">现在是网络时代，许多软件都可以免费的下载学习使用，当然如果是商业应用的话，最好要购买</span><span style="font-size: 14pt">LICENSE</span><span style="font-size: 14pt; font-family: 宋体">。学习使用我个人推荐</span><span style="font-size: 14pt">Oracle</span><span style="font-size: 14pt; font-family: 宋体">的相关软件产品，因为</span><span style="font-size: 14pt">Oracle</span><span style="font-size: 14pt; font-family: 宋体">公司提供的都是完整的企业版软件下载，不像其他的公司都提供评估版的。而且需要</span><span style="font-size: 14pt">Oracle</span><span style="font-size: 14pt; font-family: 宋体">技术的工作机会、薪水都还不错的。</span><span style="font-size: 14pt"></span></p>

<p class="MsoNormal" style="text-indent: 28pt"><span style="font-size: 14pt; font-family: 宋体">数据仓库需要那些软件技术呢，下面列出我所了解的一部分：</span><span style="font-size: 14pt"></span></p>

<p class="MsoNormal" style="margin-left: 39pt; text-indent: -18pt"><!--[if !supportLists]--><span style="font-size: 14pt"><span>1）<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><!--[endif]--><span style="font-size: 14pt; font-family: 宋体">数据库：关系数据库是目前的主流应用。</span><span style="font-size: 14pt"></span></p>

<p class="MsoNormal" style="margin-left: 39pt; text-indent: -18pt"><!--[if !supportLists]--><span style="font-size: 14pt"><span>2）<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><!--[endif]--><span style="font-size: 14pt">OLAP</span><span style="font-size: 14pt; font-family: 宋体">服务器：支持多维数据模型。</span><span style="font-size: 14pt"></span></p>

<p class="MsoNormal" style="margin-left: 39pt; text-indent: -18pt"><!--[if !supportLists]--><span style="font-size: 14pt"><span>3）<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><!--[endif]--><span style="font-size: 14pt; font-family: 宋体">相关</span><span style="font-size: 14pt">API</span><span style="font-size: 14pt; font-family: 宋体">：没有</span><span style="font-size: 14pt">API</span><span style="font-size: 14pt; font-family: 宋体">，就是&ldquo;巧妇难为无米之炊&ldquo;。</span><span style="font-size: 14pt"></span></p>

<p class="MsoNormal" style="margin-left: 21pt"><span style="font-size: 14pt">Oracle 10g</span><span style="font-size: 14pt; font-family: 宋体">就符合以上要求，内建有</span><span style="font-size: 14pt">OLAP</span><span style="font-size: 14pt; font-family: 宋体">引擎，提供了</span><span style="font-size: 14pt">OLAP</span><span style="font-size: 14pt; font-family: 宋体">、</span><span style="font-size: 14pt">DM</span><span style="font-size: 14pt; font-family: 宋体">的</span><span style="font-size: 14pt">JAVA API</span><span style="font-size: 14pt; font-family: 宋体">，</span><span style="font-size: 14pt"></span></p>

<p class="MsoNormal"><span style="font-size: 14pt; font-family: 宋体">其他的一些开发工具都可以从</span><span style="font-size: 14pt">Oracle</span><span style="font-size: 14pt; font-family: 宋体">站点下载，如</span><span style="font-size: 14pt">OWB(Oracle
Warehouse Builder)</span><span style="font-size: 14pt; font-family: 宋体">。</span><span style="font-size: 14pt">Java</span><span style="font-size: 14pt; font-family: 宋体">开发工具</span><span style="font-size: 14pt">Eclipse</span><span style="font-size: 14pt; font-family: 宋体">、</span><span style="font-size: 14pt">NetBean</span><span style="font-size: 14pt; font-family: 宋体">都可以从互联网上免费下载使用。</span><span style="font-size: 14pt"></span></p>

<p class="MsoNormal" style="text-indent: 38.8pt"><span style="font-size: 14pt; font-family: 宋体">目前市场上的数据仓库、</span><span style="font-size: 14pt">OLAP</span><span style="font-size: 14pt; font-family: 宋体">、</span><span style="font-size: 14pt">BI</span><span style="font-size: 14pt; font-family: 宋体">软件厂商有</span><span style="font-size: 14pt">Business
Object</span><span style="font-size: 14pt; font-family: 宋体">（已被</span><span style="font-size: 14pt">SAP</span><span style="font-size: 14pt; font-family: 宋体">购买</span><span style="font-size: 14pt"> </span><span style="font-size: 14pt; font-family: 宋体">），</span><span style="font-size: 14pt">Congons</span><span style="font-size: 14pt; font-family: 宋体">（被</span><span style="font-size: 14pt">IBM</span><span style="font-size: 14pt; font-family: 宋体">购买），</span><span style="font-size: 14pt">Hyperion</span><span style="font-size: 14pt; font-family: 宋体">（被</span><span style="font-size: 14pt">Oracle</span><span style="font-size: 14pt; font-family: 宋体">购买），以上三家是数据仓库市场的领头羊，都是在</span><span style="font-size: 14pt">2007</span><span style="font-size: 14pt; font-family: 宋体">年被大佬给并购，因为大佬们也看好这片市场。</span><span style="font-size: 14pt">Microsoft</span><span style="font-size: 14pt; font-family: 宋体">也占有一部分市场，其</span><span style="font-size: 14pt">SQL
server2005</span><span style="font-size: 14pt; font-family: 宋体">也提供了许多</span><span style="font-size: 14pt">OLAP</span><span style="font-size: 14pt; font-family: 宋体">、</span><span style="font-size: 14pt">BI</span><span style="font-size: 14pt; font-family: 宋体">功能，而且</span><span style="font-size: 14pt">Microsoft</span><span style="font-size: 14pt; font-family: 宋体">的文档蛮齐全的，有许多中文文档，不过我做的都是</span><span style="font-size: 14pt">Java+Liunx/Unix+Oracle</span><span style="font-size: 14pt; font-family: 宋体">的开发。</span><span style="font-size: 14pt"></span></p>

<p class="MsoNormal" style="text-indent: 38.8pt"><span style="font-size: 14pt; font-family: 宋体">一个完整的数据仓库要包括以下应用：</span><span style="font-size: 14pt"></span></p>

<p class="MsoNormal" style="margin-left: 98.8pt; text-indent: -60pt"><!--[if !supportLists]--><span style="font-size: 14pt"><span>1）<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: 'Times New Roman'">&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></span></span><!--[endif]--><span style="font-size: 14pt">ETL</span><span style="font-size: 14pt; font-family: 宋体">工具，把数据从事务型数据库放到数据仓库中，还包括数据的转化、清洗等。</span><span style="font-size: 14pt"></span></p>

<p class="MsoNormal" style="margin-left: 98.8pt; text-indent: -60pt"><!--[if !supportLists]--><span style="font-size: 14pt"><span>2）<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: 'Times New Roman'">&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></span></span><!--[endif]--><span style="font-size: 14pt">OLAP</span><span style="font-size: 14pt; font-family: 宋体">查询支持。</span><span style="font-size: 14pt"></span></p>

<p class="MsoNormal" style="margin-left: 98.8pt; text-indent: -60pt"><!--[if !supportLists]--><span style="font-size: 14pt"><span>3）<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: 'Times New Roman'">&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></span></span><!--[endif]--><span style="font-size: 14pt">Data
Mining</span><span style="font-size: 14pt; font-family: 宋体">，数据挖掘功能。</span><span style="font-size: 14pt"></span></p>

<p class="MsoNormal" style="margin-left: 98.8pt; text-indent: -60pt"><!--[if !supportLists]--><span style="font-size: 14pt"><span>4）<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: 'Times New Roman'">&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></span></span><!--[endif]--><span style="font-size: 14pt; font-family: 宋体">其他功能</span><span style="font-size: 14pt">&mdash;</span><span style="font-size: 14pt; font-family: 宋体">我也不清楚。</span><span style="font-size: 14pt"></span></p>

<p class="MsoNormal" style="margin-left: 38.8pt"><span style="font-size: 14pt">&nbsp;</span></p>

<p class="MsoNormal" style="margin-left: 38.8pt"><span style="font-size: 14pt">OVER!</span></p>


          <br/><br/>
          <span style="color:red;">
            <a href="http://donyee.javaeye.com/blog/178962#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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>Wed, 02 Apr 2008 20:02:33 +0800</pubDate>
        <link>http://donyee.javaeye.com/blog/178962</link>
        <guid>http://donyee.javaeye.com/blog/178962</guid>
      </item>
      <item>
        <title>关于BLOG主人</title>
        <author>donyee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://donyee.javaeye.com">donyee</a>&nbsp;
          链接：<a href="http://donyee.javaeye.com/blog/172779" style="color:red;">http://donyee.javaeye.com/blog/172779</a>&nbsp;
          发表时间: 2008年03月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我以后在这里写我的技术文章呢，javaeye还不错的。我有个非技术BLOG在 donyee.blog.hexun.com</p><p>里，大家有兴趣可以去看看。</p><p><span style="font-size: 10.5pt; font-family: 'Times New Roman'"><span>&nbsp;</span></span><span style="font-size: 10.5pt; font-family: 宋体">&nbsp;&nbsp;<em><strong><span style="font-family: 黑体"> 本人保留该</span></strong></em></span><em><strong><span style="font-family: 黑体"><span style="font-size: 10.5pt; font-family: 'Times New Roman'">blog</span><span style="font-size: 10.5pt; font-family: 宋体">文章的所有权，相关转载必须有我的原地址链接。另外，本人对于</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'">blog</span><span style="font-size: 10.5pt; font-family: 宋体">文章所造成的损失不承担任何后果。</span></span></strong></em> </p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://donyee.javaeye.com/blog/172779#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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>Sun, 16 Mar 2008 21:57:18 +0800</pubDate>
        <link>http://donyee.javaeye.com/blog/172779</link>
        <guid>http://donyee.javaeye.com/blog/172779</guid>
      </item>
      <item>
        <title>从零开始构建数据仓库--序</title>
        <author>donyee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://donyee.javaeye.com">donyee</a>&nbsp;
          链接：<a href="http://donyee.javaeye.com/blog/170598" style="color:red;">http://donyee.javaeye.com/blog/170598</a>&nbsp;
          发表时间: 2008年03月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我目前（08-03）在做一个数据仓库项目，是一个小规模的，也许以后会添加更多的功能，但是目前只有一个立方体，三个维。我是第一次做数据仓库方面的应用，公司里也没有其他这方面的同事，所以呢，我就是这个项目的总架构师、总负责人、总开发、总&hellip;虽然我本科毕业后，工作时间还不到一年，但是我是不惧怕任何挑战的。天天写个SQL语句会有什么前途，要做就做件大案子。<br />&nbsp;&nbsp;&nbsp;&nbsp;     我的这个项目也是包括了数据仓库的所有元素，数据抽取+OLAP+DM。就是规模小了许多，业务也比较简单。但是呢，都是我摸索出来的，当然也参考了许多书籍、文章、技术文档。因为我目前还没有看到这方面的详细介绍整个过程的文章，所以我就抛砖砸玉来啦！<br /><p>&nbsp;</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://donyee.javaeye.com/blog/170598#comments" style="color:red;">已有 <strong>1</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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, 12 Mar 2008 17:25:59 +0800</pubDate>
        <link>http://donyee.javaeye.com/blog/170598</link>
        <guid>http://donyee.javaeye.com/blog/170598</guid>
      </item>
  </channel>
</rss>