﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-JAVA---一路上有你 blue-随笔分类-JEE学习</title><link>http://www.blogjava.net/Jkallen/category/6932.html</link><description>开卷有益</description><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 12:18:59 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 12:18:59 GMT</pubDate><ttl>60</ttl><item><title>字符集的编(解)码的总结</title><link>http://www.blogjava.net/Jkallen/archive/2006/06/29/55666.html</link><dc:creator>Jkallen</dc:creator><author>Jkallen</author><pubDate>Thu, 29 Jun 2006 00:42:00 GMT</pubDate><guid>http://www.blogjava.net/Jkallen/archive/2006/06/29/55666.html</guid><wfw:comment>http://www.blogjava.net/Jkallen/comments/55666.html</wfw:comment><comments>http://www.blogjava.net/Jkallen/archive/2006/06/29/55666.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/Jkallen/comments/commentRss/55666.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Jkallen/services/trackbacks/55666.html</trackback:ping><description><![CDATA[
		<p>　　看了孙鑫老师的相关讲解后，总结一下。<br /><br />　　首先看清楚几种常用的字符集编码(java语言是采用unicode字符集编码来表示字符与字符串的)：<br /><br />　　<strong>ASCII</strong>(American Standard Code for Information Interchange，美国信息互换标准代码)，是基于常用的英文字符的一套电脑编码系统。我们知道英文中经常使用的字符、数字符号被计算机处理时都是以二进制码的形式出现的。这种二进制码的集合就是所谓的ASCII码。每一个ASCII码与一个8位（bit）二进制数对应。其最高位是0，相应的十进制数是0-127。如，数字“0”的编码用十进制数表示就是48。另有128个扩展的ASCII码，最高位都是1，由一些制表符和其它符号组成。ASCII是现今最通用的单字节编码系统。</p>
		<p>　　<strong>GB2312</strong>：GB2312码是中华人民共和国国家汉字信息交换用编码，全称《信息交换用汉字编码字符集－基本集》。主要用于给每一个中文字符指定相应的数字，也就是进行编码。一个中文字符用两个字节的数字来表示，为了和ASCII码有所区别，将中文字符每一个字节的最高位置都用1来表示。<br /><br />　　<strong>GBK</strong>：为了对更多的字符进行编码，国家又发布了新的编码系统GBK(GBK的K是“扩展”的汉语拼音第一个字母)。在新的编码系统里，除了完全兼容GB2312 外，还对繁体中文、一些不常用的汉字和许多符号进行了编码。</p>
		<p>　　<strong>ISO-8859-1</strong>：是西方国家所使用的字符编码集，是一种单字节的字符集 ，而英文实际上只用了其中数字小于128的部分。</p>
		<p>　　<strong>Unicode</strong>：这是一种通用的字符集，对所有语言的文字进行了统一编码，对每一个字符都用2个字节来表示，对于英文字符采取前面加“0”字节的策略实现等长兼容。如 “a” 的ASCII码为0x61，UNICODE就为0x00，0x61。</p>
		<p>　　<strong>UTF-8</strong>：Eight-bit UCS Transformation Format，(UCS，Universal Character Set，通用字符集，UCS 是所有其他字符集标准的一个超集)。一个7位的ASCII码值，对应的UTF码是一个字节。如果字符是0x0000，或在0x0080与0x007f之间，对应的UTF码是两个字节，如果字符在0x0800与0xffff之间，对应的UTF码是三个字节。</p>
		<p>　　我们运行java程序时，JVM有自己所支持的编码种类，用以下代码可以看到：</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">Map m</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">Charset.availableCharsets();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  Set names</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">m.keySet();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  Iterator it</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">names.iterator();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">while</span>
				<span style="COLOR: #000000">(it.hasNext())<br /><img id="Codehighlighter1_115_153_Open_Image" onclick="this.style.display='none'; Codehighlighter1_115_153_Open_Text.style.display='none'; Codehighlighter1_115_153_Closed_Image.style.display='inline'; Codehighlighter1_115_153_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_115_153_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_115_153_Closed_Text.style.display='none'; Codehighlighter1_115_153_Open_Image.style.display='inline'; Codehighlighter1_115_153_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />  </span>
				<span id="Codehighlighter1_115_153_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_115_153_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />   System.out.println(it.next());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />  }</span>
				</span>
		</div>
		<p>
				<br />　　 然后可以通过以下代码看到我们目前JVM所使用的编码：<br /></p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">Properties pps</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">System.getProperties();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  pps.list(System.out);</span>
		</div>
		<p>　　具体来说什么是编码，什么是解码？<br />　　在InputStreamReader JDK有这样描述：It reads bytes and decodes them into characters using a specified charset.(用指定的字符集将字节数组解码成字符串)。<br />　　相反OutputStreamWriter 描述：Characters written to it are encoded into bytes using a specified charset.(用指定的字符集将字符串编码成字节数组)。<br /><br />　　理解这个以后一切好办了啦！<br /><br />　　我们的OS一般是GBK编码的（凡是从磁盘上读取文件可以看成是用OS的字符集编码方式来对操作对象进行解码处理--从标准输入设备读取数据的时候是依赖OS的字符集）。而我们将从磁盘上文件经过处理得到我们想要的字符串等其它对象的时候，这一过程是用JVM的默认的字符集编码方式来处理的！由于不同的字符集编码方式有着不同的原理(前面所述)，这样当编码与解码不一致的时候，自然而然就出现了可爱的乱码。<br /><br />　　比如如下，将我们JVM字符集改成iso-8859-1这样在就与我们的OS不同：<br />　　当输入中文时自然就输出的是乱码了。</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">pps.put(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">file.encoding</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">ISO-8859-1</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000"> data;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">byte</span>
				<span style="COLOR: #000000">[] buf</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">byte</span>
				<span style="COLOR: #000000">[</span>
				<span style="COLOR: #000000">100</span>
				<span style="COLOR: #000000">];<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000"> i</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">0</span>
				<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">while</span>
				<span style="COLOR: #000000">((data</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">System.in.read())</span>
				<span style="COLOR: #000000">!=</span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">q</span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">)<br /><img id="Codehighlighter1_130_164_Open_Image" onclick="this.style.display='none'; Codehighlighter1_130_164_Open_Text.style.display='none'; Codehighlighter1_130_164_Closed_Image.style.display='inline'; Codehighlighter1_130_164_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_130_164_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_130_164_Closed_Text.style.display='none'; Codehighlighter1_130_164_Open_Image.style.display='inline'; Codehighlighter1_130_164_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />  </span>
				<span id="Codehighlighter1_130_164_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_130_164_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />   buf[i]</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">(</span>
						<span style="COLOR: #0000ff">byte</span>
						<span style="COLOR: #000000">)data;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />   i</span>
						<span style="COLOR: #000000">++</span>
						<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />  }</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  String str</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000"> String(buf,</span>
				<span style="COLOR: #000000">0</span>
				<span style="COLOR: #000000">,i);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  System.out.println(str);</span>
		</div>
		<p>　<br />　　这时我们可以用string的一个构造方法：<br />　　<span style="COLOR: #000000">String(</span><span style="COLOR: #0000ff">byt</span><span style="COLOR: #000000">[] bytes, String charsetName) <br />　　Constructs a </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> String by decoding the specified array of bytes using the specified </span>charset.(用指定的字符集对字节数组进行解码)。<br />　　其中用到了string 的getBytes方法：<br />　　getBytes(String charsetName) <br />　　Encodes this String into a sequence of bytes using the named charset, storing the result into a new byte array.(用指定的字符集进行编码，将结果存放到一字节数组里面)重新构造一个string：</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">String strGBK</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000"> String(str.getBytes(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">ISO-8859-1</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">),</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">GBK</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">);</span>
		</div>
		<p>　　这样又可以重新得到我们想要的汉字了。<br /><br />　　我们这例子中是GBK(OS)来编码的，然后采用iso-8859-1(JVM)来解码得到一个新string(此string是乱码)，然后将此string用iso-8859-1重新编码，并且用指定的GBK来解码。得到一个新string(也就是strGBK)，这个string就不再是乱码了。<br /><br />　　但如果我们一开始就采用GBK解码得到的字符串，然后用ISO-8859-1编码，能否再解码回去得到我们的中文字符呢？显示不可以啦，因为用ISO-8859-1的编码的时候采用是一种单字节的字符集来对其编码，这样就丢失了一个字节(对中文来说)！所以这样是得不到中文字符的！</p>
