<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>willvvv</title>
    <description></description>
    <link>http://willvvv.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>willvvv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://willvvv.javaeye.com">willvvv</a>&nbsp;
          链接：<a href="http://willvvv.javaeye.com/blog/151849" style="color:red;">http://willvvv.javaeye.com/blog/151849</a>&nbsp;
          发表时间: 2007年12月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          这些日子还真的不知道自己在忙撒～<br />下周就要考试了，四天五门课，全部都是没咋去过的课程，下下周考三门，这是大四的课吗？疯了都～所以大家都逃课也很疯狂这学期，考研的基本不去，不考研的或者自学或者玩魔兽～呵呵<br />然后就是学习方面，因为到了找工作的时间了却还没有找工作，因为不想去北京，感觉那里生存压力太大～想回武汉～但是离武汉太远了，几个招聘会都没赶上，几个面试都放弃了～<br /><br />看了那么多招聘的信息都要经验的，而且会使几个框架～于是乎这大半年狂看框架，什么struts2.0 spring hibernate dwr acegi lucene也看了不少的东西，基本的原理都能理解了，也做了些小的练习，都是照着例子做～真正实践的机会还是没有，或许因为时间的问题，我想自己的态度也有问题～<br />所以考完试要静下心做个项目出来，为工作准备！<br />希望自己能找个好的工作～<br />今天是老妈的生日，祝老妈生日快乐！～我和老妹爱你～<br />希望在武汉有工作机会的话告诉我一声，谢谢各位～<br />will.zhai@yahoo.com.cn
          <br/>
          <span style="color:red;">
            <a href="http://willvvv.javaeye.com/blog/151849#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 29 Dec 2007 16:43:33 +0800</pubDate>
        <link>http://willvvv.javaeye.com/blog/151849</link>
        <guid>http://willvvv.javaeye.com/blog/151849</guid>
      </item>
      <item>
        <title>JVM中的堆和栈</title>
        <author>willvvv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://willvvv.javaeye.com">willvvv</a>&nbsp;
          链接：<a href="http://willvvv.javaeye.com/blog/151840" style="color:red;">http://willvvv.javaeye.com/blog/151840</a>&nbsp;
          发表时间: 2007年12月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          JVM是基于堆栈的虚拟机.JVM为每个新创建的线程都分配一个堆栈.也就是说,对于一个Java程序来说，它的运行就是通过对堆栈的操作来完成的。堆栈以帧为单位保存线程的状态。JVM对堆栈只进行两种操作:以帧为单位的压栈和出栈操作。 <br />我们知道,某个线程正在执行的方法称为此线程的当前方法.我们可能不知道,当前方法使用的帧称为当前帧。当线程激活一个Java方法,JVM就会在线程的 Java堆栈里新压入一个帧。这个帧自然成为了当前帧.在此方法执行期间,这个帧将用来保存参数,局部变量,中间计算过程和其他数据.这个帧在这里和编译 原理中的活动纪录的概念是差不多的. <br />从Java的这种分配机制来看,堆栈又可以这样理解:堆栈(Stack)是操作系统在建立某个进程时或者线程(在支持多线程的操作系统中是线程)为这个线程建立的存储区域，该区域具有先进后出的特性。 <br />每一个Java应用都唯一对应一个JVM实例，每一个实例唯一对应一个堆。应用程序在运行中所创建的所有类实例或数组都放在这个堆中,并由应用所有的线程 共享.跟C/C++不同，Java中分配堆内存是自动初始化的。Java中所有对象的存储空间都是在堆中分配的，但是这个对象的引用却是在堆栈中分配,也 就是说在建立一个对象时从两个地方都分配内存，在堆中分配的内存实际建立这个对象，而在堆栈中分配的内存只是一个指向这个堆对象的指针(引用)而已。<br />Java为什么慢?JVM的存在当然是一个原因,但有人说,在Java中,除了简单类型(int,char等)的数据结构,其它都是在堆中分配内存(所以说Java的一切都是对象)，这也是程序慢的原因之一。 <br />我的想法是(应该说代表TIJ的观点),如果没有Garbage Collector(GC),上面的说法就是成立的.堆不象栈是连续的空间,没有办法指望堆本身的内存分配能够象堆栈一样拥有传送带般的速度,因为,谁会 为你整理庞大的堆空间,让你几乎没有延迟的从堆中获取新的空间呢? <br />这个时候,GC站出来解决问题.我们都知道GC用来清除内存垃圾,为堆腾出空间供程序使用,但GC同时也担负了另外一个重要的任务,就是要让Java中堆 的内存分配和其他语言中堆栈的内存分配一样快,因为速度的问题几乎是众口一词的对Java的诟病.要达到这样的目的,就必须使堆的分配也能够做到象传送带 一样,不用自己操心去找空闲空间.这样,GC除了负责清除Garbage外,还要负责整理堆中的对象,把它们转移到一个远离Garbage的纯净空间中无 间隔的排列起来,就象堆栈中一样紧凑,这样Heap Pointer就可以方便的指向传送带的起始位置,或者说一个未使用的空间,为下一个需要分配内存的对象"指引方向".因此可以这样说,垃圾收集影响了对 象的创建速度,听起来很怪,对不对? <br />那GC怎样在堆中找到所有存活的对象呢?前面说了,在建立一个对象时，在堆中分配实际建立这个对象的内存,而在堆栈中分配一个指向这个堆对象的指针(引 用),那么只要在堆栈(也有可能在静态存储区)找到这个引用,就可以跟踪到所有存活的对象.找到之后,GC将它们从一个堆的块中移到另外一个堆的块中,并 将它们一个挨一个的排列起来,就象我们上面说的那样,模拟出了一个栈的结构,但又不是先进后出的分配,而是可以任意分配的,在速度可以保证的情况下, Isnt it great? <br />但是，列宁同志说了,人的优点往往也是人的缺点,人的缺点往往也是人的优点(再晕~~).GC()的运行要占用一个线程,这本身就是一个降低程序运行性能 的缺陷,更何况这个线程还要在堆中把内存翻来覆去的折腾.不仅如此,如上面所说,堆中存活的对象被搬移了位置,那么所有对这些对象的引用都要重新赋值.这 些开销都会导致性能的降低. <br />此消彼长,GC()的优点带来的效益是否盖过了它的缺点导致的损失,我也没有太多的体会,Bruce Eckel 是Java的支持者，王婆卖瓜，话不能全信.个人总的感觉是,Java还是很慢,它的发展还需要时间.
          <br/>
          <span style="color:red;">
            <a href="http://willvvv.javaeye.com/blog/151840#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 29 Dec 2007 16:19:32 +0800</pubDate>
        <link>http://willvvv.javaeye.com/blog/151840</link>
        <guid>http://willvvv.javaeye.com/blog/151840</guid>
      </item>
      <item>
        <title>Struts2.0上传练习</title>
        <author>willvvv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://willvvv.javaeye.com">willvvv</a>&nbsp;
          链接：<a href="http://willvvv.javaeye.com/blog/139504" style="color:red;">http://willvvv.javaeye.com/blog/139504</a>&nbsp;
          发表时间: 2007年11月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>终于上次的项目告一段落了，可以重新学习Struts了，于是终于吃过饭就开始捣鼓了，因为早就从网上把MAX先生的教程下来了，就看了看教程，着手进行吧</p>
