﻿<?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-随笔分类-其它开源</title><link>http://www2.blogjava.net/Jkallen/category/7357.html</link><description>开卷有益</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 12:37:03 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 12:37:03 GMT</pubDate><ttl>60</ttl><item><title>在HQL中绕过中文乱码查询</title><link>http://www.blogjava.net/Jkallen/archive/2006/10/13/74946.html</link><dc:creator>Jkallen</dc:creator><author>Jkallen</author><pubDate>Fri, 13 Oct 2006 03:44:00 GMT</pubDate><guid>http://www.blogjava.net/Jkallen/archive/2006/10/13/74946.html</guid><wfw:comment>http://www.blogjava.net/Jkallen/comments/74946.html</wfw:comment><comments>http://www.blogjava.net/Jkallen/archive/2006/10/13/74946.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Jkallen/comments/commentRss/74946.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Jkallen/services/trackbacks/74946.html</trackback:ping><description><![CDATA[
		<p>　　以下是我在hibernate查询(通过Spring)中碰到的一个小问题及其解决方法，简单但实用，希望也有益于各同友。　<br /><br />　　在用hibernate查询中假如用到一个带中文的参数，如：</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 hql </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">from Customer user where 1=1 and userr.mc like '%惠止南国%'</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Session session </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> getHibernateTemplate().getSessionFactory().openSession();</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">Spring</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">Transaction tx </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> session.beginTransaction();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Query qry </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> session.createQuery(sql);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />List returnList </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> qry.list();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />tx.commit();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />session.close();</span>
		</div>
		<p>
				<br />　　在执行过程中在eclpise的console台中可以看到hibernate经过底层将其译成SQL后成了:<br /><br />　　select ... from Customer user  where 1=1 and userr.hh like '%??????%'<br /><br />　　的样子。我试过将其以不同的方式编码，可是都没有将其最终以正确的结果返回。暂且不谈此方法应该如何写，我主要是想说通过用另外一种查询方法:在HQL中绑定参数预编译机制来解决这个乱码问题。<br /><br />　　参数绑定机制有如下优点：<br />　　a　安全感，防止恶意用户非法调用DB的存储过程<br />　　b　利用底层数据库编译SQL的功能，提高数据库查询性能。预编译是指底层数据库系统只能编译SQL语句一次，把编译出来的可执行代码保存在缓存中，如果有多次执行相同的SQL语句，不需要重新编译，只要从缓存中读取即可。<br /><br />　　将上面的执行过程改成如下：<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">List params </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000"> ArrayList();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />String hql </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">from Customer user where 1=1 and userr.mc like ?</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />params.add(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">'%</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">+</span>
				<span style="COLOR: #000000"> form.get(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">zdmlmc</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">).toString() </span>
				<span style="COLOR: #000000">+</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">%'</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Object[] objs </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> params.toArray();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Session session </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> getHibernateTemplate().getSessionFactory().openSession();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Transaction tx </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> session.beginTransaction();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Query qry </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> session.createQuery(sql);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">if</span>
				<span style="COLOR: #000000"> (objs </span>
				<span style="COLOR: #000000">==</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">null</span>
				<span style="COLOR: #000000">) </span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000"> 判断是否确认参数名称</span>
				<span style="COLOR: #008000">
						<br />
						<img id="Codehighlighter1_378_473_Open_Image" onclick="this.style.display='none'; Codehighlighter1_378_473_Open_Text.style.display='none'; Codehighlighter1_378_473_Closed_Image.style.display='inline'; Codehighlighter1_378_473_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_378_473_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_378_473_Closed_Text.style.display='none'; Codehighlighter1_378_473_Open_Image.style.display='inline'; Codehighlighter1_378_473_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				</span>
				<span id="Codehighlighter1_378_473_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_378_473_Open_Text">
						<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">(objs.length</span>
						<span style="COLOR: #000000">&gt;</span>
						<span style="COLOR: #000000">0</span>
						<span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  </span>
						<span style="COLOR: #0000ff">for</span>
						<span style="COLOR: #000000"> (</span>
						<span style="COLOR: #0000ff">int</span>
						<span style="COLOR: #000000"> i </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">0</span>
						<span style="COLOR: #000000">; i </span>
						<span style="COLOR: #000000">&lt;</span>
						<span style="COLOR: #000000"> objs.length; i</span>
						<span style="COLOR: #000000">++</span>
						<span style="COLOR: #000000">) <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />   qry.setParameter(i, objs[i]);<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 returnList </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> qry.list();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />tx.commit();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />session.close();</span>
		</div>
		<p>
				<br />　　这样就可以看到在console中最后所执行的SQL:<br /><br />　　select ... from Customer user  where 1=1 and userr.mc like '%惠止南国%'</p>
		<p>　　在上面中有这样的语句：<br /><br />　　qry.setParameter(i, objs[i]);<br /><br />　　这是属于按参数位置绑定中的绑定任意的参数类型。<br /><br />　　<font color="#000080"><strong>org.hibernate.Query的参数绑定形式可以分为<br /><br /></strong>　　1　按参数位置绑定<br /><br />　　2　按参数位置绑定<br /></font><font style="BACKGROUND-COLOR: #000080"><br /></font>　　<font color="#000080"><strong>Query绑定参数类型可以分为：<br /></strong></font><br />　　<font color="#000080">1　参数与持久化类实体绑定<br /></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">Customer cus </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000"> Customer();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />　　</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">省略其它初始化<img src="http://www.blogjava.net/images/dot.gif" /><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">　　query.setEntity(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">pa_name</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">,customer);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />　　</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000"> or <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">　　query.setEntity(index_location,customer);</span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">index_location是其在HQL中的下标位置，从0开始</span>
		</div>
		<p>
				<br />　<font color="#000080">　2　绑定任意类型参数<br /></font><br />　　上面中的qry.setParameter(...)就是这种类型,我们qry.setParameter(i, objs[i]);中是省略了第三个参数即Hibernate映射类型,如：<br /><br />　　qry.setParameter(i, objs[i],Hibernate.STRING);<br /><br />　　对于有些参数，Hibernate能根据参数值的java类型推断出对应的映射类型，此时不再要在setParameter()中显式指定映射类型。如上<br /><br />　　<font color="#000080">3　将命名参数与一个对象属性绑定<br /></font><br />　　setProperties()方法<br /><br />　　个人觉得这个跟ORM技术的ibatis中的SQLMAP有些许相似。它是用setProperties()方法。如：</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 hql </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">from Customer user where 1=1 and userr.mc like :sna</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Customer cus </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000"> Customer();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />cus.setMc(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">惠止南国</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Session session </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> getHibernateTemplate().getSessionFactory().openSession();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Transaction tx </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> session.beginTransaction();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />List returnList </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> session.createQuery(sql).setProperties(cus).list();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />tx.commit();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />session.close();</span>
		</div>
		<p>
				<font color="#ff0000">Attention：对于日期型数据不能用setProperties()方法通过实体来绑定。</font>
		</p>
		<p>
				<br /> </p>
<img src ="http://www.blogjava.net/Jkallen/aggbug/74946.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-10-13 11:44 <a href="http://www.blogjava.net/Jkallen/archive/2006/10/13/74946.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CVSNT配置及其与eclipse集成开发项目管理</title><link>http://www.blogjava.net/Jkallen/archive/2006/09/17/70127.html</link><dc:creator>Jkallen</dc:creator><author>Jkallen</author><pubDate>Sun, 17 Sep 2006 05:00:00 GMT</pubDate><guid>http://www.blogjava.net/Jkallen/archive/2006/09/17/70127.html</guid><wfw:comment>http://www.blogjava.net/Jkallen/comments/70127.html</wfw:comment><comments>http://www.blogjava.net/Jkallen/archive/2006/09/17/70127.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Jkallen/comments/commentRss/70127.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Jkallen/services/trackbacks/70127.html</trackback:ping><description><![CDATA[
		<p>　　CVSNT是服务器管理工具,再在客户端下个WINCVS就可以(关于wincvs使用,可以在网上找下，因为eclipse已经很好地集成了cvs)就可以一起协同工作了。这二天我从下载CVSNT到用eclipse新建项目，共享项目，不同的客户端导入项目都在公司局域网内的不同机子上测试通过。记录如下：<br /><br />　　首先从<a href="http://www.cvsnt.org/">http://www.cvsnt.org</a>处下得你想要的cvsnt版本，我下的是2.5.03，安装完成后。从程序中打开cvsnt control panel（CVSNT 控制面板）。下面开始配置CVSNT，主要是创建资源并让它可以通过客户端的IDE （eclipse）来访问。</p>
		<p>　　<strong>开始配置cvsnt</strong>：<br /></p>
		<p>　　<font color="#008000">a　查看运行状态：<br /></font>　　在about面板有个cvsnt  和 cvsnt lock二个选项，这儿可以对其进行start,stop服务</p>
		<p>　　<font color="#008000">b　添加资源<br /></font>　　在repository config面板中可以添加删除资源，这儿主要设定了repository 的name and  root值。如我在这儿将name设置为\mycvs，root为e:\mycvs。创建后会在对应的目录下生成cvsroot文件夹及cvs相关配置文件。 OK,确定。这个地方可以要重启服务才能生效</p>
		<p>　　<font color="#008000">c　兼容：<br /></font>　　在conpatibility option 面板上选择兼容的版本，<font color="#ff1493">注意一定要勾上respond as cvs 1.11.2 to version request</font>，为了与eclipse中的cvs兼容(在eclipse中的cvs版本很可能与你cvsnt版本不同)。<br /><br />　　好了，现在服务器上的资源路径已经设定好了。<br /><br /><br />　　<strong>通过IDE共享一个工程</strong>　　<br /><br /><br />　　打开eclipse新建一个项目，然后在项目上右击/team/share project （小组/共享项目），在弹出的share  project whith cvs reposity对话框中选择一个cvs路径(第一次当然是新建了)，在host中填入CVSNT的主机地址如：192.168.12.17，在repository path中填入cvsnt中的name值如：/mycvs。user中写cvsnt所分配的用户名，password中写入密码(下面将会讲些cvs中如何管理用户)。在connection type中一般选择pserver连接类型。然后就是记住密码什么的...  :-)。OK ,NEXT提示一路完成！<br /><br />    <br />　　<strong>在客户端从cvs上导入共享工程：<br /></strong><br /><br />　　在客户端的eclipse中打开cvs视图，根据CVSNT的路径及其给你所分配的用户相关信息新建一个CVS的资源路径。ok,开始引入共享工程了：<br /><br />　　可以直接从cvs中check out出来，也可以从new/project/cvs/projects from cvs。选中你刚刚把建立cvsnt资源路径,你可以在use an existing module中看到所有的共享项目了。然后选择一个你想导入的项目check out出来到本机....</p>
		<p>　　全部完成^_^，本来想剪几个图上来的，有些麻烦，太不方便了。不过过程比较简单，很快就可以搞定。客户端将cvsnt上的工程检出是比较简单的。主要是在cvsnt上的相关配置。我在网上找了些资料，完成了如添加不同的用户。介绍有个cvsnt的GUI工具可以直接图形化操作。看介绍很easy ,下载URL:<a href="http://www.kdeopen.com">http://www.kdeopen.com</a>(偶一直打不开，郁闷，希望各位运气比我好) 。我只好在控制台下添加删除用户了。<br /></p>
		<p>　　<strong>cvsnt用户管理<br /><br /></strong>　　在用户管理中以下是cvs的一些命令参数<br />　　Usage: cvs passwd [-a] [-x] [-X] [-r real_user] [-R] [-D domain] [username]<br />      　  -a      Add user<br />       　 -x      Disable user<br />      　  -X      Delete user<br />      　  -r      Alias username to real system user<br />      　  -R      Remove alias to real system user<br />      　  -D      Use domain password<br /></p>
		<p>　　服务器工作在CVSNT用户单一验证方式下的时候，文件passwd定义了CVSNT的用户信息，这里面保存着用户名，用户密码，以及别名信息。默认状态下 没有该文件，但是我们可以在CVSNT还工作在混合验证方式下时，用系统管理员登录，通过添加用户命令来让CVSNT自动建立一个passwd文件。<br /><br />　<font color="#008000">　登录：login <br /></font>　　cvs -d :pserver:administrator@127.0.0.1:/mycvs login<br /><br />　<font color="#008000">　添加用户<br /></font>　　cvs -d :pserver:administrator@127.0.0.1:/mycvs passwd -a zyx<br />　　<br />　　之后系统提示输入密码，输入后服务器会新建一个passwd文件。该文件的内容很简单，形式如下：<br />　　<br />　　zyx:YT2p2NmdmUlEg:</p>
		<p>　　以第一行为例：zyx为用户名，YT2p2NmdmUlEg为CVS使用UNIX标准加密函数对密码进行加密后的结果。<br /></p>
		<p>　　若想以混合验证的方式验证得对应一个window的系统用户名(zyinxin)，这时就用参数-r来指定,如：<br />      cvs -d :pserver:administrator@127.0.0.1:/mycvs passwd -r zyinxin -a zyx　<br /><br />　　这时生成文件内容如下：<br />　　zyx:YT2p2NmdmUlEg:zyinxin <br />　　zyinxin为该用户的别名(它是参考系统用户)，<br /><br />　　注意：这个文件是不能在客户端进行修改的，不能checkout出来。</p>
		<p>　　添加完成后你可以通过login来测试用户zyx是否创建成功</p>
		<p>　<font color="#008000"><em>　</em>删除用户:<br /></font>　　cvs -d :pserver:administrator@127.0.0.1:/mycvs passwd -x zyx<br /><br /><br /><br /><br />　　<em>附：参考了网上一些资料，刚刚学习，愿一起进步。谢谢！</em></p>