<img src ="http://www.blogjava.net/Jkallen/aggbug/55666.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Jkallen/" target="_blank">Jkallen</a> 2006-06-29 08:42 <a href="http://www.blogjava.net/Jkallen/archive/2006/06/29/55666.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>借第三方类型库解析excel文件</title><link>http://www.blogjava.net/Jkallen/archive/2006/05/30/49087.html</link><dc:creator>Jkallen</dc:creator><author>Jkallen</author><pubDate>Tue, 30 May 2006 10:30:00 GMT</pubDate><guid>http://www.blogjava.net/Jkallen/archive/2006/05/30/49087.html</guid><wfw:comment>http://www.blogjava.net/Jkallen/comments/49087.html</wfw:comment><comments>http://www.blogjava.net/Jkallen/archive/2006/05/30/49087.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/Jkallen/comments/commentRss/49087.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Jkallen/services/trackbacks/49087.html</trackback:ping><description><![CDATA[
		<p>　　这里解析excel文件用了第三方所提供的一些类库。Jakarta的POI项目提供了一组操纵Windows文档的Java API，如下几个类提供了操作Excel文</p>
		<p>　　件的方便的途径：HSSFWorkbook、HSSFSheet、HSSFRow、HSSFCell，分别代表了Excel电子表格中的Book、Sheet、行和单元格。你可以在下面地址下载到最新的POI工具包： <br />　　<a href="http://jakarta.apache.org/poi/index.html">http://jakarta.apache.org/poi/index.html<br /></a><br />一些常用操作如下：</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">所导入的第三方类包</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> org.apache.poi.hssf.usermodel.HSSFCell;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> org.apache.poi.hssf.usermodel.HSSFRow;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> org.apache.poi.hssf.usermodel.HSSFSheet;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> org.apache.poi.hssf.usermodel.HSSFWorkbook;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> org.apache.poi.poifs.filesystem.POIFSFileSystem;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">初始化</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">POIFSFileSystem poiFs</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000"> POIFSFileSystem(inputStream);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />HSSFWorkbook wb </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000"> HSSFWorkbook(poiFs);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />HSSFSheet sheet </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> wb.getSheetAt(</span>
				<span style="COLOR: #000000">0</span>
				<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000"> rowNumber</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">sheet.getFirstRowNum();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000"> lastRowNumber</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">sheet.getLastRowNum();</span>
		</div>
		<p>
				<br />　　通过sheet.getRow(rowNumber)取得一行的数据。</p>
		<p>　　对每一行HSSFRow，它可以通过getFirstCellNum(cellNum) or getLastCellNum(cellNum)取得此行的格数(列数)。</p>
		<p>　　通过HSSFCell可以判断每个表格中的数据类型，DOC中描述如下：</p>
		<p> </p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #0000ff">static</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000"> CELL_TYPE_BLANK <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />          Blank Cell type (</span>
				<span style="COLOR: #000000">3</span>
				<span style="COLOR: #000000">) <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">static</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000"> CELL_TYPE_BOOLEAN <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />          Boolean Cell type (</span>
				<span style="COLOR: #000000">4</span>
				<span style="COLOR: #000000">) <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">static</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000"> CELL_TYPE_ERROR <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />          Error Cell type (</span>
				<span style="COLOR: #000000">5</span>
				<span style="COLOR: #000000">) <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">static</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000"> CELL_TYPE_FORMULA <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />          Formula Cell type (</span>
				<span style="COLOR: #000000">2</span>
				<span style="COLOR: #000000">) <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">static</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000"> CELL_TYPE_NUMERIC <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />          Numeric Cell type (</span>
				<span style="COLOR: #000000">0</span>
				<span style="COLOR: #000000">) <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">static</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000"> CELL_TYPE_STRING <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />          String Cell type (</span>
				<span style="COLOR: #000000">1</span>
				<span style="COLOR: #000000">) </span>
		</div>
		<p>
				<br />　　这样，对于一个现有的excel文件，我们可以取得它所以行的数据，并对行中的每条数据根据不同的类型进行操作了！<br /><br />将excel文件中的一行具体cell转换成java数据实例:</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img id="Codehighlighter1_66_1204_Open_Image" onclick="this.style.display='none'; Codehighlighter1_66_1204_Open_Text.style.display='none'; Codehighlighter1_66_1204_Closed_Image.style.display='inline'; Codehighlighter1_66_1204_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
				<img id="Codehighlighter1_66_1204_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_66_1204_Closed_Text.style.display='none'; Codehighlighter1_66_1204_Open_Image.style.display='inline'; Codehighlighter1_66_1204_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">private</span>
				<span style="COLOR: #000000"> String getStringCellValue(HSSFCell cell,</span>
				<span style="COLOR: #0000ff">boolean</span>
				<span style="COLOR: #000000"> dateFlag)</span>
				<span id="Codehighlighter1_66_1204_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_66_1204_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        String value</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #0000ff">null</span>
						<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
						<span style="COLOR: #0000ff">if</span>
						<span style="COLOR: #000000">(cell</span>
						<span style="COLOR: #000000">==</span>
						<span style="COLOR: #0000ff">null</span>
						<span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
						<span style="COLOR: #0000ff">return</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">null</span>
						<span style="COLOR: #000000">;<br /><img id="Codehighlighter1_178_1176_Open_Image" onclick="this.style.display='none'; Codehighlighter1_178_1176_Open_Text.style.display='none'; Codehighlighter1_178_1176_Closed_Image.style.display='inline'; Codehighlighter1_178_1176_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_178_1176_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_178_1176_Closed_Text.style.display='none'; Codehighlighter1_178_1176_Open_Image.style.display='inline'; Codehighlighter1_178_1176_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
						<span style="COLOR: #0000ff">switch</span>
						<span style="COLOR: #000000"> (cell.getCellType())</span>
						<span id="Codehighlighter1_178_1176_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_178_1176_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
								<span style="COLOR: #0000ff">case</span>
								<span style="COLOR: #000000"> HSSFCell.CELL_TYPE_BOOLEAN:<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                value</span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000">String.valueOf(cell.getBooleanCellValue());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
								<span style="COLOR: #0000ff">break</span>
								<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
								<span style="COLOR: #0000ff">case</span>
								<span style="COLOR: #000000"> HSSFCell.CELL_TYPE_NUMERIC:<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />              </span>
								<span style="COLOR: #0000ff">if</span>
								<span style="COLOR: #000000">(dateFlag)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                    value</span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #0000ff">new</span>
								<span style="COLOR: #000000"> java.text.SimpleDateFormat(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">yyyy-MM-dd HH:mm</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">).format(cell.getDateCellValue());<br /><img id="Codehighlighter1_529_714_Open_Image" onclick="this.style.display='none'; Codehighlighter1_529_714_Open_Text.style.display='none'; Codehighlighter1_529_714_Closed_Image.style.display='inline'; Codehighlighter1_529_714_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_529_714_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_529_714_Closed_Text.style.display='none'; Codehighlighter1_529_714_Open_Image.style.display='inline'; Codehighlighter1_529_714_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />                </span>
								<span style="COLOR: #0000ff">else</span>
								<span style="COLOR: #000000"> </span>
								<span id="Codehighlighter1_529_714_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.blogjava.net/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_529_714_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span>
										<span style="COLOR: #008000">//</span>
										<span style="COLOR: #008000">                    value=String.valueOf(cell.getNumericCellValue());</span>
										<span style="COLOR: #008000">
												<br />
												<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
										</span>
										<span style="COLOR: #000000">                    value </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #0000ff">new</span>
										<span style="COLOR: #000000"> DecimalFormat(</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">0.##########</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">).format(cell.getNumericCellValue());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />                }</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
								<span style="COLOR: #0000ff">break</span>
								<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
								<span style="COLOR: #0000ff">case</span>
								<span style="COLOR: #000000"> HSSFCell.CELL_TYPE_ERROR:<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                value</span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000">String.valueOf(cell.getErrorCellValue());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
								<span style="COLOR: #0000ff">break</span>
								<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
								<span style="COLOR: #0000ff">case</span>
								<span style="COLOR: #000000"> HSSFCell.CELL_TYPE_FORMULA:<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
								<span style="COLOR: #0000ff">case</span>
								<span style="COLOR: #000000"> HSSFCell.CELL_TYPE_BLANK: <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
								<span style="COLOR: #0000ff">case</span>
								<span style="COLOR: #000000"> HSSFCell.CELL_TYPE_STRING:<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                value</span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000">cell.getStringCellValue();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                    </span>
								<span style="COLOR: #0000ff">if</span>
								<span style="COLOR: #000000">(DATE_CELL.equals(value))<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                        dateCellNumber</span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000">cell.getCellNum();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
								<span style="COLOR: #0000ff">break</span>
								<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
						<span style="COLOR: #0000ff">return</span>
						<span style="COLOR: #000000"> value;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />    }</span>
				</span>
		</div>
		<p> </p>
		<p>　　到了现在实中应用当然不会这么简单，此类库的更多功能我们可以参考其API，在此将中附带了API。</p>
		<p>　　参考：<a href="http://jakarta.apache.org">http://jakarta.apache.org</a></p>