<p>代码都是Max先生的，但是中间却出现了不少的错误，</p>
<p>主要文件有：FileUpload.jsp上传页面</p>
<div class="code_title">
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span>%@&nbsp;page&nbsp;</span><span class="attribute">language</span><span>=</span><span class="attribute-value">&quot;java&quot;</span><span>&nbsp;</span><span class="attribute">import</span><span>=</span><span class="attribute-value">&quot;java.util.*&quot;</span><span>&nbsp;</span><span class="attribute">pageEncoding</span><span>=</span><span class="attribute-value">&quot;ISO-8859-1&quot;</span><span>%</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span> </li>
    <li class=""><span></span><span class="tag">&lt;</span><span>%@&nbsp;taglib&nbsp;</span><span class="attribute">prefix</span><span>=</span><span class="attribute-value">&quot;s&quot;</span><span>&nbsp;</span><span class="attribute">uri</span><span>=</span><span class="attribute-value">&quot;/struts-tags&quot;</span><span>%</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span><!--CTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" </sp--><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span> </span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">html</span><span>&nbsp;</span><span class="attribute">xmlns</span><span>&nbsp;=</span><span class="attribute-value">&quot;http://www.w3.org/1999/xhtml&quot;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="tag">&lt;</span><span class="tag-name">head</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">title</span><span class="tag">&gt;</span><span>&nbsp;Struts&nbsp;2&nbsp;File&nbsp;Upload&nbsp;</span><span class="tag"><span class="tag-name">title</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span> </span></li>
    <li class="alt"><span></span><span class="tag"><span class="tag-name">head</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span> </span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">body</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">s:form</span><span>&nbsp;</span><span class="attribute">action</span><span>&nbsp;=</span><span class="attribute-value">&quot;fileUpload&quot;</span><span>&nbsp;</span><span class="attribute">method</span><span>&nbsp;=</span><span class="attribute-value">&quot;POST&quot;</span><span>&nbsp;</span><span class="attribute">enctype</span><span>&nbsp;=</span><span class="attribute-value">&quot;multipart/form-data&quot;</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">s:file</span><span>&nbsp;</span><span class="attribute">name</span><span>&nbsp;=</span><span class="attribute-value">&quot;myFile&quot;</span><span>&nbsp;</span><span class="attribute">label</span><span>&nbsp;=</span><span class="attribute-value">&quot;Image&nbsp;File&quot;</span><span class="tag">/&gt;</span><span>&nbsp; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">s:textfield</span><span>&nbsp;</span><span class="attribute">name</span><span>&nbsp;=</span><span class="attribute-value">&quot;caption&quot;</span><span>&nbsp;</span><span class="attribute">label</span><span>&nbsp;=</span><span class="attribute-value">&quot;Caption&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">s:submit</span><span class="tag">/&gt;</span><span>&nbsp; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag"><span class="tag-name">s:form</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span> </span></li>
    <li class=""><span></span><span class="tag"><span class="tag-name">body</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span> </span></li>
    <li class="alt"><span></span><span class="tag"><span class="tag-name">html</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp;</span> </span></li>
