<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>firewood</title>
    <description></description>
    <link>http://firewood.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>File类的一些api</title>
        <author>firewood</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://firewood.javaeye.com">firewood</a>&nbsp;
          链接：<a href="http://firewood.javaeye.com/blog/182632" style="color:red;">http://firewood.javaeye.com/blog/182632</a>&nbsp;
          发表时间: 2008年04月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          写了一天的文件操作，熟悉了些api，记下：<br />mkdir和mkdirs的区别     <br />创建此抽象路径名指定的目录。 <br />mkdirs() 创建此抽象路径名指定的目录，包括创建必需但不存在的父目录。 <br /><br />File m = new File( "a/b"); <br />m.mkdir(); <br />因为不存在a目录，所以不能建立b目录 <br /><br />list 与  listFiles区别<br />list 以绝对路径返回该目录下所有的文件名的一个字符串数组.   <br />listFiles 以相对路径返回该目录下所有的文件名的一个字符串数组.<br /><br /><br />delete 与 deleteOnExit区别<br />delete 立即删除文件<br />deleteOnExit jvm停止时删除文件
          <br/>
          <span style="color:red;">
            <a href="http://firewood.javaeye.com/blog/182632#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/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></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 14 Apr 2008 16:54:49 +0800</pubDate>
        <link>http://firewood.javaeye.com/blog/182632</link>
        <guid>http://firewood.javaeye.com/blog/182632</guid>
      </item>
      <item>
        <title>oracle 无网络情况下的问题解决</title>
        <author>firewood</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://firewood.javaeye.com">firewood</a>&nbsp;
          链接：<a href="http://firewood.javaeye.com/blog/177260" style="color:red;">http://firewood.javaeye.com/blog/177260</a>&nbsp;
          发表时间: 2008年03月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          跟客户显示时，在无网络情况下oracle10g监听不能正常启动。<br /><br />启动netManage 添加或者修改监听程序，将tcp/ip主机设置成localhost<br />再在win服务中启动监听，此时可以成功启动，通过pl/sql developer连接仍然抱错。<br /><br />不急，仍然启动netManage 在服务器命名的地址配置中添加地址2 主机名设置为localhost，保存。 ok，搞定。
          <br/>
          <span style="color:red;">
            <a href="http://firewood.javaeye.com/blog/177260#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/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/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, 28 Mar 2008 14:37:51 +0800</pubDate>
        <link>http://firewood.javaeye.com/blog/177260</link>
        <guid>http://firewood.javaeye.com/blog/177260</guid>
      </item>
      <item>
        <title>答复: Hibernate实现分页查询的原理分析</title>
        <author>firewood</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://firewood.javaeye.com">firewood</a>&nbsp;
          链接：<a href="http://firewood.javaeye.com/blog/177048" style="color:red;">http://firewood.javaeye.com/blog/177048</a>&nbsp;
          发表时间: 2008年03月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="quote_title">robbin 写道</div><div class="quote_div"><br /><br />再来看net.sf.hibernate.dialect.Oracle9Dialect:<br /><br />[code:1]public boolean supportsLimit() {<br />  return true;<br />}<br /><br />public String getLimitString(String sql) {<br />  StringBuffer pagingSelect = new StringBuffer(100);<br />  pagingSelect.append("select * from ( select row_.*, rownum rownum_ from ( ");<br />  pagingSelect.append(sql);<br />  pagingSelect.append(" ) row_ where rownum &lt;= ?) where rownum_ > ?");<br />  return pagingSelect.toString();<br />}[/code:1]<br /><br />Oracle采用嵌套3层的查询语句结合rownum来实现分页，这在Oracle上是最快的方式，如果只是一层或者两层的查询语句的rownum不能支持order by。<br /></div><br /><br />Oracle的这种实现如果有order by子句依然有问题。某些时候会导致翻页有记录重复或者遗失，很难找到规律，非常奇怪。<br /><br />后来去google了一下，有Oracle专家说需要order by的时候必须带上unique的字段，例如主键或者rowid等。<br /><br />另外，在使用这种采用rownum的查询时，尽管速度相对比较快，但是后台Oracle在内存和CPU的消耗上会增加许多。其实除非结果集非常庞大(几万以上)，并且必须翻倒很后面(skip的记录很多)，采用ResultSet.absolute方法性能还可以，并没有数量级上的差别。
          <br/>
          <span style="color:red;">
            <a href="http://firewood.javaeye.com/blog/177048#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/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></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 27 Mar 2008 21:42:50 +0800</pubDate>
        <link>http://firewood.javaeye.com/blog/177048</link>
        <guid>http://firewood.javaeye.com/blog/177048</guid>
      </item>
      <item>
        <title>答复: OpenSessionInView会不会影响性能？</title>
        <author>firewood</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://firewood.javaeye.com">firewood</a>&nbsp;
          链接：<a href="http://firewood.javaeye.com/blog/176980" style="color:red;">http://firewood.javaeye.com/blog/176980</a>&nbsp;
          发表时间: 2008年03月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          我写了一个简单的webapp在Tomcat5.5.12上面做了一个小测试。在JSP页面里面循环1万次输出字符串，程序在远程服务器上面运行，网络是ADSL宽带，filter确实被阻塞了20秒左右。然后我另外开了一个flashget去下载服务器上的大文件，模拟网络速度比较慢的环境，filter被阻塞了50秒左右。分别做了三次测试。另外当页面下载过程中直接点击浏览器stop按钮，则JSP执行被打断，filter立刻解除阻塞，被执行完毕。<br /><br />结论证明，使用OpenSessionInView的时候，如果render的页面数据量非常大，并且客户端网络速度很慢的情况下，由于页面的输出时间过程很长，确实会造成filter被长时间阻塞。对于OpenSessionInViewFilter来说，就会造成数据库连接被保持很长的时间，才能被关闭。<br /><br />不过，对于Spring的OpenSessionInViewFilter来说，虽然数据库连接被保持了过长的时间，但是并没有锁定数据库资源，特别是事务资源。<strong>因为Spring的事务是通过TransactionInterceptor来实现的，在MVC结构中，当最后一个业务bean被调用结束以后，Transaction就已经被提交了。此后，虽然数据库连接还保持中，但是数据库资源没有锁定问题。</strong><br /><br />完整的调用示意图：<br /><br />request -&gt; (OpenSessionInViewFilter打开Session) -&gt;  ServletDispatcher -&gt; Action -&gt; (打开Connection，启动事务) -&gt; spring bean -&gt; another spring bean -&gt; (提交事务) -&gt; bean执行完毕，返回Action -&gt; render view(JSP/Template) -&gt; (OpenSessionInViewFilter关闭Session和Connection)
          <br/>
          <span style="color:red;">
            <a href="http://firewood.javaeye.com/blog/176980#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/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/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 27 Mar 2008 17:29:45 +0800</pubDate>
        <link>http://firewood.javaeye.com/blog/176980</link>
        <guid>http://firewood.javaeye.com/blog/176980</guid>
      </item>
      <item>
        <title>潜了很久终于忍不住了。。。</title>
        <author>firewood</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://firewood.javaeye.com">firewood</a>&nbsp;
          链接：<a href="http://firewood.javaeye.com/blog/176929" style="color:red;">http://firewood.javaeye.com/blog/176929</a>&nbsp;
          发表时间: 2008年03月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <img src="/images/smiles/icon_smile.gif"/><img src="/images/smiles/icon_smile.gif"/><img src="/images/smiles/icon_smile.gif"/>
          <br/>
          <span style="color:red;">
            <a href="http://firewood.javaeye.com/blog/176929#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/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/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 27 Mar 2008 16:43:23 +0800</pubDate>
        <link>http://firewood.javaeye.com/blog/176929</link>
        <guid>http://firewood.javaeye.com/blog/176929</guid>
      </item>
  </channel>
</rss>