<img src ="http://www.blogjava.net/Jkallen/aggbug/49087.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Jkallen/" target="_blank">Jkallen</a> 2006-05-30 18:30 <a href="http://www.blogjava.net/Jkallen/archive/2006/05/30/49087.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>原来JSP里面也可以这样引用</title><link>http://www.blogjava.net/Jkallen/archive/2006/05/25/48097.html</link><dc:creator>Jkallen</dc:creator><author>Jkallen</author><pubDate>Thu, 25 May 2006 10:42:00 GMT</pubDate><guid>http://www.blogjava.net/Jkallen/archive/2006/05/25/48097.html</guid><wfw:comment>http://www.blogjava.net/Jkallen/comments/48097.html</wfw:comment><comments>http://www.blogjava.net/Jkallen/archive/2006/05/25/48097.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Jkallen/comments/commentRss/48097.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Jkallen/services/trackbacks/48097.html</trackback:ping><description><![CDATA[
		<p>　　刚刚才发现原来在JSP页面，当用到其脚本，如在&lt;%=REG%&gt;表达式中,原来REG是可以直接从此JSP页面的STRUTS中定义而来！<br /><br />　　从bean标签中引用，比如：</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">bean:define </span>
				<span style="COLOR: #ff0000">id</span>
				<span style="COLOR: #0000ff">="birthdayInfo"</span>
				<span style="COLOR: #ff0000"> name</span>
				<span style="COLOR: #0000ff">="person"</span>
				<span style="COLOR: #ff0000"> property</span>
				<span style="COLOR: #0000ff">="info.birthday"</span>
				<span style="COLOR: #0000ff">/&gt;</span>
		</div>
		<p>　　看struts参考文档中，bean:define 是指定义一个在指定范围内bean相关属性的脚本变量（Define a scripting variable based on the value(s) of the specified bean property）<br /><br />　　此中，person可能是在request等中预先已经定义好的DTO等等（这里暂时不是我们所要关注的啦），然后直接引用：</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">&lt;%</span>
				<span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span>
				<span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"> PrintUtil.printTimeArea((UtilDateDTO)birthdayInfo) </span>
				<span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">%&gt;</span>
		</div>
		<p>　　PrintUtil与UtilDateDTO均是在JSP页面预先包含进来的（也不用关注），这些都是后台部分的处理了，这里主是说明在JSP中其脚本如何引用STRUTS标签中的变量值。<br /><br />　　<br />　　也可以直接从logic中引用，如：</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">logic:iterate </span>
				<span style="COLOR: #ff0000">id</span>
				<span style="COLOR: #0000ff">="detailsdto"</span>
				<span style="COLOR: #ff0000"> name</span>
				<span style="COLOR: #0000ff">="eduCalendar"</span>
				<span style="COLOR: #ff0000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        type</span>
				<span style="COLOR: #0000ff">="com.jbbis.netedu.eduadmin.dto.CalendarDetailDTO"</span>
				<span style="COLOR: #ff0000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        property</span>
				<span style="COLOR: #0000ff">="details"</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span>
				<span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">&lt;%</span>
				<span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span>
				<span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"> PrintUtil.printTimeArea((CalendarDetailDTO)detailsdto) </span>
				<span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">%&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />       </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">logic:iterate</span>
				<span style="COLOR: #0000ff">&gt;</span>
		</div>
		<p>
				<br />　　其原理一样的。<br />         logic:iterate是用来迭代指定范围内一些特定的集合容器（Custom tag that iterates the elements of a collection, which can be either an attribute or the property of an attribute. The collection can be any of the following: an array of objects, an Enumeration, an Iterator, a Collection (which includes Lists, Sets and Vectors), or a Map (which includes Hashtables) whose elements will be iterated over.）<br /><br />　　应用示例：<br />　　在DTO中我的一属性---生日，在实体与DTO均定义为Long，所以假如有一个为1950-01-01生日的数据，那么在DTO与实体中就表示为631124235983 <br /></p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img id="Codehighlighter1_2_139_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2_139_Open_Text.style.display='none'; Codehighlighter1_2_139_Closed_Image.style.display='inline'; Codehighlighter1_2_139_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
				<img id="Codehighlighter1_2_139_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2_139_Closed_Text.style.display='none'; Codehighlighter1_2_139_Open_Image.style.display='inline'; Codehighlighter1_2_139_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				<span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">&lt;%</span>
				<span id="Codehighlighter1_2_139_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_2_139_Open_Text">
						<span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />java.text.DateFormat _fmt </span>
						<span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span>
						<span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">new</span>
						<span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"> java.text.SimpleDateFormat(</span>
						<span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span>
						<span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">yyyy-MM-dd</span>
						<span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span>
						<span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">, Locale.SIMPLIFIED_CHINESE);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				</span>
				<span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">%&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<img src="http://www.blogjava.net/images/dot.gif" />  <img src="http://www.blogjava.net/images/dot.gif" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">logic:notEmpty </span>
				<span style="COLOR: #ff0000">name</span>
				<span style="COLOR: #0000ff">="dto"</span>
				<span style="COLOR: #ff0000"> property</span>
				<span style="COLOR: #0000ff">="birthday"</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />     </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">bean:define </span>
				<span style="COLOR: #ff0000">id</span>
				<span style="COLOR: #0000ff">="curbirthday"</span>
				<span style="COLOR: #ff0000"> name</span>
				<span style="COLOR: #0000ff">="dto"</span>
				<span style="COLOR: #ff0000"> property</span>
				<span style="COLOR: #0000ff">="birthday"</span>
				<span style="COLOR: #0000ff">/&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />     </span>
				<span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">&lt;%</span>
				<span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span>
				<span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">_fmt.format(</span>
				<span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">new</span>
				<span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"> </span>
				<span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">Date</span>
				<span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">(((</span>
				<span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">Long</span>
				<span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">)curbirthday).longValue())) </span>
				<span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">%&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />     </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">logic:notEmpty</span>
				<span style="COLOR: #0000ff">&gt;&lt;/</span>
				<span style="COLOR: #800000">span</span>
				<span style="COLOR: #0000ff">&gt;&lt;/</span>
				<span style="COLOR: #800000">td</span>
				<span style="COLOR: #0000ff">&gt;</span>
		</div>
		<p>
				<br />
				<br />　　当然这样在JSP中加了个&lt;%=%&gt;符号，要不就在DTO中额外为生日另一个属性提供对生日的字符显示("yyyy-MM-dd")。<br /><br />　　在JSP中恰当应用相关标签，不仅编程方便，而且代码也可以美观不少。</p>