</ol>
</div>
</div>
<p><span><span><span><span>action处理页面<font face="Arial">FileUploadAction.java</font></span></span></span></span></p>
<span><span><span><span>
<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">package</span><span>&nbsp;tutorial; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">import</span><span>&nbsp;java.io.BufferedInputStream; &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="keyword">import</span><span>&nbsp;java.io.BufferedOutputStream; &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">import</span><span>&nbsp;java.io.File; &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="keyword">import</span><span>&nbsp;java.io.FileInputStream; &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">import</span><span>&nbsp;java.io.FileOutputStream; &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="keyword">import</span><span>&nbsp;java.io.InputStream; &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">import</span><span>&nbsp;java.io.OutputStream; &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="keyword">import</span><span>&nbsp;java.util.Date; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="keyword">import</span><span>&nbsp;org.apache.struts2.ServletActionContext; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="keyword">import</span><span>&nbsp;com.opensymphony.xwork2.ActionSupport; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;FileUploadAction&nbsp;</span><span class="keyword">extends</span><span>&nbsp;ActionSupport&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">final</span><span>&nbsp;</span><span class="keyword">long</span><span>&nbsp;serialVersionUID&nbsp;=&nbsp;572146812454l; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">final</span><span>&nbsp;</span><span class="keyword">int</span><span>&nbsp;BUFFER_SIZE&nbsp;=&nbsp;</span><span class="number">16</span><span>&nbsp;*&nbsp;</span><span class="number">1024</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;File&nbsp;myFile; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;String&nbsp;contentType; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;String&nbsp;fileName; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;String&nbsp;imageFileName; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;String&nbsp;caption; &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">void</span><span>&nbsp;setMyFileContentType(String&nbsp;contentType)&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">this</span><span>.contentType&nbsp;=&nbsp;contentType; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;} &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">void</span><span>&nbsp;setMyFileFileName(String&nbsp;fileName)&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">this</span><span>.fileName&nbsp;=&nbsp;fileName; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;} &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">void</span><span>&nbsp;setMyFile(File&nbsp;myFile)&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">this</span><span>.myFile&nbsp;=&nbsp;myFile; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;} &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;String&nbsp;getImageFileName()&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;imageFileName; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;} &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;String&nbsp;getCaption()&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;caption; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;} &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">void</span><span>&nbsp;setCaption(String&nbsp;caption)&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">this</span><span>.caption&nbsp;=&nbsp;caption; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;copy(File&nbsp;src,&nbsp;File&nbsp;dst)&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">try</span><span>&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputStream&nbsp;in&nbsp;=&nbsp;</span><span class="keyword">null</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputStream&nbsp;out&nbsp;=&nbsp;</span><span class="keyword">null</span><span>; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">try</span><span>&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;BufferedInputStream(</span><span class="keyword">new</span><span>&nbsp;FileInputStream(src), &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;BUFFER_SIZE); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;BufferedOutputStream(</span><span class="keyword">new</span><span>&nbsp;FileOutputStream(dst), &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;BUFFER_SIZE); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">byte</span><span>[]&nbsp;buffer&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;</span><span class="keyword">byte</span><span>[BUFFER_SIZE]; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">while</span><span>&nbsp;(in.read(buffer)&nbsp;&gt;&nbsp;</span><span class="number">0</span><span>)&nbsp;{ &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;out.write(buffer); &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;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span class="keyword">finally</span><span>&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(</span><span class="keyword">null</span><span>&nbsp;!=&nbsp;in)&nbsp;{ &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;in.close(); &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;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(</span><span class="keyword">null</span><span>&nbsp;!=&nbsp;out)&nbsp;{ &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;out.close(); &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;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span class="keyword">catch</span><span>&nbsp;(Exception&nbsp;e)&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace(); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;String&nbsp;getExtention(String&nbsp;fileName)&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">int</span><span>&nbsp;pos&nbsp;=&nbsp;fileName.lastIndexOf(</span><span class="string">&quot;.&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;fileName.substring(pos); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="annotation">@Override</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;String&nbsp;execute()&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;imageFileName&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;Date().getTime()&nbsp;+&nbsp;getExtention(fileName); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;imageFile&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;File(ServletActionContext.getServletContext() &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getRealPath(</span><span class="string">&quot;/UploadImages&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;</span><span class="string">&quot;/&quot;</span><span>&nbsp;+&nbsp;imageFileName); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;copy(myFile,&nbsp;imageFile); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;SUCCESS; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>}&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>&nbsp;</p>
<p><font face="Arial">ShowUpload.jsp上传成功显示页面</font></p>
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span>%@&nbsp;page&nbsp;</span><span class="attribute">language</span><span>=</span><span class="attribute-value">&quot;java&quot;</span><span>&nbsp;</span><span class="attribute">import</span><span>=</span><span class="attribute-value">&quot;java.util.*&quot;</span><span>&nbsp;</span><span class="attribute">pageEncoding</span><span>=</span><span class="attribute-value">&quot;ISO-8859-1&quot;</span><span>%</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span>%@&nbsp;taglib&nbsp;</span><span class="attribute">prefix</span><span>=</span><span class="attribute-value">&quot;s&quot;</span><span>&nbsp;</span><span class="attribute">uri</span><span>=</span><span class="attribute-value">&quot;/struts-tags&quot;</span><span>%</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&lt;!&nbsp;DOCTYPE&nbsp;html&nbsp;PUBLIC&nbsp;&quot;-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Transitional//EN&quot;&nbsp;&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">html</span><span>&nbsp;</span><span class="attribute">xmlns</span><span>&nbsp;=</span><span class="attribute-value">&quot;http://www.w3.org/1999/xhtml&quot;</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;</span><span class="tag-name">head</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">title</span><span class="tag">&gt;</span><span>&nbsp;Struts&nbsp;2&nbsp;File&nbsp;Upload&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">title</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;/</span><span class="tag-name">head</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">body</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">style</span><span>=</span><span class="attribute-value">&quot;padding:&nbsp;3px;&nbsp;border:&nbsp;solid&nbsp;1px&nbsp;#cccccc;&nbsp;text-align:&nbsp;center&quot;</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">img</span><span>&nbsp;</span><span class="attribute">src</span><span>=</span><span class="attribute-value">'UploadImages/&lt;s:property&nbsp;value&nbsp;=&quot;imageFileName&quot;&nbsp;/&gt;'</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">br</span><span class="tag">/&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">s:property</span><span>&nbsp;</span><span class="attribute">value</span><span>&nbsp;=</span><span class="attribute-value">&quot;caption&quot;</span><span class="tag">/&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;/</span><span class="tag-name">body</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;/</span><span class="tag-name">html</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>&nbsp;</p>
<p>struts.xml配置文件</p>
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span>&nbsp;</span><span class="attribute">version</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span>&nbsp;</span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">&quot;UTF-8&quot;</span><span>&nbsp;</span><span class="tag">?&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&lt;!DOCTYPE&nbsp;struts&nbsp;PUBLIC &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&quot;-//Apache&nbsp;Software&nbsp;Foundation//DTD&nbsp;Struts&nbsp;Configuration&nbsp;2.0//EN&quot; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&quot;http://struts.apache.org/dtds/struts-2.0.dtd&quot;&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;</span><span class="tag-name">struts</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">package</span><span>&nbsp;</span><span class="attribute">name</span><span>&nbsp;=</span><span class="attribute-value">&quot;fileUploadDemo&quot;</span><span>&nbsp;</span><span class="attribute">extends</span><span>&nbsp;=</span><span class="attribute-value">&quot;struts-default&quot;</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">action</span><span>&nbsp;</span><span class="attribute">name</span><span>&nbsp;=</span><span class="attribute-value">&quot;fileUpload&quot;</span><span>&nbsp;</span><span class="attribute">class</span><span>&nbsp;=</span><span class="attribute-value">&quot;tutorial.FileUploadAction&quot;</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">interceptor-ref</span><span>&nbsp;</span><span class="attribute">name</span><span>&nbsp;=</span><span class="attribute-value">&quot;fileUploadStack&quot;</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">result</span><span>&nbsp;</span><span class="attribute">name</span><span>&nbsp;=</span><span class="attribute-value">&quot;success&quot;</span><span>&nbsp;</span><span class="tag">&gt;</span><span>/ShowUpload.jsp</span><span class="tag">&lt;/</span><span class="tag-name">result</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">action</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">package</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;/</span><span class="tag-name">struts</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>web.xml</p>
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span>&nbsp;</span><span class="attribute">version</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span>&nbsp;</span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">&quot;UTF-8&quot;</span><span>&nbsp;</span><span class="tag">?&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">web-app</span><span>&nbsp;</span><span class="attribute">id</span><span>&nbsp;=</span><span class="attribute-value">&quot;WebApp_9&quot;</span><span>&nbsp;</span><span class="attribute">version</span><span>&nbsp;=</span><span class="attribute-value">&quot;2.4&quot;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">xmlns</span><span>&nbsp;=</span><span class="attribute-value">&quot;http://java.sun.com/xml/ns/j2ee&quot;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">xmlns:xsi</span><span>&nbsp;=</span><span class="attribute-value">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">xsi:schemaLocation</span><span>&nbsp;=</span><span class="attribute-value">&quot;http://java.sun.com/xml/ns/j2ee&nbsp;http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd&quot;</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">display-name</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp;Struts&nbsp;2&nbsp;Fileupload&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">display-name</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">filter</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">filter-name</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp;struts-cleanup&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">filter-name</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">filter-class</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts2.dispatcher.ActionContextCleanUp &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">filter-class</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">filter</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">filter</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">filter-name</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp;struts2&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">filter-name</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">filter-class</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts2.dispatcher.FilterDispatcher &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">filter-class</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">filter</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">filter-mapping</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">filter-name</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp;struts-cleanup&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">filter-name</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">url-pattern</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp;/*&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">url-pattern</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">filter-mapping</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">filter-mapping</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">filter-name</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp;struts2&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">filter-name</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">url-pattern</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp;/*&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">url-pattern</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">filter-mapping</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">welcome-file-list</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">welcome-file</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp;index.html&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">welcome-file</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">welcome-file-list</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;/</span><span class="tag-name">web-app</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>&nbsp;</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>Servlet.service()&nbsp;</span><span class="keyword">for</span><span>&nbsp;servlet&nbsp;SimpleUploader&nbsp;threw&nbsp;exception&nbsp; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>java.lang.RuntimeException:&nbsp;Unable&nbsp;to&nbsp;load&nbsp;bean&nbsp;org.apache.struts2.dispatcher.multipart.MultiPartRequest&nbsp;(jakarta)&nbsp;-&nbsp;[unknown&nbsp;location]&nbsp; &nbsp;&nbsp;</span></li>
</ol>
</div>
<p>我在网上搜了下，发现有人这样解决的：</p>
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span>只要不让struts2拦截处理上传事件，就应该没问题了。 &nbsp;&nbsp;</span></span></li>
    <li class=""><span>修改web.xml，把原来的 &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;</span><span class="tag-name">filter-mapping</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">filter-name</span><span class="tag">&gt;</span><span>struts</span><span class="tag">&lt;/</span><span class="tag-name">filter-name</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">url-pattern</span><span class="tag">&gt;</span><span>/*</span><span class="tag">&lt;/</span><span class="tag-name">url-pattern</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">filter-mapping</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>改为 &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">filter-mapping</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">filter-name</span><span class="tag">&gt;</span><span>struts</span><span class="tag">&lt;/</span><span class="tag-name">filter-name</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">url-pattern</span><span class="tag">&gt;</span><span>*.action</span><span class="tag">&lt;/</span><span class="tag-name">url-pattern</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">filter-mapping</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>而上传页面调用时直接用文件名调用（如upload.jsp）。struts2只处理&nbsp;*.action&nbsp;的请求。 &nbsp;&nbsp;</span></li>
</ol>
</div>
<p>但是我用了一下出现了更麻烦的错误，于是又找了下是因为我的包所用版本太低的原因于是到Apache上下载了最新的包删除旧的导入新的刷新，打开tomcat服务,输入地址，又出现了一个错误</p>
<div class="code_title">java 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-j">
    <li class="alt"><span><span>javax.servlet.ServletException:&nbsp;String&nbsp;index&nbsp;out&nbsp;of&nbsp;range:&nbsp;-</span><span class="number">1</span><span>&nbsp; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:</span><span class="number">518</span><span>)&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:</span><span class="number">421</span><span>)&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:</span><span class="number">99</span><span>)&nbsp; &nbsp;&nbsp;</span></li>
</ol>
</div>
<p>因为我的代码是从max先生的文章直接复制粘贴的，开始有很多多余的空格，我就一个个删除的，这时我想是不是空格的问题，于是又检查一遍代码，把空格全部删除，ok..</p>
<p>看来代码是要自己敲的，还是有好处的。】</p>
<p>这里记下，提醒自己，呵呵</p>
<p>高手就不用看了，因为我们是菜鸟，呵呵</p>
</span></span></span></span>
          <br/>
          <span style="color:red;">
            <a href="http://willvvv.javaeye.com/blog/139504#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/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></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 09 Nov 2007 16:09:46 +0800</pubDate>
        <link>http://willvvv.javaeye.com/blog/139504</link>
        <guid>http://willvvv.javaeye.com/blog/139504</guid>
      </item>
      <item>
        <title>好久没有来了，最近在忙一个项目，忙啊。。</title>
        <author>willvvv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://willvvv.javaeye.com">willvvv</a>&nbsp;
          链接：<a href="http://willvvv.javaeye.com/blog/137271" style="color:red;">http://willvvv.javaeye.com/blog/137271</a>&nbsp;
          发表时间: 2007年11月01日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>都有一个月没有来了吧，java都快忘了吧，因为接了一个项目，要用VB开发，没法又拾起了都不打算再看的VB，再看看MS的东西真的忘的差不多了。项目不是很复杂，大概就是一个考勤系统吧，从考勤机里读取数据，然后处理，我们分了几个模块，我负责一个班组人员的设置和排班的设置，哎哎都拖了大家的后腿了我，都是搞不定，终于今天上午才搞定！Putty那小子快上班了，希望他能在那里顺顺利利，赚大钱娶媳妇，然后请我吃饭，哈哈！今天下午该数据处理这部分了，是个麻烦的东西哦，还有打印。要加油干！我也该找工作了，希望自己也顺顺利利，赚钱养活自己爸妈和老婆，哈哈。。。</p>
          <br/>
          <span style="color:red;">
            <a href="http://willvvv.javaeye.com/blog/137271#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 01 Nov 2007 13:37:22 +0800</pubDate>
        <link>http://willvvv.javaeye.com/blog/137271</link>
        <guid>http://willvvv.javaeye.com/blog/137271</guid>
      </item>
      <item>
        <title>struts2.0使用时的一个奇怪的问题</title>
        <author>willvvv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://willvvv.javaeye.com">willvvv</a>&nbsp;
          链接：<a href="http://willvvv.javaeye.com/blog/134095" style="color:red;">http://willvvv.javaeye.com/blog/134095</a>&nbsp;
          发表时间: 2007年10月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>近来struts2.0很流行哦，于是下了更流行的max大侠的教程，可是我做的时候就出现问题了哦</p>
<p>当我把struts的lib下全部的jar拷贝到我的lib时，然后我部署但是tomcat总是提示我找不到资源，然后我按照李兴华老师的视频</p>
<p>教程只加入了5个jar包就可以运行了，我猜想是不是包太多了需要配置的就多了，好像我的日志就没有配置，哎哎</p>
<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://willvvv.javaeye.com/blog/134095#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>Sun, 21 Oct 2007 22:31:46 +0800</pubDate>
        <link>http://willvvv.javaeye.com/blog/134095</link>
        <guid>http://willvvv.javaeye.com/blog/134095</guid>
      </item>
      <item>
        <title>主键就是主键</title>
        <author>willvvv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://willvvv.javaeye.com">willvvv</a>&nbsp;
          链接：<a href="http://willvvv.javaeye.com/blog/129674" style="color:red;">http://willvvv.javaeye.com/blog/129674</a>&nbsp;
          发表时间: 2007年10月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>今天把MSSQL的数据库导成ACCESS的，然后改了一下数据库连接，发现保存不了数据，一点错误都没有，就是写不了数据，</p>
<p>终于发现原来是我用MSSQL自带的数据导入导出功能，它自动生成的ACCESS的表都没有了主键和自动编号，然后就删掉了所</p>
<p>有的数据，加了主键和自动编号。再试试，OK!!</p>
          <br/>
          <span style="color:red;">
            <a href="http://willvvv.javaeye.com/blog/129674#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/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, 08 Oct 2007 11:48:22 +0800</pubDate>
        <link>http://willvvv.javaeye.com/blog/129674</link>
        <guid>http://willvvv.javaeye.com/blog/129674</guid>
      </item>
      <item>
        <title>DAO+Factory+Hibernate的学习。。</title>
        <author>willvvv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://willvvv.javaeye.com">willvvv</a>&nbsp;
          链接：<a href="http://willvvv.javaeye.com/blog/128506" style="color:red;">http://willvvv.javaeye.com/blog/128506</a>&nbsp;
          发表时间: 2007年09月30日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>看了很多的书了，想着实践一下，就参考了书上的例子写了一点，呵呵刚入门很简单的东西，只有后台写的测试类而已，还望各位指教。</p>
<p>我的开发环境 Eclipse3.3+Myeclipse6.0，因为Myeclipse集成了Hibernate,而且6.0最高的版本是Hibernate3.1..</p>
<p>数据库是MySql5.0</p>
<p>1.首先建库：<font face="Arial">&nbsp;</font></p>
<p><font face="Arial">&nbsp;`login`.CREATE DATABASE `login` /*!40100 DEFAULT CHARACTER SET utf8*/;</font></p>
<p><font face="Arial"></font>&nbsp;<font face="Arial">DROP TABLE IF EXISTS `login`.`person`;<br />
CREATE TABLE&nbsp; `login`.`person` (<br />
&nbsp; `id` varchar(20) character set utf8NOT NULL default '',<br />
&nbsp; `name` varchar(45) character set utf8NOT NULL default '',<br />
&nbsp; `password` varchar(45) character set utf8NOT NULL default '',<br />
&nbsp; PRIMARY KEY&nbsp; (`id`)<br />
) ENGINE=InnoDB DEFAULT CHARSET=utf8;</font></p>
<p>插入两条测试数据。</p>
<p>2.打开Myeclipse6.0，添加下载的MySql的驱动，建立数据库的一个连接。</p>
<p>3.新建WEB工程，为工程加入Hibernate支持，注意不建立SessionFactory我们可以自己建立一个,</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>&lt;?xml&nbsp;version='</span><span class="number">1.0</span><span>'&nbsp;encoding='UTF-</span><span class="number">8</span><span>'?&gt; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&lt;!DOCTYPE&nbsp;hibernate-configuration&nbsp;PUBLIC &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string">&quot;-//Hibernate/Hibernate&nbsp;Configuration&nbsp;DTD&nbsp;3.0//EN&quot;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string">&quot;http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd&quot;</span><span>&gt; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&lt;!--&nbsp;Generated&nbsp;by&nbsp;MyEclipse&nbsp;Hibernate&nbsp;Tools.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&gt; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&lt;hibernate-configuration&gt; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&lt;session-factory&gt; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=</span><span class="string">&quot;connection.username&quot;</span><span>&gt;root&lt;/property&gt; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=</span><span class="string">&quot;connection.url&quot;</span><span>&gt; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jdbc:mysql:</span><span class="comment">//localhost:3306/login </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=</span><span class="string">&quot;dialect&quot;</span><span>&gt; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.hibernate.dialect.MySQLDialect &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=</span><span class="string">&quot;myeclipse.connection.profile&quot;</span><span>&gt;jnetstore&lt;/property&gt; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=</span><span class="string">&quot;connection.password&quot;</span><span>&gt;sa&lt;/property&gt; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=</span><span class="string">&quot;connection.driver_class&quot;</span><span>&gt; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;com.mysql.jdbc.Driver &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=</span><span class="string">&quot;show_sql&quot;</span><span>&gt;</span><span class="keyword">true</span><span>&lt;/property&gt; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;mapping&nbsp;resource=</span><span class="string">&quot;cn/will/vo/Person.hbm.xml&quot;</span><span>&nbsp;/&gt; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&lt;/session-factory&gt; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&lt;/hibernate-configuration&gt;&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>然后新建POJO类Person.java</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">package</span><span>&nbsp;cn.will.vo; &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;Person&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;String&nbsp;id; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;String&nbsp;name; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;String&nbsp;password; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;String&nbsp;getId()&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;id; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;setId(String&nbsp;id)&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">this</span><span>.id&nbsp;=&nbsp;id; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;String&nbsp;getName()&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;name; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;setName(String&nbsp;name)&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">this</span><span>.name&nbsp;=&nbsp;name; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;String&nbsp;getPassword()&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;password; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;setPassword(String&nbsp;password)&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">this</span><span>.password&nbsp;=&nbsp;password; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>} &nbsp;&nbsp;</span> </li>
</ol>
</div>
<p>3.新建DAO接口类<font face="Arial">PersonOperate.java</font></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">package</span><span>&nbsp;cn.will.dao; &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="keyword">import</span><span>&nbsp;java.util.List; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="keyword">import</span><span>&nbsp;cn.will.vo.Person; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">interface</span><span>&nbsp;PersonOperate&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;insert(Person&nbsp;p)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;Exception; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;update(Person&nbsp;p)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;Exception; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;Person&nbsp;queryById(String&nbsp;id)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;Exception; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;delete(Person&nbsp;p)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;Exception; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;delete(String&nbsp;id)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;Exception; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;List&nbsp;queryAll()</span><span class="keyword">throws</span><span>&nbsp;Exception; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;List&nbsp;queryByLike(String&nbsp;cond)</span><span class="keyword">throws</span><span>&nbsp;Exception; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>} &nbsp;&nbsp;</span> </li>
</ol>
</div>
<p>4.建立工厂类，这里使用了两个工厂，一个是Session工厂<font face="Arial">SessionFactory.java</font>，一个是操作的工厂<font face="Arial">DAOFactory.java</font></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">package</span><span>&nbsp;cn.will.factory; &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="keyword">import</span><span>&nbsp;org.hibernate.Session; &nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="keyword">import</span><span>&nbsp;org.hibernate.cfg.Configuration; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;SessionFactory&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;Session&nbsp;getSession(){ &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Session&nbsp;session=</span><span class="keyword">null</span><span>; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session&nbsp;=</span><span class="keyword">new</span><span>&nbsp;Configuration().configure().buildSessionFactory().openSession(); &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;session; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>} &nbsp;&nbsp;</span> </li>
</ol>
</div>
<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">package</span><span>&nbsp;cn.will.factory; &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="keyword">import</span><span>&nbsp;cn.will.dao.PersonOperate; &nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="keyword">import</span><span>&nbsp;cn.will.impl.PersonOperateImpl; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;DAOFactory&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;PersonOperate&nbsp;getOperate(){ &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;</span><span class="keyword">new</span><span>&nbsp;&nbsp;PersonOperateImpl();&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>} &nbsp;&nbsp;</span> </li>
</ol>
</div>
<p>5.DAO的实现类<font face="Arial">PersonOperateImpl.java</font></p>
<p>&nbsp;</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">package</span><span>&nbsp;cn.will.impl; &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="keyword">import</span><span>&nbsp;java.util.Iterator; &nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="keyword">import</span><span>&nbsp;java.util.List; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="keyword">import</span><span>&nbsp;org.hibernate.Query; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="keyword">import</span><span>&nbsp;org.hibernate.Session; &nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="keyword">import</span><span>&nbsp;org.hibernate.Transaction; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="keyword">import</span><span>&nbsp;cn.will.dao.PersonOperate; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="keyword">import</span><span>&nbsp;cn.will.factory.SessionFactory; &nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="keyword">import</span><span>&nbsp;cn.will.vo.Person; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;PersonOperateImpl&nbsp;</span><span class="keyword">implements</span><span>&nbsp;PersonOperate&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;Session&nbsp;session=</span><span class="keyword">null</span><span>; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;PersonOperateImpl()&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">this</span><span>.session&nbsp;=&nbsp;SessionFactory.getSession(); &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;delete(Person&nbsp;p)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;Exception&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transaction&nbsp;tran&nbsp;=&nbsp;</span><span class="keyword">this</span><span>.session.beginTransaction()&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;执行语句 </span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">this</span><span>.session.delete(p)&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;提交事务 </span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tran.commit()&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;delete(String&nbsp;id)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;Exception&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;hql&nbsp;=&nbsp;</span><span class="string">&quot;DELETE&nbsp;Person&nbsp;WHERE&nbsp;id=?&quot;</span><span>&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Query&nbsp;q&nbsp;=&nbsp;</span><span class="keyword">this</span><span>.session.createQuery(hql)&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;把参数设置 </span><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q.setString(</span><span class="number">0</span><span>,id)&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;执行更新语句 </span><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q.executeUpdate()&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;进行事务处理 </span><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">this</span><span>.session.beginTransaction().commit()&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;} &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">void</span><span>&nbsp;insert(Person&nbsp;p)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;Exception&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;开始事务 </span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transaction&nbsp;tran&nbsp;=&nbsp;</span><span class="keyword">this</span><span>.session.beginTransaction()&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;执行语句 </span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">this</span><span>.session.save(p)&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;提交事务 </span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tran.commit()&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;关闭Session </span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">this</span><span>.session.close()&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;List&nbsp;queryAll()&nbsp;</span><span class="keyword">throws</span><span>&nbsp;Exception&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;l&nbsp;=&nbsp;</span><span class="keyword">null</span><span>&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;hql&nbsp;=&nbsp;</span><span class="string">&quot;FROM&nbsp;Person&nbsp;as&nbsp;p&quot;</span><span>&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Query&nbsp;q&nbsp;=&nbsp;</span><span class="keyword">this</span><span>.session.createQuery(hql)&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l&nbsp;=&nbsp;q.list()&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;l&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;Person&nbsp;queryById(String&nbsp;id)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;Exception&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Person&nbsp;p&nbsp;=&nbsp;</span><span class="keyword">null</span><span>&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;使用Hibernate查询语言 </span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;hql&nbsp;=&nbsp;</span><span class="string">&quot;FROM&nbsp;Person&nbsp;as&nbsp;p&nbsp;WHERE&nbsp;p.id=?&quot;</span><span>&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;通过Query接口查询 </span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Query&nbsp;q&nbsp;=&nbsp;</span><span class="keyword">this</span><span>.session.createQuery(hql)&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q.setString(</span><span class="number">0</span><span>,id)&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;l&nbsp;=&nbsp;q.list()&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Iterator&nbsp;iter&nbsp;=&nbsp;l.iterator()&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>(iter.hasNext()) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p&nbsp;=&nbsp;(Person)iter.next()&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;p&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;List&nbsp;queryByLike(String&nbsp;cond)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;Exception&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;l&nbsp;=&nbsp;</span><span class="keyword">null</span><span>&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;hql&nbsp;=&nbsp;</span><span class="string">&quot;FROM&nbsp;Person&nbsp;as&nbsp;p&nbsp;WHERE&nbsp;p.name&nbsp;like&nbsp;?&quot;</span><span>&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Query&nbsp;q&nbsp;=&nbsp;</span><span class="keyword">this</span><span>.session.createQuery(hql)&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q.setString(</span><span class="number">0</span><span>,</span><span class="string">&quot;%&quot;</span><span>+cond+</span><span class="string">&quot;%&quot;</span><span>)&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l&nbsp;=&nbsp;q.list()&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;l&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;} &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">void</span><span>&nbsp;update(Person&nbsp;p)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;Exception&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;开始事务 </span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transaction&nbsp;tran&nbsp;=&nbsp;</span><span class="keyword">this</span><span>.session.beginTransaction()&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;执行语句 </span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">this</span><span>.session.update(p)&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;提交事务 </span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tran.commit()&nbsp;; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>} &nbsp;&nbsp;</span> </li>
</ol>
</div>
<p>6.打开DB　Browser窗口，找到第二步建立的数据库连接，找到login数据库,找到person表,右键选择Hibernate Reverse Engineering,在Hibernate Mapping file(*.hbm.xml) for each database table前打勾,在java package选择存放路径,这里选择cn.will.vo,下一步,ID generater选择assigned,下一步,完成.得到person.hbm.xml的代码如下：</p>
<div class="code_title">java 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-j">
    <li class="alt"><span><span>&lt;?xml&nbsp;version=</span><span class="string">&quot;1.0&quot;</span><span>&nbsp;encoding=</span><span class="string">&quot;utf-8&quot;</span><span>?&gt; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&lt;!DOCTYPE&nbsp;hibernate-mapping&nbsp;PUBLIC&nbsp;</span><span class="string">&quot;-//Hibernate/Hibernate&nbsp;Mapping&nbsp;DTD&nbsp;3.0//EN&quot;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="string">&quot;http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd&quot;</span><span>&gt; &nbsp;&nbsp;</span></li>
    <li class=""><span>&lt;!--&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;Mapping&nbsp;file&nbsp;autogenerated&nbsp;by&nbsp;MyEclipse&nbsp;Persistence&nbsp;Tools &nbsp;&nbsp;</span></li>
    <li class=""><span>--&gt; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&lt;hibernate-mapping&gt; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span class="keyword">class</span><span>&nbsp;name=</span><span class="string">&quot;cn.will.vo.Person&quot;</span><span>&nbsp;table=</span><span class="string">&quot;person&quot;</span><span>&nbsp;catalog=</span><span class="string">&quot;login&quot;</span><span>&gt; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;id&nbsp;name=</span><span class="string">&quot;id&quot;</span><span>&nbsp;type=</span><span class="string">&quot;java.lang.String&quot;</span><span>&gt; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;column&nbsp;name=</span><span class="string">&quot;id&quot;</span><span>&nbsp;length=</span><span class="string">&quot;20&quot;</span><span>&nbsp;/&gt; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;generator&nbsp;</span><span class="keyword">class</span><span>=</span><span class="string">&quot;assigned&quot;</span><span>&nbsp;/&gt; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/id&gt; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=</span><span class="string">&quot;name&quot;</span><span>&nbsp;type=</span><span class="string">&quot;java.lang.String&quot;</span><span>&gt; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;column&nbsp;name=</span><span class="string">&quot;name&quot;</span><span>&nbsp;length=</span><span class="string">&quot;45&quot;</span><span>&nbsp;not-</span><span class="keyword">null</span><span>=</span><span class="string">&quot;true&quot;</span><span>&nbsp;/&gt; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=</span><span class="string">&quot;password&quot;</span><span>&nbsp;type=</span><span class="string">&quot;java.lang.String&quot;</span><span>&gt; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;column&nbsp;name=</span><span class="string">&quot;password&quot;</span><span>&nbsp;length=</span><span class="string">&quot;45&quot;</span><span>&nbsp;not-</span><span class="keyword">null</span><span>=</span><span class="string">&quot;true&quot;</span><span>&nbsp;/&gt; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/</span><span class="keyword">class</span><span>&gt; &nbsp;&nbsp;</span></li>
    <li class=""><span>&lt;/hibernate-mapping&gt; &nbsp;&nbsp;</span></li>