<img src ="http://www.blogjava.net/Jkallen/aggbug/70127.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-09-17 13:00 <a href="http://www.blogjava.net/Jkallen/archive/2006/09/17/70127.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>prototype.js之ajax.request学习笔记(一)</title><link>http://www.blogjava.net/Jkallen/archive/2006/07/21/59445.html</link><dc:creator>Jkallen</dc:creator><author>Jkallen</author><pubDate>Fri, 21 Jul 2006 08:47:00 GMT</pubDate><guid>http://www.blogjava.net/Jkallen/archive/2006/07/21/59445.html</guid><wfw:comment>http://www.blogjava.net/Jkallen/comments/59445.html</wfw:comment><comments>http://www.blogjava.net/Jkallen/archive/2006/07/21/59445.html#Feedback</comments><slash:comments>17</slash:comments><wfw:commentRss>http://www.blogjava.net/Jkallen/comments/commentRss/59445.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Jkallen/services/trackbacks/59445.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 这二天用prototype.js中的ajax.request做了些东西,闲时看了下源码,体会如下：		　　在用AJAX部分前，有如下一些函数得了解一下：　　Class变量														var				 Class 				=				 																								{  create: 						function...&nbsp;&nbsp;<a href='http://www.blogjava.net/Jkallen/archive/2006/07/21/59445.html'>阅读全文</a><img src ="http://www.blogjava.net/Jkallen/aggbug/59445.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-07-21 16:47 <a href="http://www.blogjava.net/Jkallen/archive/2006/07/21/59445.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>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>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/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="COLOR: #000000">.pageSize </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> pageSize;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">this</span>
						<span style="COLOR: #000000">.pagesCount </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> pagesCount;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">this</span>
						<span style="COLOR: #000000">.pageNumber </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> pageNumber;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">this</span>
						<span style="COLOR: #000000">.totalSize </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> totalSize;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">this</span>
						<span style="COLOR: #000000">.data </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> data;<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" />
						<img src="http://www.blogjava.net/images/dot.gif" />.</span>
		</div>
		<br />
		<font color="#006400">当然在此前，对面页数据得处理一下，象pageNumber可能如下：</font>
		<br />
		<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 id="Codehighlighter1_0_93_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_93_Open_Text.style.display='none'; Codehighlighter1_0_93_Closed_Image.style.display='inline'; Codehighlighter1_0_93_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
				<img id="Codehighlighter1_0_93_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_0_93_Closed_Text.style.display='none'; Codehighlighter1_0_93_Open_Image.style.display='inline'; Codehighlighter1_0_93_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				<span id="Codehighlighter1_0_93_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_93_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">@param</span>
						<span style="COLOR: #008000"> pageNumber<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * </span>
						<span style="COLOR: #808080">@param</span>
						<span style="COLOR: #008000"> pageSize<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * </span>
						<span style="COLOR: #808080">@param</span>
						<span style="COLOR: #008000"> totalCount<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * Return PageNumber<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_178_377_Open_Image" onclick="this.style.display='none'; Codehighlighter1_178_377_Open_Text.style.display='none'; Codehighlighter1_178_377_Closed_Image.style.display='inline'; Codehighlighter1_178_377_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_178_377_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_178_377_Closed_Text.style.display='none'; Codehighlighter1_178_377_Open_Image.style.display='inline'; Codehighlighter1_178_377_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">protected</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">static</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000"> calcPageNumber(</span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000"> pageNumber, </span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000"> pageSize, </span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000"> totalCount) </span>
				<span id="Codehighlighter1_178_377_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_377_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
						<span style="COLOR: #0000ff">int</span>
						<span style="COLOR: #000000"> maxPageNumber </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> calcMaxPageNumber(pageSize, totalCount);<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" />        pageNumber </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> pageNumber</span>
						<span style="COLOR: #000000">&gt;</span>
						<span style="COLOR: #000000">maxPageNumber</span>
						<span style="COLOR: #000000">?</span>
						<span style="COLOR: #000000">maxPageNumber:pageNumber;<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">if</span>
						<span style="COLOR: #000000">(pageNumber</span>
						<span style="COLOR: #000000">&lt;=</span>
						<span style="COLOR: #000000">0</span>
						<span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            pageNumber</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">1</span>
						<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">return</span>
						<span style="COLOR: #000000"> pageNumber;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />    }</span>
				</span>
		</div>
		<br />
		<font color="#006400">easy吧！<br /><br /><strong>最后将此实体转换成适合前台显示的DTO对象。<br /></strong>这个侧是依据不同的需求去做相应的转换了，一般来说从DB取出来的实体（DAO）直接与DB中的数据对应。而在DTO中我们可以提供许多更加符合实际的字段与方法，使得我们的JSP页面显示更加得心应手！同时也避免了直与DB交互。它们之间的关系，</font>
		<a href="/Jkallen/archive/2006/03/09/34445.aspx">我乱七八糟写过些东西（<font color="#006400">欢迎指正！</font>）<a><font color="#006400"></font></a>。<br /><br /><font color="#006400">“一般人的标签我不看，高手写的东西真的值得借鉴，学习！”</font></a>