<img src ="http://www.blogjava.net/Jkallen/aggbug/48097.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Jkallen/" target="_blank">Jkallen</a> 2006-05-25 18:42 <a href="http://www.blogjava.net/Jkallen/archive/2006/05/25/48097.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>初探序列化---Serializable</title><link>http://www.blogjava.net/Jkallen/archive/2006/05/10/45422.html</link><dc:creator>Jkallen</dc:creator><author>Jkallen</author><pubDate>Wed, 10 May 2006 04:47:00 GMT</pubDate><guid>http://www.blogjava.net/Jkallen/archive/2006/05/10/45422.html</guid><wfw:comment>http://www.blogjava.net/Jkallen/comments/45422.html</wfw:comment><comments>http://www.blogjava.net/Jkallen/archive/2006/05/10/45422.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/Jkallen/comments/commentRss/45422.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Jkallen/services/trackbacks/45422.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 类通过实现 java.io.Serializable 接口以启用其序列化功能。未实现此接口的类将无法使其任何状态序列化或反序列化。可序列化类的所有子类型本身都是可序列化的。序列化接口没有方法或字段，仅用于标识可序列化的语义。　　Java的"对象序列化"能让你将一个实现了Serializable接口的对象转换成一组byte，这样日后要用这个对象时候，你就能把这些byte数据恢复出来，并据此重新构建那...&nbsp;&nbsp;<a href='http://www.blogjava.net/Jkallen/archive/2006/05/10/45422.html'>阅读全文</a><img src ="http://www.blogjava.net/Jkallen/aggbug/45422.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Jkallen/" target="_blank">Jkallen</a> 2006-05-10 12:47 <a href="http://www.blogjava.net/Jkallen/archive/2006/05/10/45422.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VO(DTO)与PO(DAO)之间的转换</title><link>http://www.blogjava.net/Jkallen/archive/2006/04/26/43290.html</link><dc:creator>Jkallen</dc:creator><author>Jkallen</author><pubDate>Wed, 26 Apr 2006 06:55:00 GMT</pubDate><guid>http://www.blogjava.net/Jkallen/archive/2006/04/26/43290.html</guid><wfw:comment>http://www.blogjava.net/Jkallen/comments/43290.html</wfw:comment><comments>http://www.blogjava.net/Jkallen/archive/2006/04/26/43290.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/Jkallen/comments/commentRss/43290.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Jkallen/services/trackbacks/43290.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: PO即 Persistence Object　　VO即 Value Object		　VO和PO的主要区别在于：　　VO是独立的Java Object。　　PO是由Hibernate纳入其实体容器（Entity Map）的对象，它代表了与数据库中某条记录对应的Hibernate实体，PO的变化在事务提交时将反应到实际数据库中。		　实际上，这个VO被用作Data Transfer Obje...&nbsp;&nbsp;<a href='http://www.blogjava.net/Jkallen/archive/2006/04/26/43290.html'>阅读全文</a><img src ="http://www.blogjava.net/Jkallen/aggbug/43290.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Jkallen/" target="_blank">Jkallen</a> 2006-04-26 14:55 <a href="http://www.blogjava.net/Jkallen/archive/2006/04/26/43290.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java中一些关于日期、日期格式、日期的解析和日期的计算 (转,略改)</title><link>http://www.blogjava.net/Jkallen/archive/2006/04/22/42477.html</link><dc:creator>Jkallen</dc:creator><author>Jkallen</author><pubDate>Sat, 22 Apr 2006 04:58:00 GMT</pubDate><guid>http://www.blogjava.net/Jkallen/archive/2006/04/22/42477.html</guid><wfw:comment>http://www.blogjava.net/Jkallen/comments/42477.html</wfw:comment><comments>http://www.blogjava.net/Jkallen/archive/2006/04/22/42477.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Jkallen/comments/commentRss/42477.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Jkallen/services/trackbacks/42477.html</trackback:ping><description><![CDATA[跑系统时,难免遇到了数据量大的情况,只好让爱机彻夜工作了,自己闪人。毕竟对它不放心，这时得用到日志，日志里的时间肯定是要的啦。至少得知道他什么时候罢工吧（今天一来，我电脑就在昨天不明时间罢工了！）。下面是转自一位网友的：<br /><br />Java中一些关于日期、日期格式、日期的解析和日期的计算 <br /><p><font size="2">Java 语言的Calendar(日历),Date(日期), 和DateFormat(日期格式)组成了Java标准的一个基本但是非常重要的部分. 日期是商业逻辑计算一个关键的部分. 所有的开发者都应该能够计算未来的日期, 定制日期的显示格式, 并将文本数据解析成日期对象. 我们写了两篇文章, 这是第一篇, 我们将大概的学习日期, 日期格式, 日期的解析和日期的计算. </font></p><p><font size="2">我们将讨论下面的类: </font></p><p><font size="2">1、具体类(和抽象类相对)java.util.Date <br />2、抽象类java.text.DateFormat 和它的一个具体子类,java.text.SimpleDateFormat <br />3、抽象类java.util.Calendar 和它的一个具体子类,java.util.GregorianCalendar </font></p><p><font size="2">具体类可以被实例化, 但是抽象类却不能. 你首先必须实现抽象类的一个具体子类. </font></p><p><font size="2">Date 类从Java 开发包(JDK) 1.0 就开始进化, 当时它只包含了几个取得或者设置一个日期数据的各个部分的方法, 比如说月, 日, 和年. 这些方法现在遭到了批评并且已经被转移到了Calendar类里去了, 我们将在本文中进一步讨论它. 这种改进旨在更好的处理日期数据的国际化格式. 就象在JDK 1.1中一样, Date 类实际上只是一个包裹类, 它包含的是一个长整型数据, 表示的是从GMT(格林尼治标准时间)1970年, 1 月 1日00:00:00这一刻之前或者是之后经历的毫秒数. </font></p><p><font size="2">一、创建一个日期对象 </font></p><p><font size="2">让我们看一个使用系统的当前日期和时间创建一个日期对象并返回一个长整数的简单例子. 这个时间通常被称为Java 虚拟机(JVM)主机环境的系统时间. <br />//------------------------------------------------------<br />import java.util.Date; </font></p><p><font size="2">public class DateExample1 <br />{ <br />public static void main(String[] args)<br />{ <br />// Get the system date/time <br />Date date = new Date(); </font></p><p><font size="2">System.out.println(date.getTime()); <br />} <br />} <br />//------------------------------------------------------</font><font size="2"></font></p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; HEIGHT: 27px; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">1145681088396<br /></span></div><p><br />在星期六, 2001年9月29日, 下午大约是6:50的样子, 上面的例子在系统输出设备上显示的结果是 1001803809710. 在这个例子中,值得注意的是我们使用了Date 构造函数创建一个日期对象, 这个构造函数没有接受任何参数. 而这个构造函数在内部使用了System.currentTimeMillis() 方法来从系统获取日期. </p><p><font size="2">那么, 现在我们已经知道了如何获取从1970年1月1日开始经历的毫秒数了. 我们如何才能以一种用户明白的格式来显示这个日期呢? 在这里类java.text.SimpleDateFormat 和它的抽象基类 java.text.DateFormat 就派得上用场了. </font></p><p><font size="2">二、日期数据的定制格式 </font></p><p><font size="2">假如我们希望定制日期数据的格式, 比方星期六-9月-29日-2001年. 下面的例子展示了如何完成这个工作: </font></p><p><font size="2">//------------------------------------------------------<br />import java.text.SimpleDateFormat; <br />import java.util.Date; </font></p><p><font size="2">public class DateExample2 <br />{ </font></p><p><font size="2">public static void main(String[] args) <br />{ </font></p><p><font size="2">SimpleDateFormat bartDateFormat = <br />new SimpleDateFormat("EEEE-MMMM-dd-yyyy"); </font></p><p><font size="2">Date date = new Date(); </font></p><p><font size="2">System.out.println(bartDateFormat.format(date)); <br />} <br />} <br />//------------------------------------------------------<br /><br /></font></p><p><font size="2"></font></p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">星期六-四月-22-2006</span></div><p><br />只要通过向SimpleDateFormat 的构造函数传递格式字符串"EEE-MMMM-dd-yyyy", 我们就能够指明自己想要的格式. 你应该可以看见, 格式字符串中的ASCII 字符告诉格式化函数下面显示日期数据的哪一个部分. EEEE是星期, MMMM是月, dd是日, yyyy是年. 字符的个数决定了日期是如何格式化的.传递"EE-MM-dd-yy"会显示 Sat-09-29-01. 请察看Sun 公司的Web 站点获取日期格式化选项的完整的指示.</p><p><font size="2">三、将文本数据解析成日期对象 </font></p><p><font size="2">假设我们有一个文本字符串包含了一个格式化了的日期对象, 而我们希望解析这个字符串并从文本日期数据创建一个日期对象. 我们将再次以格式化字符串"MM-dd-yyyy" 调用SimpleDateFormat类, 但是这一次, 我们使用格式化解析而不是生成一个文本日期数据. 我们的例子, 显示在下面, 将解析文本字符串"9-29-2001"并创建一个值为001736000000 的日期对象. </font></p><p><font size="2">//------------------------------------------------------<br />import java.text.SimpleDateFormat; <br />import java.util.Date; </font></p><p><font size="2">public class DateExample3 <br />{ </font></p><p><font size="2">public static void main(String[] args) <br />{ <br />// Create a date formatter that can parse dates of <br />// the form MM-dd-yyyy. <br />SimpleDateFormat bartDateFormat = <br />new SimpleDateFormat("MM-dd-yyyy"); </font></p><p><font size="2">// Create a string containing a text date to be parsed. <br />String dateStringToParse = "9-29-2001"; </font></p><p><font size="2">try { <br />// Parse the text version of the date. <br />// We have to perform the parse method in a <br />// try-catch construct in case dateStringToParse <br />// does not contain a date in the format we are expecting. <br />Date date = bartDateFormat.parse(dateStringToParse); </font></p><p><font size="2">// Now send the parsed date as a long value <br />// to the system output. <br />System.out.println(date.getTime()); <br />} <br />catch (Exception ex) { <br />System.out.println(ex.getMessage()); <br />} <br />} <br />} <br />//------------------------------------------------------<br /></font></p><p><font size="2"></font></p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">1001692800000</span></div><p><br /><br />四、使用标准的日期格式化过程 </p><p><font size="2">既然我们已经可以生成和解析定制的日期格式了, 让我们来看一看如何使用内建的格式化过程. 方法 DateFormat.getDateTimeInstance() 让我们得以用几种不同的方法获得标准的日期格式化过程. 在下面的例子中, 我们获取了四个内建的日期格式化过程. 它们包括一个短的, 中等的, 长的, 和完整的日期格式. </font></p><p><font size="2">//------------------------------------------------------<br />import java.text.DateFormat; <br />import java.util.Date; </font></p><p><font size="2">public class DateExample4 <br />{ </font></p><p><font size="2">public static void main(String[] args) <br />{ <br />Date date = new Date(); </font></p><p><font size="2">DateFormat shortDateFormat = <br />DateFormat.getDateTimeInstance( <br />DateFormat.SHORT, <br />DateFormat.SHORT); </font></p><p><font size="2">DateFormat mediumDateFormat = <br />DateFormat.getDateTimeInstance( <br />DateFormat.MEDIUM, <br />DateFormat.MEDIUM); </font></p><p><font size="2">DateFormat longDateFormat = <br />DateFormat.getDateTimeInstance( <br />DateFormat.LONG, <br />DateFormat.LONG); </font></p><p><font size="2">DateFormat fullDateFormat = <br />DateFormat.getDateTimeInstance( <br />DateFormat.FULL, <br />DateFormat.FULL); </font></p><p><font size="2">System.out.println(shortDateFormat.format(date)); <br />System.out.println(mediumDateFormat.format(date)); <br />System.out.println(longDateFormat.format(date)); <br />System.out.println(fullDateFormat.format(date)); <br />} <br />} <br />//------------------------------------------------------<br /></font></p><p><font size="2"></font></p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">01-9-29 上午12:00<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />2001-9-29 0:00:00<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />2001年9月29日 上午12时00分00秒<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />2001年9月29日 星期六 上午12时00分00秒 CST</span></div><p><br />注意我们在对 getDateTimeInstance的每次调用中都传递了两个值. 第一个参数是日期风格, 而第二个参数是时间风格. 它们都是基本数据类型int(整型). 考虑到可读性, 我们使用了DateFormat 类提供的常量: SHORT, MEDIUM, LONG, 和 FULL. 要知道获取时间和日期格式化过程的更多的方法和选项, 请看Sun 公司Web 站点上的解释. </p><p><font size="2">运行我们的例子程序的时候, 它将向标准输出设备输出下面的内容: <br />9/29/01 8:44 PM <br />Sep 29, 2001 8:44:45 PM <br />September 29, 2001 8:44:45 PM EDT <br />Saturday, September 29, 2001 8:44:45 PM EDT</font></p><p><font size="2">五、Calendar 类 </font></p><p><font size="2">我们现在已经能够格式化并创建一个日期对象了, 但是我们如何才能设置和获取日期数据的特定部分呢, 比如说小时, 日, 或者分钟? 我们又如何在日期的这些部分加上或者减去值呢? 答案是使用Calendar 类. 就如我们前面提到的那样, Calendar 类中的方法替代了Date 类中被人唾骂的方法. </font></p><p><font size="2">假设你想要设置, 获取, 和操纵一个日期对象的各个部分, 比方一个月的一天或者是一个星期的一天. 为了演示这个过程, 我们将使用具体的子类 java.util.GregorianCalendar. 考虑下面的例子, 它计算得到下面的第十个星期五是13号. </font></p><p><font size="2">//------------------------------------------------------<br />import java.util.GregorianCalendar; <br />import java.util.Date; <br />import java.text.DateFormat; </font></p><p><font size="2">public class DateExample5 <br />{ </font></p><p><font size="2">public static void main(String[] args) <br />{ <br />DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL); </font></p><p><font size="2">// Create our Gregorian Calendar. <br />GregorianCalendar cal = new GregorianCalendar(); <br /><br />// Set the date and time of our calendar <br />// to the system&amp;s date and time <br />cal.setTime(new Date()); </font></p><p><font size="2">System.out.println("System Date: " + <br />dateFormat.format(cal.getTime()));<br /><br />System.out.println("Befor Setting Day of Week to Friday: " + <br />dateFormat.format(cal.getTime()));  <br /></font></p><p><font size="2">// Set the day of week to FRIDAY <br />cal.set(GregorianCalendar.DAY_OF_WEEK, <br />GregorianCalendar.FRIDAY); <br />System.out.println("After Setting Day of Week to Friday: " + <br />dateFormat.format(cal.getTime())); </font></p><p><font size="2">int friday13Counter = 0; <br /><br />while (friday13Counter &lt;= 10) <br />{ </font></p><p><font size="2">// Go to the next Friday by adding 7 days. <br />cal.add(GregorianCalendar.DAY_OF_MONTH, 7); </font></p><p><font size="2">// If the day of month is 13 we have <br />// another Friday the 13th. <br />if (cal.get(GregorianCalendar.DAY_OF_MONTH) == 13) <br />{ <br />friday13Counter++; <br />System.out.println(dateFormat.format(cal.getTime())); <br />} <br />} <br />} <br />} <br />//------------------------------------------------------<br /></font></p><p><font size="2"></font></p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">    Befor Setting Day of Week to Friday: 2006年4月22日 星期六<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">After Setting Day of Week to Friday: 2006年4月21日 星期五<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />2006年10月13日 星期五<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />2007年4月13日 星期五<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />2007年7月13日 星期五<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />2008年6月13日 星期五<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />2009年2月13日 星期五<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />2009年3月13日 星期五<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />2009年11月13日 星期五<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />2010年8月13日 星期五<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />2011年5月13日 星期五<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />2012年1月13日 星期五<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />2012年4月13日 星期五</span></div><p><br /><br />在这个例子中我们作了有趣的函数调用: <br />cal.set(GregorianCalendar.DAY_OF_WEEK, <br />GregorianCalendar.FRIDAY); </p><p><font size="2">和: <br />cal.add(GregorianCalendar.DAY_OF_MONTH, 7); </font></p><p><font size="2">set 方法能够让我们通过简单的设置星期中的哪一天这个域来将我们的时间调整为星期五. 注意到这里我们使用了常量 DAY_OF_WEEK 和 FRIDAY来增强代码的可读性. add 方法让我们能够在日期上加上数值. 润年的所有复杂的计算都由这个方法自动处理. </font></p><p><font size="2">我们这个例子的输出结果是: <br />System Date: Saturday, September 29, 2001 <br />当我们将它设置成星期五以后就成了: Friday, September 28, 2001 <br />Friday, September 13, 2002 <br />Friday, December 13, 2002 <br />Friday, June 13, 2003 <br />Friday, February 13, 2004 <br />Friday, August 13, 2004 <br />Friday, May 13, 2005 <br />Friday, January 13, 2006 <br />Friday, October 13, 2006 <br />Friday, April 13, 2007 <br />Friday, July 13, 2007 <br />Friday, June 13, 2008 </font></p><p><font size="2">六、时间掌握在你的手里 </font></p><p><font size="2">有了这些Date 和Calendar 类的例子, 你应该能够使用 java.util.Date, java.text.SimpleDateFormat, 和 java.util.GregorianCalendar 创建许多方法了. </font></p><img src ="http://www.blogjava.net/Jkallen/aggbug/42477.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Jkallen/" target="_blank">Jkallen</a> 2006-04-22 12:58 <a href="http://www.blogjava.net/Jkallen/archive/2006/04/22/42477.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate学习---通过XDoclet(ant)生成Hibernate映射文件</title><link>http://www.blogjava.net/Jkallen/archive/2006/04/10/40305.html</link><dc:creator>Jkallen</dc:creator><author>Jkallen</author><pubDate>Mon, 10 Apr 2006 11:00:00 GMT</pubDate><guid>http://www.blogjava.net/Jkallen/archive/2006/04/10/40305.html</guid><wfw:comment>http://www.blogjava.net/Jkallen/comments/40305.html</wfw:comment><comments>http://www.blogjava.net/Jkallen/archive/2006/04/10/40305.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Jkallen/comments/commentRss/40305.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Jkallen/services/trackbacks/40305.html</trackback:ping><description><![CDATA[
		<p>通过XDoclet可以我们的精力放在编写java源文件上。<br /><br />具体来说就是：<br />只有Java： java---&gt;XDoclet(hibernatedoclet)---&gt;Hbm----&gt;SchemaExport(schemaexport,hbm2ddl)----&gt;数据表</p>
		<p>
				<strong>1:java源文件编写</strong>
		</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img id="Codehighlighter1_0_28_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_28_Open_Text.style.display='none'; Codehighlighter1_0_28_Closed_Image.style.display='inline'; Codehighlighter1_0_28_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
				<img id="Codehighlighter1_0_28_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_0_28_Closed_Text.style.display='none'; Codehighlighter1_0_28_Open_Image.style.display='inline'; Codehighlighter1_0_28_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				<span id="Codehighlighter1_0_28_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span>
				<span id="Codehighlighter1_0_28_Open_Text">
						<span style="COLOR: #008000">/*</span>
						<span style="COLOR: #008000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * Created on 2006-4-7<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /> </span>
						<span style="COLOR: #008000">*/</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">package</span>
				<span style="COLOR: #000000"> com.entity;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img id="Codehighlighter1_52_165_Open_Image" onclick="this.style.display='none'; Codehighlighter1_52_165_Open_Text.style.display='none'; Codehighlighter1_52_165_Closed_Image.style.display='inline'; Codehighlighter1_52_165_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_52_165_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_52_165_Closed_Text.style.display='none'; Codehighlighter1_52_165_Open_Image.style.display='inline'; Codehighlighter1_52_165_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
				<span id="Codehighlighter1_52_165_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span>
				<span id="Codehighlighter1_52_165_Open_Text">
						<span style="COLOR: #008000">/**</span>
						<span style="COLOR: #008000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * </span>
						<span style="COLOR: #808080">@author</span>
						<span style="COLOR: #008000"> jkallen<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * @hibernate.class lazy="true" table="syn_dept"<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * @hibernate.cache usage="read-write"<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /> </span>
						<span style="COLOR: #008000">*/</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img id="Codehighlighter1_194_684_Open_Image" onclick="this.style.display='none'; Codehighlighter1_194_684_Open_Text.style.display='none'; Codehighlighter1_194_684_Closed_Image.style.display='inline'; Codehighlighter1_194_684_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_194_684_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_194_684_Closed_Text.style.display='none'; Codehighlighter1_194_684_Open_Image.style.display='inline'; Codehighlighter1_194_684_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">public</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">class</span>
				<span style="COLOR: #000000"> SynDepartment </span>
				<span id="Codehighlighter1_194_684_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_194_684_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> <br /><img id="Codehighlighter1_199_209_Open_Image" onclick="this.style.display='none'; Codehighlighter1_199_209_Open_Text.style.display='none'; Codehighlighter1_199_209_Closed_Image.style.display='inline'; Codehighlighter1_199_209_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_199_209_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_199_209_Closed_Text.style.display='none'; Codehighlighter1_199_209_Open_Image.style.display='inline'; Codehighlighter1_199_209_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /> </span>
						<span id="Codehighlighter1_199_209_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span>
						<span id="Codehighlighter1_199_209_Open_Text">
								<span style="COLOR: #008000">/**</span>
								<span style="COLOR: #008000"> 主键 id</span>
								<span style="COLOR: #008000">*/</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> </span>
						<span style="COLOR: #0000ff">private</span>
						<span style="COLOR: #000000"> Long id;<br /><img id="Codehighlighter1_230_239_Open_Image" onclick="this.style.display='none'; Codehighlighter1_230_239_Open_Text.style.display='none'; Codehighlighter1_230_239_Closed_Image.style.display='inline'; Codehighlighter1_230_239_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_230_239_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_230_239_Closed_Text.style.display='none'; Codehighlighter1_230_239_Open_Image.style.display='inline'; Codehighlighter1_230_239_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /> </span>
						<span id="Codehighlighter1_230_239_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span>
						<span id="Codehighlighter1_230_239_Open_Text">
								<span style="COLOR: #008000">/**</span>
								<span style="COLOR: #008000"> 部门名称</span>
								<span style="COLOR: #008000">*/</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> </span>
						<span style="COLOR: #0000ff">private</span>
						<span style="COLOR: #000000"> String code_name;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> <br /><img id="Codehighlighter1_271_361_Open_Image" onclick="this.style.display='none'; Codehighlighter1_271_361_Open_Text.style.display='none'; Codehighlighter1_271_361_Closed_Image.style.display='inline'; Codehighlighter1_271_361_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_271_361_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_271_361_Closed_Text.style.display='none'; Codehighlighter1_271_361_Open_Image.style.display='inline'; Codehighlighter1_271_361_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /> </span>
						<span id="Codehighlighter1_271_361_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span>
						<span id="Codehighlighter1_271_361_Open_Text">
								<span style="COLOR: #008000">/**</span>
								<span style="COLOR: #008000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  * </span>
								<span style="COLOR: #808080">@return</span>
								<span style="COLOR: #008000"> Returns the id.<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  * @hibernate.id generator-class="native" column="id"<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />  </span>
								<span style="COLOR: #008000">*/</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img id="Codehighlighter1_387_403_Open_Image" onclick="this.style.display='none'; Codehighlighter1_387_403_Open_Text.style.display='none'; Codehighlighter1_387_403_Closed_Image.style.display='inline'; Codehighlighter1_387_403_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_387_403_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_387_403_Closed_Text.style.display='none'; Codehighlighter1_387_403_Open_Image.style.display='inline'; Codehighlighter1_387_403_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> Long getId() </span>
						<span id="Codehighlighter1_387_403_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_387_403_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  </span>
								<span style="COLOR: #0000ff">return</span>
								<span style="COLOR: #000000"> id;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /> }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img id="Codehighlighter1_433_452_Open_Image" onclick="this.style.display='none'; Codehighlighter1_433_452_Open_Text.style.display='none'; Codehighlighter1_433_452_Closed_Image.style.display='inline'; Codehighlighter1_433_452_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_433_452_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_433_452_Closed_Text.style.display='none'; Codehighlighter1_433_452_Open_Image.style.display='inline'; Codehighlighter1_433_452_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /> </span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">void</span>
						<span style="COLOR: #000000"> setId(Long id) </span>
						<span id="Codehighlighter1_433_452_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_433_452_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  </span>
								<span style="COLOR: #0000ff">this</span>
								<span style="COLOR: #000000">.id </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> id;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /> }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img id="Codehighlighter1_455_548_Open_Image" onclick="this.style.display='none'; Codehighlighter1_455_548_Open_Text.style.display='none'; Codehighlighter1_455_548_Closed_Image.style.display='inline'; Codehighlighter1_455_548_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_455_548_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_455_548_Closed_Text.style.display='none'; Codehighlighter1_455_548_Open_Image.style.display='inline'; Codehighlighter1_455_548_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /> </span>
						<span id="Codehighlighter1_455_548_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span>
						<span id="Codehighlighter1_455_548_Open_Text">
								<span style="COLOR: #008000">/**</span>
								<span style="COLOR: #008000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    * </span>
								<span style="COLOR: #808080">@return</span>
								<span style="COLOR: #008000"> Returns the code_name.<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    * @hibernate.property column = "code_name"<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    </span>
								<span style="COLOR: #008000">*/</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img id="Codehighlighter1_580_603_Open_Image" onclick="this.style.display='none'; Codehighlighter1_580_603_Open_Text.style.display='none'; Codehighlighter1_580_603_Closed_Image.style.display='inline'; Codehighlighter1_580_603_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_580_603_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_580_603_Closed_Text.style.display='none'; Codehighlighter1_580_603_Open_Image.style.display='inline'; Codehighlighter1_580_603_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /> </span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> String getCode_name() </span>
						<span id="Codehighlighter1_580_603_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_580_603_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  </span>
								<span style="COLOR: #0000ff">return</span>
								<span style="COLOR: #000000"> code_name;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /> }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img id="Codehighlighter1_649_682_Open_Image" onclick="this.style.display='none'; Codehighlighter1_649_682_Open_Text.style.display='none'; Codehighlighter1_649_682_Closed_Image.style.display='inline'; Codehighlighter1_649_682_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_649_682_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_649_682_Closed_Text.style.display='none'; Codehighlighter1_649_682_Open_Image.style.display='inline'; Codehighlighter1_649_682_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /> </span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">void</span>
						<span style="COLOR: #000000"> setCode_name(String code_name) </span>
						<span id="Codehighlighter1_649_682_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_649_682_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  </span>
								<span style="COLOR: #0000ff">this</span>
								<span style="COLOR: #000000">.code_name </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> code_name;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /> }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
		</div>
		<p>
				<br />
				<br />这里用到了几种@hibernate标记的用法<br />@hibernate.class标记指定类的映射代码，lazy="true" table="syn_dept"则如<br />hibernate的映射文件class元素的属性值具有相同的意义<br />@hibernate.id标记指定类的OID映射代码<br />@hibernate.property标记指定类的属性映射代码<br />另外还可能用到@hibernate.set(如一对多的情况下)</p>
		<p>
				<strong>2:XDoclet---&gt;Hbm(写在build.xml文件中，ANT运行)<br /></strong>
		</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">target </span>
				<span style="COLOR: #ff0000">name</span>
				<span style="COLOR: #0000ff">="toHbm"</span>
				<span style="COLOR: #ff0000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  depends</span>
				<span style="COLOR: #0000ff">="compileEntity"</span>
				<span style="COLOR: #ff0000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  description</span>
				<span style="COLOR: #0000ff">="Generate hibernate mapping documents"</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">hibernatedoclet </span>
				<span style="COLOR: #ff0000">destdir</span>
				<span style="COLOR: #0000ff">="${generated.dir}"</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">fileset </span>
				<span style="COLOR: #ff0000">dir</span>
				<span style="COLOR: #0000ff">="${src.dir}"</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">include </span>
				<span style="COLOR: #ff0000">name</span>
				<span style="COLOR: #0000ff">="**/entity/*.java"</span>
				<span style="COLOR: #ff0000"> </span>
				<span style="COLOR: #0000ff">/&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">fileset</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">hibernate </span>
				<span style="COLOR: #ff0000">version</span>
				<span style="COLOR: #0000ff">="2.0"</span>
				<span style="COLOR: #ff0000"> </span>
				<span style="COLOR: #0000ff">/&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">hibernatedoclet</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">copy </span>
				<span style="COLOR: #ff0000">todir</span>
				<span style="COLOR: #0000ff">="${classes.dir}"</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">fileset </span>
				<span style="COLOR: #ff0000">dir</span>
				<span style="COLOR: #0000ff">="${generated.dir}"</span>
				<span style="COLOR: #ff0000"> </span>
				<span style="COLOR: #0000ff">/&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">copy</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">target</span>
				<span style="COLOR: #0000ff">&gt;</span>
		</div>
		<p>
				<br />通过hibernatedoclet就可以生成SynDepartment.hbm.xml映射文件<br />fileset顾名思义就是过滤文件了。<br />注：compileEntity--编译java源文件(自定义)</p>
		<p>
				<strong>3:SchemaExport----&gt;数据表</strong>
				<br />
		</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">target </span>
				<span style="COLOR: #ff0000">name</span>
				<span style="COLOR: #0000ff">="toddl"</span>
				<span style="COLOR: #ff0000"> depends</span>
				<span style="COLOR: #0000ff">="init"</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">schemaexport </span>
				<span style="COLOR: #ff0000">properties</span>
				<span style="COLOR: #0000ff">="${classes.dir}/hibernate.properties"</span>
				<span style="COLOR: #ff0000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   quiet</span>
				<span style="COLOR: #0000ff">="no"</span>
				<span style="COLOR: #ff0000"> text</span>
				<span style="COLOR: #0000ff">="no"</span>
				<span style="COLOR: #ff0000"> drop</span>
				<span style="COLOR: #0000ff">="no"</span>
				<span style="COLOR: #ff0000">    <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   delimiter</span>
				<span style="COLOR: #0000ff">="&amp;#xd;&amp;#xa;go&amp;#xd;&amp;#xa;"</span>
				<span style="COLOR: #ff0000"> output</span>
				<span style="COLOR: #0000ff">="${sql.dir}/${synup.sql.file}"</span>
				<span style="COLOR: #ff0000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">fileset </span>
				<span style="COLOR: #ff0000">refid</span>
				<span style="COLOR: #0000ff">="hibernate.synup.mapping.files"</span>
				<span style="COLOR: #ff0000"> </span>
				<span style="COLOR: #0000ff">/&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">schemaexport</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">echo </span>
				<span style="COLOR: #ff0000">message</span>
				<span style="COLOR: #0000ff">="Output sql to file: ${sql.dir}/${sql.file}"</span>
				<span style="COLOR: #ff0000"> </span>
				<span style="COLOR: #0000ff">/&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">target</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">fileset </span>
				<span style="COLOR: #ff0000">id</span>
				<span style="COLOR: #0000ff">="hibernate.synup.mapping.files"</span>
				<span style="COLOR: #ff0000"> dir</span>
				<span style="COLOR: #0000ff">="${classes.dir}"</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">include </span>
				<span style="COLOR: #ff0000">name</span>
				<span style="COLOR: #0000ff">="**/entity/*.hbm.xml"</span>
				<span style="COLOR: #ff0000"> </span>
				<span style="COLOR: #0000ff">/&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">fileset</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
		</div>
		<p>
				<br /> 通过schemaexport就向DB中生成table了。其中可能用到如下的一些属性：<br /> quiet：如果为yes,表示不把子DDL脚本输出到控制台<br /> drop：如果为yes，只执行删除数据库中的操作，但不创建新的表<br /> text：如果为yes，只会生成DDL脚本文件，但不会在数据库中执行DDL脚本<br /> output：指定存放DDL脚本文件的目录<br /> config：设定基于XML格式的配置文件， hbm2ddl(schemaexport)工具从这个文件中读取数据库的配置信息<br /> properties：设定基于java属性文件格式的配置文件，hbm2ddl(schemaexport)工具从这个文件中读取DB的配置信息<br /> format：设定DDL脚本中SQL语句的格式<br /> delimiter：为DDL脚本设置行结束符<br /> <br /> 在ANT中执行：<br /> &lt;target name="initOnlySynup" depends="toHbm,toddl"&gt;<br /> &lt;/target&gt;<br /> <br /> OK,最后生成的映射文件如下：<br /></p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #0000ff">&lt;?</span>
				<span style="COLOR: #ff00ff">xml version="1.0"</span>
				<span style="COLOR: #0000ff">?&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">&lt;!</span>
				<span style="COLOR: #ff00ff">DOCTYPE hibernate-mapping PUBLIC<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    "-//Hibernate/Hibernate Mapping DTD 2.0//EN" <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">hibernate-mapping</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">class<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span>
				<span style="COLOR: #ff0000">name</span>
				<span style="COLOR: #0000ff">="com.SynDepartment"</span>
				<span style="COLOR: #ff0000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        table</span>
				<span style="COLOR: #0000ff">="syn_dept"</span>
				<span style="COLOR: #ff0000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        dynamic-update</span>
				<span style="COLOR: #0000ff">="false"</span>
				<span style="COLOR: #ff0000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        dynamic-insert</span>
				<span style="COLOR: #0000ff">="false"</span>
				<span style="COLOR: #ff0000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">cache </span>
				<span style="COLOR: #ff0000">usage</span>
				<span style="COLOR: #0000ff">="read-write"</span>
				<span style="COLOR: #ff0000"> </span>
				<span style="COLOR: #0000ff">/&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">id<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            </span>
				<span style="COLOR: #ff0000">name</span>
				<span style="COLOR: #0000ff">="id"</span>
				<span style="COLOR: #ff0000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            column</span>
				<span style="COLOR: #0000ff">="id"</span>
				<span style="COLOR: #ff0000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            type</span>
				<span style="COLOR: #0000ff">="java.lang.Long"</span>
				<span style="COLOR: #ff0000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">generator </span>
				<span style="COLOR: #ff0000">class</span>
				<span style="COLOR: #0000ff">="native"</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">generator</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">id</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">property<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            </span>
				<span style="COLOR: #ff0000">name</span>
				<span style="COLOR: #0000ff">="code_name"</span>
				<span style="COLOR: #ff0000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            type</span>
				<span style="COLOR: #0000ff">="java.lang.String"</span>
				<span style="COLOR: #ff0000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            update</span>
				<span style="COLOR: #0000ff">="true"</span>
				<span style="COLOR: #ff0000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            insert</span>
				<span style="COLOR: #0000ff">="true"</span>
				<span style="COLOR: #ff0000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            access</span>
				<span style="COLOR: #0000ff">="property"</span>
				<span style="COLOR: #ff0000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            column</span>
				<span style="COLOR: #0000ff">="code_name"</span>
				<span style="COLOR: #ff0000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span>
				<span style="COLOR: #0000ff">/&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span>
				<span style="COLOR: #008000">&lt;!--</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            To add non XDoclet property mappings, create a file named<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                hibernate-properties-SynDepartment.xml<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            containing the additional properties and place it in your merge dir.<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span>
				<span style="COLOR: #008000">--&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">class</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">hibernate-mapping</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
		</div>
		<p>
				<br /> 控制台中部分信息如下：</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">[schemaexport] drop table syn_dept cascade constraints<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />[schemaexport] go<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />[schemaexport] drop sequence hibernate_sequence<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />[schemaexport] go<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />[schemaexport] create table syn_dept (<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />[schemaexport] id number(19,0) not null,<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />[schemaexport] code_name varchar2(255),<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />[schemaexport] primary key (id)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />[schemaexport] )</span>
		</div>
		<p>DB中已经生成syn_dept表了,快去看下吧!<br /><br />关于Xdoclet 中的hibernate标签更多信息可以参考：<br /><a href="http://xdoclet.sourceforge.net/xdoclet/tags/hibernate-tags.html#@hibernate_collection-key__0__1">http://xdoclet.sourceforge.net/xdoclet/tags/hibernate-tags.html#@hibernate_collection-key__0__1</a>_<br />我还在一个网友的博客上看到了他对此的汉化：<br /><a href="http://blog.csdn.net/fasttalk/archive/2005/09/19/484615.aspx">http://blog.csdn.net/fasttalk/archive/2005/09/19/484615.aspx</a><br /><br /><br />参考资料：Hibernate持久化技术详解</p>