</ol>
</div>
<p>7.加入测试类<font face="Arial">TestPersonOperate.java,代码如下:</font></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">package</span><span>&nbsp;cn.will.test; &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="keyword">import</span><span>&nbsp;java.util.Iterator; &nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="keyword">import</span><span>&nbsp;java.util.List; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="keyword">import</span><span>&nbsp;cn.will.factory.DAOFactory; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="keyword">import</span><span>&nbsp;cn.will.vo.Person; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;TestPersonOperate&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/** </span>&nbsp; </li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;args </span>&nbsp;</span> </li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;main(String[]&nbsp;args)</span><span class="keyword">throws</span><span>&nbsp;Exception&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub </span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/*按ID查询 </span>&nbsp; </li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Person&nbsp;p&nbsp;=&nbsp;new&nbsp;Person()&nbsp;; </span>&nbsp;</span> </li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p=DAOFactory.getOperate().queryById(&quot;will&quot;); </span>&nbsp;</span> </li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(p.getName())&nbsp;; </span>&nbsp;</span> </li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/*插入数据 </span>&nbsp; </li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Person&nbsp;p=new&nbsp;Person(); </span>&nbsp;</span> </li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.setId(&quot;aaa&quot;); </span>&nbsp;</span> </li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.setName(&quot;aaa&quot;); </span>&nbsp;</span> </li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.setPassword(&quot;aaa&quot;); </span>&nbsp;</span> </li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DAOFactory.getOperate().insert(p); </span>&nbsp;</span> </li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/*查询所有 </span>&nbsp; </li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Person&nbsp;p=new&nbsp;Person(); </span>&nbsp;</span> </li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;list=null; </span>&nbsp;</span> </li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list=DAOFactory.getOperate().queryAll(); </span>&nbsp;</span> </li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Iterator&nbsp;iter=list.iterator(); </span>&nbsp;</span> </li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(iter.hasNext()) </span>&nbsp;</span> </li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ </span>&nbsp;</span> </li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p=(Person)iter.next(); </span>&nbsp;</span> </li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(p.getName()); </span>&nbsp;</span> </li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} </span>&nbsp;</span> </li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/*模糊查询 </span>&nbsp; </li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Person&nbsp;p=new&nbsp;Person(); </span>&nbsp;</span> </li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;list=null; </span>&nbsp;</span> </li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list=DAOFactory.getOperate().queryByLike(&quot;wi&quot;); </span>&nbsp;</span> </li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Iterator&nbsp;iter=list.iterator(); </span>&nbsp;</span> </li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(iter.hasNext()) </span>&nbsp;</span> </li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ </span>&nbsp;</span> </li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p=(Person)iter.next(); </span>&nbsp;</span> </li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(p.getName()); </span>&nbsp;</span> </li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} </span>&nbsp;</span> </li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>} &nbsp;&nbsp;</span> </li>
</ol>
</div>
<p>8.运行..进行如下查询时可以正确执行得到预期结果.</p>
<p>总结:本人因为是初学所以难免又不对的地方,这是我按照自己的理解写的,希望和大家共同学习,希望..</p>
          <br/>
          <span style="color:red;">
            <a href="http://willvvv.javaeye.com/blog/128506#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 30 Sep 2007 16:48:21 +0800</pubDate>
        <link>http://willvvv.javaeye.com/blog/128506</link>
        <guid>http://willvvv.javaeye.com/blog/128506</guid>
      </item>
      <item>
        <title>hamster</title>
        <author>willvvv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://willvvv.javaeye.com">willvvv</a>&nbsp;
          链接：<a href="http://willvvv.javaeye.com/blog/125585" style="color:red;">http://willvvv.javaeye.com/blog/125585</a>&nbsp;
          发表时间: 2007年09月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>很好的源码学习。。。作者真的很牛啊。。。</p>