<img src ="http://www.blogjava.net/Jkallen/aggbug/35890.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-17 23:44 <a href="http://www.blogjava.net/Jkallen/archive/2006/03/17/35890.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个相当好的自定义标签---分页(一)</title><link>http://www.blogjava.net/Jkallen/archive/2006/03/13/35110.html</link><dc:creator>Jkallen</dc:creator><author>Jkallen</author><pubDate>Mon, 13 Mar 2006 10:50:00 GMT</pubDate><guid>http://www.blogjava.net/Jkallen/archive/2006/03/13/35110.html</guid><wfw:comment>http://www.blogjava.net/Jkallen/comments/35110.html</wfw:comment><comments>http://www.blogjava.net/Jkallen/archive/2006/03/13/35110.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/Jkallen/comments/commentRss/35110.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Jkallen/services/trackbacks/35110.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 发现在系统中有好多写得很好的代码,也不知道是哪位前辈留下来的.整理一下...自定义分页标签库1:在配置文件中配置&lt;!-- self Tag Library Descriptors --&gt;  &lt;taglib&gt;    &lt;taglib-uri&gt;/WEB-INF/self-html.tld&lt;/taglib-uri&gt;    &lt;taglib-locatio...&nbsp;&nbsp;<a href='http://www.blogjava.net/Jkallen/archive/2006/03/13/35110.html'>阅读全文</a><img src ="http://www.blogjava.net/Jkallen/aggbug/35110.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-13 18:50 <a href="http://www.blogjava.net/Jkallen/archive/2006/03/13/35110.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>对DTO,DAO操作的一些肤浅理解</title><link>http://www.blogjava.net/Jkallen/archive/2006/03/09/34445.html</link><dc:creator>Jkallen</dc:creator><author>Jkallen</author><pubDate>Thu, 09 Mar 2006 03:51:00 GMT</pubDate><guid>http://www.blogjava.net/Jkallen/archive/2006/03/09/34445.html</guid><wfw:comment>http://www.blogjava.net/Jkallen/comments/34445.html</wfw:comment><comments>http://www.blogjava.net/Jkallen/archive/2006/03/09/34445.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Jkallen/comments/commentRss/34445.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Jkallen/services/trackbacks/34445.html</trackback:ping><description><![CDATA[
		<p>
				<font color="#000080">进新公司快二个星期了,边看边做现在的项目.一头雾水的时候多亏有同事(BOSS)的帮忙.下面是我对系统中DTO,DAO的操作的一些肤浅理解(不知各位在四层化结构的处理中也是如此,也应该一般化吧),恳请各位提出指正.谢谢!<br /><br />业务逻辑处理放在service中,与DB的映射放到对应的entity实体类中,前台DB显示放到DTO中,对DB的操作放到DAO中.在此中可能要用彼此之间的相关转换,比如在DAO中通过相关操作DB中取得的实体可能要转成对应的DTO以便在前台显示.<br /><br />以前台到DB中取一组相关数据getNewsList(String args[])为例(Struts+Hibernate+Spring):<br /><br />1 :  前台触发一请求(getNewsList)事件,通过相关配置映射将其转发到对应的Action中(Struts).<br /><br />2 :  在此Action中找到与此功能模块对应的相关Service类,在service类中应有实现此功能的方(  当然也可能就是getNewsList(String args[])  ).</font>
				<font color="#000080">
						<u>每个模块功能都可能有对应着不同的service.这时每个模块的service可放到各自的XML配置文件中,在得到我们所需service时可能用到如org.springframework.aop.framework.ProxyFactoryBean(Spring)之类的方法.(these contents update on 2006/04/07)<br /></u>
						<br />3 :  service中的此方法调用DAO中对应能实现此功能的方法来直接对DB进行操作,可能在名类似于HibernateNewsDAO(Hibernate)的实例中.通过(Hibernate)对DB的相关持久化操作也就从DB中得到了我们想要的结果(entity).<br /><br />4 :  将结果转换成DTO以便在前台显示,</font>
				<font color="#000080">
						<u>我想这样做的目的应该是为了避免报表查询数据占用缓存,就将查询结果实例化(将从DB中查询出来的数据包装到JAVA对象中)..(these contents update on 2006/04/07)<br /><br /></u>
						<br />5 :  在service中将取回的结果(以DTO形式表现),经过一系统逻辑处理(也可以放到Action中处理),再将此结果返回到显示页面.<br /><br /><br />希望能够得到诸位的指点... ... </font>
		</p>