<img src ="http://www.blogjava.net/Jkallen/aggbug/40305.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Jkallen/" target="_blank">Jkallen</a> 2006-04-10 19:00 <a href="http://www.blogjava.net/Jkallen/archive/2006/04/10/40305.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> Java中文处理, 资源包后缀详解 </title><link>http://www.blogjava.net/Jkallen/archive/2006/04/07/39896.html</link><dc:creator>Jkallen</dc:creator><author>Jkallen</author><pubDate>Fri, 07 Apr 2006 10:29:00 GMT</pubDate><guid>http://www.blogjava.net/Jkallen/archive/2006/04/07/39896.html</guid><wfw:comment>http://www.blogjava.net/Jkallen/comments/39896.html</wfw:comment><comments>http://www.blogjava.net/Jkallen/archive/2006/04/07/39896.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Jkallen/comments/commentRss/39896.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Jkallen/services/trackbacks/39896.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Java中文处理, 资源包后缀详解												作者： 车东 Email: chedongATbigfoot.com/chedongATchedong.com										写于：2002/07 最后更新： 02/22/2006 14:42:55版权声明：可以任意转载，转载时请务必以超链接形式标明文章原始出处和作者信息及本声明http://www.chedong.co...&nbsp;&nbsp;<a href='http://www.blogjava.net/Jkallen/archive/2006/04/07/39896.html'>阅读全文</a><img src ="http://www.blogjava.net/Jkallen/aggbug/39896.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Jkallen/" target="_blank">Jkallen</a> 2006-04-07 18:29 <a href="http://www.blogjava.net/Jkallen/archive/2006/04/07/39896.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts自定义标签库-----列表显示</title><link>http://www.blogjava.net/Jkallen/archive/2006/04/06/39655.html</link><dc:creator>Jkallen</dc:creator><author>Jkallen</author><pubDate>Thu, 06 Apr 2006 10:55:00 GMT</pubDate><guid>http://www.blogjava.net/Jkallen/archive/2006/04/06/39655.html</guid><wfw:comment>http://www.blogjava.net/Jkallen/comments/39655.html</wfw:comment><comments>http://www.blogjava.net/Jkallen/archive/2006/04/06/39655.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/Jkallen/comments/commentRss/39655.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Jkallen/services/trackbacks/39655.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在Struts应用中，到JSP页面上显示下拉列表框应该是常有的事。　　在基于是Struts的MVC框架中显示下拉框，有好些方法，用自定义标签库就是其中之一。　　若我们的此下拉框是放在基于HtmlForm中的。Struts可以通过ActionForm来保存其历史记录（不排除我们人为地给此ActionForm清理一下）。然而此自定义标签库却没有此功能！因为它没有通过过ActionForm中的字段来保存...&nbsp;&nbsp;<a href='http://www.blogjava.net/Jkallen/archive/2006/04/06/39655.html'>阅读全文</a><img src ="http://www.blogjava.net/Jkallen/aggbug/39655.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Jkallen/" target="_blank">Jkallen</a> 2006-04-06 18:55 <a href="http://www.blogjava.net/Jkallen/archive/2006/04/06/39655.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>文件夹，压缩包操作</title><link>http://www.blogjava.net/Jkallen/archive/2006/03/30/38298.html</link><dc:creator>Jkallen</dc:creator><author>Jkallen</author><pubDate>Thu, 30 Mar 2006 09:46:00 GMT</pubDate><guid>http://www.blogjava.net/Jkallen/archive/2006/03/30/38298.html</guid><wfw:comment>http://www.blogjava.net/Jkallen/comments/38298.html</wfw:comment><comments>http://www.blogjava.net/Jkallen/archive/2006/03/30/38298.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/Jkallen/comments/commentRss/38298.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Jkallen/services/trackbacks/38298.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 经常对一些文件,文件夹操作,自己写一个不是难事.但有个可以捡的应该也不是坏事.将destFileName解压到mExtractToDir  目录：												public				 				void				 extract(destFileName,mExtractToDir )  																								{   S...&nbsp;&nbsp;<a href='http://www.blogjava.net/Jkallen/archive/2006/03/30/38298.html'>阅读全文</a><img src ="http://www.blogjava.net/Jkallen/aggbug/38298.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Jkallen/" target="_blank">Jkallen</a> 2006-03-30 17:46 <a href="http://www.blogjava.net/Jkallen/archive/2006/03/30/38298.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个相当好的自定义标签---分页(二) </title><link>http://www.blogjava.net/Jkallen/archive/2006/03/17/35890.html</link><dc:creator>Jkallen</dc:creator><author>Jkallen</author><pubDate>Fri, 17 Mar 2006 15:44:00 GMT</pubDate><guid>http://www.blogjava.net/Jkallen/archive/2006/03/17/35890.html</guid><wfw:comment>http://www.blogjava.net/Jkallen/comments/35890.html</wfw:comment><comments>http://www.blogjava.net/Jkallen/archive/2006/03/17/35890.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/Jkallen/comments/commentRss/35890.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Jkallen/services/trackbacks/35890.html</trackback:ping><description><![CDATA[
		<p>
				<font color="#006400">在<a href="/Jkallen/archive/2006/03/13/35110.html">上一个介绍</a>里面主要讲到了分页标签的配置，逻辑处理，引用。<br />我们在action中：</font>
		</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">JSP中引用此attribute分页处理</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />request.setAttribute(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">page</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">,page);</span>
		</div>
		<br />
		<font color="#006400">然后在JSP中引用此page。<br />这次主要看如何能过对DB操作实现此page。<br /><br />处理逻辑：<br />1：根据SQL语句，当前页面，页面大小等参数，得到一系统data。<br />2：根据得到的data，再加上当前页面，页面大小可以实例化一个page类实体。<br />3：将此实体转换成便于到前台显示的DTO。<br /><br />具体如下：<br /><br /><strong>首先，我们根据查询语句从DB中得到一系列相关数据<br /></strong></font>
		<br />
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">......<br /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">Query query </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> getSession().createQuery(sql);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            setParams(query, paramNames, params);<br /><img id="Codehighlighter1_108_241_Open_Image" onclick="this.style.display='none'; Codehighlighter1_108_241_Open_Text.style.display='none'; Codehighlighter1_108_241_Closed_Image.style.display='inline'; Codehighlighter1_108_241_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_108_241_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_108_241_Closed_Text.style.display='none'; Codehighlighter1_108_241_Open_Image.style.display='inline'; Codehighlighter1_108_241_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (pageSize </span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">) </span><span id="Codehighlighter1_108_241_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_108_241_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                query.setFirstResult(PageManager.getStartIndex(pageNumber,<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                        totalCount, pageSize));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                query.setMaxResults(pageSize);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />            }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            List data </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> doQuery(query);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            <br /><img id="Codehighlighter1_317_373_Open_Image" onclick="this.style.display='none'; Codehighlighter1_317_373_Open_Text.style.display='none'; Codehighlighter1_317_373_Closed_Image.style.display='inline'; Codehighlighter1_317_373_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_317_373_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_317_373_Closed_Text.style.display='none'; Codehighlighter1_317_373_Open_Image.style.display='inline'; Codehighlighter1_317_373_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (pageSize </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">) </span><span id="Codehighlighter1_317_373_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_317_373_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                totalCount </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> data.size();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />            }<br /><br />......</span></span></div>
		<br />
		<font color="#006400">可以看到其中除了createQuery，setFirstResult，setMaxResults外其实都是用户自定义的一些函数。<br />其它函数，顾名思义应该知道它想实现一个什么功能，象doQuery(query)就是得到一个结果集也许是得到一个按列表方式抽取结果集 query.list(),or 按迭代方式抽取结果集query.iterate().函数getStartIndex（args[]）返回数据第一条记录的起点位置。其它的也都差不多！<br /><br /><strong>其次得到一个page的实体类（entity）,或者说得到其DAO对象。</strong><br />其实得到一个DTO的page对象比较简单。前面列出了page，而上面已经从DB中得到了一系列数据（data),再加上页面的相关信息就可以实例化一个page实体了：<br /></font>
		<br />
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/dot.gif" />.<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">public</span>
				<span style="COLOR: #000000"> DefaultPage(</span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000"> pageSize, </span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000"> pagesCount, </span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000"> pageNumber, Collection data,<br /><img id="Codehighlighter1_124_280_Open_Image" onclick="this.style.display='none'; Codehighlighter1_124_280_Open_Text.style.display='none'; Codehighlighter1_124_280_Closed_Image.style.display='inline'; Codehighlighter1_124_280_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_124_280_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_124_280_Closed_Text.style.display='none'; Codehighlighter1_124_280_Open_Image.style.display='inline'; Codehighlighter1_124_280_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />                     </span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000"> totalSize) </span>
				<span id="Codehighlighter1_124_280_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_124_280_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">this</span>
						<span style="