<p>使我们这种初学者学习的好材料。。</p>
<p>谢谢作者了。。</p>
          <br/>
          <span style="color:red;">
            <a href="http://willvvv.javaeye.com/blog/125585#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 20 Sep 2007 10:35:49 +0800</pubDate>
        <link>http://willvvv.javaeye.com/blog/125585</link>
        <guid>http://willvvv.javaeye.com/blog/125585</guid>
      </item>
      <item>
        <title>为什么我的网易邮箱的信是这样的呢？是Javaeye的问题吗？</title>
        <author>willvvv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://willvvv.javaeye.com">willvvv</a>&nbsp;
          链接：<a href="http://willvvv.javaeye.com/blog/125476" style="color:red;">http://willvvv.javaeye.com/blog/125476</a>&nbsp;
          发表时间: 2007年09月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          附图
          <br/>
          <span style="color:red;">
            <a href="http://willvvv.javaeye.com/blog/125476#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/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 19 Sep 2007 21:00:37 +0800</pubDate>
        <link>http://willvvv.javaeye.com/blog/125476</link>
        <guid>http://willvvv.javaeye.com/blog/125476</guid>
      </item>
      <item>
        <title>XLS与MDB文件格式互换全攻略</title>
        <author>willvvv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://willvvv.javaeye.com">willvvv</a>&nbsp;
          链接：<a href="http://willvvv.javaeye.com/blog/123981" style="color:red;">http://willvvv.javaeye.com/blog/123981</a>&nbsp;
          发表时间: 2007年09月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一、打开Access数据库软件，在弹出的窗口内，选择&ldquo;新建数据库&rdquo;中的&ldquo;空Access数据库&rdquo;，然后在&ldquo;文件新建数据库&rdquo;窗口内设置数据库文件名，这里我输入&ldquo;DJMessage&rdquo;作为数据库名。<br />