<img src ="http://www.blogjava.net/Jkallen/aggbug/34445.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-09 11:51 <a href="http://www.blogjava.net/Jkallen/archive/2006/03/09/34445.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>记录学习资源网站</title><link>http://www.blogjava.net/Jkallen/archive/2006/02/11/30249.html</link><dc:creator>Jkallen</dc:creator><author>Jkallen</author><pubDate>Sat, 11 Feb 2006 02:20:00 GMT</pubDate><guid>http://www.blogjava.net/Jkallen/archive/2006/02/11/30249.html</guid><wfw:comment>http://www.blogjava.net/Jkallen/comments/30249.html</wfw:comment><comments>http://www.blogjava.net/Jkallen/archive/2006/02/11/30249.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Jkallen/comments/commentRss/30249.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Jkallen/services/trackbacks/30249.html</trackback:ping><description><![CDATA[
		<strong>1    </strong>
		<a class="f20">
				<strong>Spring <br /><br /></strong>
		</a>1.1<a class="f20">Spring </a><a class="f20">Live中文文档</a><p><a href="http://searchwebservices.techtarget.com.cn/wpsum/29/2217529.shtml?504">http://searchwebservices.techtarget.com.cn/wpsum/29/2217529.shtml?504</a></p><p>1.2 <a class="f20">Spring实战</a></p><p><a href="http://searchwebservices.techtarget.com.cn/wpsum/75/2215575.shtml?2994">http://searchwebservices.techtarget.com.cn/wpsum/75/2215575.shtml?2994</a></p><p>1.3  Spring - Java/J2EE Application Framework</p><p>Spring Framework 开发参考手册（中文版）</p><p><a href="http://www.jactiongroup.net/reference/html/index.html">http://www.jactiongroup.net/reference/html/index.html</a></p><p>1.4  <font size="2">Introducing to Spring Framework（中文修订版）</font></p><p><a href="http://spring.jactiongroup.net/viewtopic.php?t=453">http://spring.jactiongroup.net/viewtopic.php?t=453</a></p><p>1.5 <span style="FONT-WEIGHT: bold">Spring Framework 介绍 （ppt培训文档）</span></p><p><span style="FONT-WEIGHT: bold"><a href="http://www.jactiongroup.net/doc/Introduction2open-sourceSpringframework4J2EE.ppt" target="_blank"><font color="#006699">http://www.jactiongroup.net/doc/Introduction2open-sourceSpringframework4J2EE.ppt</font></a></span></p><p><span style="FONT-WEIGHT: bold"><a href="http://www.jactiongroup.net/doc/IntroductionToSpring.ppt" target="_blank"><font color="#006699">http://www.jactiongroup.net/doc/IntroductionToSpring.ppt</font></a></span></p><p><span style="FONT-WEIGHT: bold">1.6  Spring 中文社区</span></p><p><span style="FONT-WEIGHT: bold"><a href="http://spring.jactiongroup.net/">http://spring.jactiongroup.net</a></span></p><p><span style="FONT-WEIGHT: bold">1.7  中国IT实验室 Spring 框架完全进阶专题</span></p><p><span style="FONT-WEIGHT: bold"><a href="http://www.chinaitlab.com/www/techspecial/spring/">http://www.chinaitlab.com/www/techspecial/spring/</a></span></p><p><span style="FONT-WEIGHT: bold"></span></p><p><br />1.8 本人再加一个啦:)~~<br /><a href="http://www.springframework.org">http://www.springframework.org</a><br /><br /><strong>2  Appfuse:</strong><br /><a href="http://raibledesigns.com/wiki/Wiki.jsp?page=AppFuse">http://raibledesigns.com/wiki/Wiki.jsp?page=AppFuse</a><br /><br /><strong>3  DOJO</strong><br /><a href="http://dojotoolkit.org/">http://dojotoolkit.org/</a></p><img src ="http://www.blogjava.net/Jkallen/aggbug/30249.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-02-11 10:20 <a href="http://www.blogjava.net/Jkallen/archive/2006/02/11/30249.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>