<br />
　　二、点击&ldquo;文件&rdquo;菜单下的&ldquo;获取外部数据&rdquo;中的&ldquo;导入...&rdquo;，在打开的&ldquo;导入&rdquo;窗口内，先将&ldquo;文件类型&rdquo;选择为&ldquo;Microsoft Excel(．xls)&rdquo;，在&ldquo;查找范围&rdquo;内选择XLS文件的存放路径，然后选中要转换的XLS文件，点&ldquo;导入&rdquo;，打开&ldquo;导入数据向导&rdquo;窗口，根据这个向导，一步步地完成数据的导入，具体步骤如下：<br />
<br />
　　第一步、工作表选择：从显示的工作表中，选择要存放数据的工作表。第二步、标题设置：在Excel中，一般会在表格的第一行中设置列标题，在这一步中，根据XLS表的不同，设置表格第一行是否包含列标题，如果第一行为列标题，则要选中&ldquo;第一行包含列标题&rdquo;，如果表格内有多行列标题，则要在导入数据之前将这些列标题目删除，否则，标题就会当做数据导入到数据库中。第三步、数据保存设置：这一步按默认的设置，选择数据的保存位置为&ldquo;新表中&rdquo;。第四步、字段设置：如果在第二步中勾选了&ldquo;第一行包含列标题&rdquo;，则在&ldquo;字段名&rdquo;中显示的是列标题，否则在&ldquo;字段名&rdquo;中显示的是&ldquo;字段1&rdquo;、&ldquo;字段2&rdquo;等名称。只要在&ldquo;字段名&rdquo;中重新输入新的名称即可设置该列的字段名。第五步、主键设置：设置主键一方面避免数据的重复，另一方面还可以加快数据查询速度，而我要建立的数据库是配合ASP网页查询用的，当然更要设置主键了，这里选择的是&ldquo;用Access添加主键&rdquo;默认设置。第六步、表名设置：在&ldquo;导入到表&rdquo;下建立一个表名，将数据导入到这个表中，我输入的是&ldquo;mytable&rdquo;作为表名，再点&ldquo;完成&rdquo;就结束了数据导入。回到数据库窗口，就看到添加了一个&ldquo;mytable&rdquo;数据表，这样生成的DJMessage.mdb才是一个真正的数据库。把DJMessage.mdb复制到ASP网页目录中，调试一下查询系统，一切OK！<br />
</p>
<p>MDB转XLS格式就相对简单多了，打开数据库文件DJMessage.mdb，选中其中的&ldquo;mytable&rdquo;表，然后点&ldquo;文件&rdquo;菜单中的&ldquo;导出&rdquo;，在打开的&ldquo;将表mytable导出为&rdquo;窗口中，将保存文件类型选择为&ldquo;Microsoft Excel 97-2000(.xls)&rdquo;，输入文件名，然后点&ldquo;保存&rdquo;即可将数据库格式的MDB文件转换为表格形式的XLS文件了。<br />
</p>
          <br/>
          <span style="color:red;">
            <a href="http://willvvv.javaeye.com/blog/123981#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 15 Sep 2007 10:40:58 +0800</pubDate>
        <link>http://willvvv.javaeye.com/blog/123981</link>
        <guid>http://willvvv.javaeye.com/blog/123981</guid>
      </item>
      <item>
        <title>常用MD5加密后的密文</title>
        <author>willvvv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://willvvv.javaeye.com">willvvv</a>&nbsp;
          链接：<a href="http://willvvv.javaeye.com/blog/123973" style="color:red;">http://willvvv.javaeye.com/blog/123973</a>&nbsp;
          发表时间: 2007年09月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          下面是&nbsp;admin&nbsp;的加密代码：<br />
<br />
16位加密：7a57a5a743894a0e<br />
32位加密：21232f297a57a5a743894a0e4a801fc3<br />
<br />
<br />
admin888的MD5加密码<br />
<br />
16位：469e80d32c0559f8<br />
32位：7fef6171469e80d32c0559f88b377245<br />
<br />
经常调试源码用的，留个记号，省的以后老是在网上找。<br />
<br />
记得另外一种加密方式&nbsp;<strong>admin</strong>&nbsp;加密后是&nbsp;<strong>bfpms</strong><br />
          <br/>
          <span style="color:red;">
            <a href="http://willvvv.javaeye.com/blog/123973#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 15 Sep 2007 10:14:10 +0800</pubDate>
        <link>http://willvvv.javaeye.com/blog/123973</link>
        <guid>http://willvvv.javaeye.com/blog/123973</guid>
      </item>
      <item>
        <title>在JavaEye上安家吧。。</title>
        <author>willvvv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://willvvv.javaeye.com">willvvv</a>&nbsp;
          链接：<a href="http://willvvv.javaeye.com/blog/122363" style="color:red;">http://willvvv.javaeye.com/blog/122363</a>&nbsp;
          发表时间: 2007年09月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>转了好多地方发现这里不错。。。</p>
<p>安家吧。。。。。</p>
<p>以后尽量多些时间写下自己学习的过程，望大家指教了。。</p>
          <br/>
          <span style="color:red;">
            <a href="http://willvvv.javaeye.com/blog/122363#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>Sun, 09 Sep 2007 11:19:04 +0800</pubDate>
        <link>http://willvvv.javaeye.com/blog/122363</link>
        <guid>http://willvvv.javaeye.com/blog/122363</guid>
      </item>
      <item>
        <title>ubuntu7.04硬盘安装过程</title>
        <author>willvvv</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://willvvv.javaeye.com">willvvv</a>&nbsp;
          链接：<a href="http://willvvv.javaeye.com/blog/122362" style="color:red;">http://willvvv.javaeye.com/blog/122362</a>&nbsp;
          发表时间: 2007年09月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>弄 了 几天终于把ubuntu7.04装上去了。。。期间的曲折。。。哎哎 <br />
我的XP系统都跟着倒霉重装了6遍啊。。。都是因为它。。 <br />
现在总结一下我的安装经验：我用的方法是从ubuntu的中文论坛上找到的。。 <br />
我的机子是这样分区的：c：系统盘 7.8G <br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d:程序盘&nbsp;&nbsp;&nbsp; 11.1G <br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e:我的一些备份程序和文件&nbsp;18.6G<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f:我的娱乐盘&nbsp; 22G <br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g:本来是放文件的为了装ubuntu只好牺牲它了。。13.9G <br />
大小差不多就是这样了。。 <br />
（1）当然是下载&quot;ubuntu-7.04-alternate-i386.iso&quot;啦。 <br />
（2）把下载的ubuntu-7.04-alternate-i386.iso放到任意FAT格式的盘(这里我把它放到了e盘的根目录，一定要是根目录，如果不是的话安装找不到iso文件)。 <br />
（3）下载引导文件（initrd.gz和grldr和menu.lst和vmlinuz）。 <br />
（4）把下载好的&ldquo;引导文件&rdquo;解压到C盘。并设置c:\boot.ini,在未尾加多一句：c:\grldr = GRUB4DOS （boot.ini的属性本来是只读，修改时要去掉它的只读属性） <br />
（5）重新启动计算机。选择&ldquo;GRUB4DOS&rdquo;&mdash;&gt;&ldquo;Start Install Ubuntu7.04&quot;。 <br />
（6）在&ldquo;磁盘分区&rdquo;这一步，先选中G盘，回车，删除G盘的分区，然后选择&ldquo;分区向导&rdquo;选择&ldquo;连续最大的空白分区&rdquo;，即可。这就是在安装过程中进行分区的操作，而不是先分区在操作，这一点和WINXP挺象的。 <br />
（7）注意在安装过程中有一步是选安装desktop,此时一定要先按空格键，选择框里会出现【*】此时再回车确定！我第五次装的时候没有按空格，结果没有图形桌面。只好再重装了。。。 <br />
（8）iso文件不能放在要安装ubuntu的盘里，我第四次就把它放在了g盘，然后提示分区ext3不成功。。。 <br />
谁需要引导文件可以写信给我。。。。发扬分享精神！！！</p>
<p>（9）然后就是更新系统，搭建开发环境了。呵呵</p>
<p><a href="mailto:willvvv@126.com">willvvv@126.com</a></p>
<p>&nbsp;<br />
</p>
          <br/>
          <span style="color:red;">
            <a href="http://willvvv.javaeye.com/blog/122362#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/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 09 Sep 2007 11:16:52 +0800</pubDate>
        <link>http://willvvv.javaeye.com/blog/122362</link>
        <guid>http://willvvv.javaeye.com/blog/122362</guid>
      </item>
  </channel>
</rss>