<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[java学习 - Java实例源码]]></title>
<link>http://www.java125.cn/</link>
<description><![CDATA[java教程|java源码|java游戏|jsp|数据库|hibernate|struts框架]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog2 v2.4]]></copyright>
<webMaster><![CDATA[zhangjunjie0915@gmail.com(Peter.Z)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>java学习</title> 
	<url>http://www.java125.cn/images/logos.gif</url> 
	<link>http://www.java125.cn/</link> 
	<description>java学习</description> 
</image>

			<item>
			<link>http://www.java125.cn/default.asp?id=2685</link>
			<title><![CDATA[Extjs Tree + JSON + Struts2-java学习]]></title>
			<author>zhangjunjie0915@gmail.com(java学习)</author>
			<category><![CDATA[Java实例源码]]></category>
			<pubDate>Wed,20 Feb 2008 11:30:02 +0800</pubDate>
			<guid>http://www.java125.cn/default.asp?id=2685</guid>	
		<description><![CDATA[<span style="font-size:10pt">最近尝试用extjs来展示树状菜单。着实花了一番功夫。树状菜单的菜单项需要动态加载，而目前版本的extjs中只支持JSON格式的数据。查了一些资料，决定使用struts2的json-plugin。首先按照例子做了一个，但是结果就是不成功，界面上只出来了一个js中生成的root节点，不能加载从后台生成的数据。研究后发现是数据格式有问题。使用json-plugin生成的数据格式如下：<br/>{&#34;cls&#34;:&#34;folder&#34;,&#34;id&#34;:10,&#34;leaf&#34;:false,&#34;children&#34;:[{&#34;cls&#34;:&#34;file&#34;,&#34;id&#34;:11,&#34;leaf&#34;:true,&#34;children&#34;:null,&#34;text&#34;:&#34;S600&#34;},{&#34;cls&#34;:&#34;file&#34;,&#34;id&#34;:12,&#34;leaf&#34;:true,&#34;children&#34;:null,&#34;text&#34;:&#34;SLK200&#34;}],&#34;text&#34;:&#34;Benz&#34;}<br/>而extjs需要的数据格式如下：<br/>[{&#34;cls&#34;:&#34;folder&#34;,&#34;id&#34;:10,&#34;leaf&#34;:false,&#34;children&#34;:[{&#34;cls&#34;:&#34;file&#34;,&#34;id&#34;:11,&#34;leaf&#34;:true,&#34;children&#34;:null,&#34;text&#34;:&#34;S600&#34;},{&#34;cls&#34;:&#34;file&#34;,&#34;id&#34;:12,&#34;leaf&#34;:true,&#34;children&#34;:null,&#34;text&#34;:&#34;SLK200&#34;}],&#34;text&#34;:&#34;Benz&#34;}]<br/>区别很小，就只相差最外面的两个方括号。但是少了这两个方括号，在json中，含义迥然不同，前者表示一个对象，而后者表示一个数组。而extjs中&nbsp;tree的dataloader需要的数据必须是一个数组。而这样的数据格式是json-plugin自动生成的，无法改变。所以，我最后放弃了json&nbsp;-plugin，转而使用json-lib来解决这个问题。<br/>1.&nbsp;下载json-lib,&nbsp;<a href="http://json-lib.sourceforge.net/" target="_blank">http://json-lib.sourceforge.net/</a><br/>2.&nbsp;lib目录下的jar文件清单：<br/>commons-beanutils-1.7.0.jar<br/>commons-collections-3.2.jar<br/>commons-digester-1.6.jar<br/>commons-lang-2.3.jar<br/>commons-logging-1.1.jar<br/>dom4j-1.6.1.jar<br/>ezmorph-1.0.4.jar<br/>freemarker-2.3.8.jar<br/>json-lib-2.2.1-jdk15.jar<br/>log4j-1.2.13.jar<br/>ognl-2.6.11.jar<br/>struts2-core-2.0.11.jar<br/>xml-apis-1.0.b2.jar<br/>xwork-2.0.4.jar<br/><br/><br/>首先配置web.xml<br/>&lt;?xml&nbsp;version=&#34;1.0&#34;&nbsp;encoding=&#34;UTF-8&#34;?&gt;<br/>&lt;web-app&nbsp;version=&#34;2.4&#34;&nbsp;xmlns=&#34;<a href="http://java.sun.com/xml/ns/j2ee" target="_blank">http://java.sun.com/xml/ns/j2ee</a>&#34;<br/>&nbsp;&nbsp;xmlns:xsi=&#34;<a href="http://www.w3.org/2001/XMLSchema-instance" target="_blank">http://www.w3.org/2001/XMLSchema-instance</a>&#34;<br/>&nbsp;&nbsp;xsi:schemaLocation=&#34;<a href="http://java.sun.com/xml/ns/j2ee" target="_blank">http://java.sun.com/xml/ns/j2ee</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://java.sun.com/xml/ns/j2ee" target="_blank">http://java.sun.com/xml/ns/j2ee</a>/web-app_2_4.xsd&#34;&gt;<br/>&nbsp;&nbsp;&lt;welcome-file-list&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;<br/>&nbsp;&nbsp;&lt;/welcome-file-list&gt;<br/>&nbsp;&nbsp;&lt;filter&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;filter-name&gt;struts2&lt;/filter-name&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;filter-class&gt;org.apache.struts2.dispatcher.FilterDispatcher&lt;/filter-class&gt;<br/>&nbsp;&nbsp;&lt;/filter&gt;<br/><br/>&nbsp;&nbsp;&lt;filter-mapping&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;filter-name&gt;struts2&lt;/filter-name&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;url-pattern&gt;/*&lt;/url-pattern&gt;<br/>&nbsp;&nbsp;&lt;/filter-mapping&gt;<br/>&lt;/web-app&gt;<br/><br/>然后是struts.xml<br/>&lt;?xml&nbsp;version=&#34;1.0&#34;&nbsp;encoding=&#34;UTF-8&#34;?&gt;<br/>&lt;!DOCTYPE&nbsp;struts&nbsp;PUBLIC<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#34;-//Apache&nbsp;Software&nbsp;Foundation//DTD&nbsp;Struts&nbsp;Configuration&nbsp;2.0//EN&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#34;<a href="http://struts.apache.org/dtds/struts-2.0.dtd" target="_blank">http://struts.apache.org/dtds/struts-2.0.dtd</a>&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;<br/>&lt;struts&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;constant&nbsp;name=&#34;struts.devMode&#34;&nbsp;value=&#34;true&#34;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;constant&nbsp;name=&#34;struts.i18n.encoding&#34;&nbsp;value=&#34;UTF-8&#34;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;package&nbsp;name=&#34;person&#34;&nbsp;extends=&#34;struts-default&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;action&nbsp;name=&#34;menus&#34;&nbsp;method=&#34;execute&#34;&nbsp;class=&#34;com.lab.MenuAction&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&gt;/menu.jsp&lt;/result&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/action&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/package&gt;<br/>&lt;/struts&gt;<br/><br/>3.&nbsp;树的节点模型（省略了getter，setter)<br/>public&nbsp;class&nbsp;Menu&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;int&nbsp;id;<br/>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;text;<br/>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;boolean&nbsp;leaf;<br/>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;cls;<br/>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;List&lt;Menu&gt;&nbsp;children;<br/>}<br/><br/>4.&nbsp;action<br/>package&nbsp;com.lab;<br/><br/>import&nbsp;java.util.ArrayList;<br/>import&nbsp;java.util.List;<br/><br/>import&nbsp;net.sf.json.JSONArray;<br/><br/>public&nbsp;class&nbsp;MenuAction&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;menuString;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;List&lt;Menu&gt;&nbsp;menus;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;execute()&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menus&nbsp;=&nbsp;new&nbsp;ArrayList&lt;Menu&gt;();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Menu&nbsp;benz&nbsp;=&nbsp;new&nbsp;Menu();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;benz.setText(&#34;Benz&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;benz.setCls(&#34;folder&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;benz.setLeaf(false);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;benz.setId(10);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menus.add(benz);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;Menu&gt;&nbsp;benzList&nbsp;=&nbsp;new&nbsp;ArrayList&lt;Menu&gt;();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;benz.setChildren(benzList);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Menu&nbsp;menu;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu&nbsp;=&nbsp;new&nbsp;Menu();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu.setText(&#34;S600&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu.setCls(&#34;file&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu.setLeaf(true);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu.setId(11);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;benzList.add(menu);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu&nbsp;=&nbsp;new&nbsp;Menu();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu.setText(&#34;SLK200&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu.setCls(&#34;file&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu.setLeaf(true);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu.setId(12);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;benzList.add(menu);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Menu&nbsp;bmw&nbsp;=&nbsp;new&nbsp;Menu();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bmw.setText(&#34;BMW&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bmw.setCls(&#34;folder&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bmw.setLeaf(false);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bmw.setId(20);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menus.add(bmw);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;Menu&gt;&nbsp;bmwList&nbsp;=&nbsp;new&nbsp;ArrayList&lt;Menu&gt;();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bmw.setChildren(bmwList);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu&nbsp;=&nbsp;new&nbsp;Menu();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu.setText(&#34;325i&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu.setCls(&#34;file&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu.setLeaf(true);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu.setId(21);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bmwList.add(menu);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu&nbsp;=&nbsp;new&nbsp;Menu();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu.setText(&#34;X5&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu.setCls(&#34;file&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu.setLeaf(true);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu.setId(22);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bmwList.add(menu);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JSONArray&nbsp;jsonObject&nbsp;=&nbsp;JSONArray.fromObject(menus);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menuString&nbsp;=&nbsp;jsonObject.toString();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menuString&nbsp;=&nbsp;&#34;ss&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;&#34;success&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getMenuString()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;menuString;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setMenuString(String&nbsp;menuString)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.menuString&nbsp;=&nbsp;menuString;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}<br/><br/>5.&nbsp;menu.jsp<br/>&lt;%@&nbsp;taglib&nbsp;prefix=&#34;s&#34;&nbsp;uri=&#34;/struts-tags&#34;&nbsp;%&gt;<br/>&lt;s:property&nbsp;value=&#34;menuString&#34;&nbsp;escape=&#34;false&#34;/&gt;<br/><br/>6.&nbsp;html页面和js<br/>我使用的就是extjs的example中的reorder.html和reorder.js，更改了reorder.js中treeloader的dataurl：&nbsp;menus.action<br/>&lt;html&gt;<br/>&lt;head&gt;<br/>&lt;meta&nbsp;http-equiv=&#34;Content-Type&#34;&nbsp;content=&#34;text/html;&nbsp;charset=iso-8859-1&#34;&gt;<br/>&lt;title&gt;Reorder&nbsp;TreePanel&lt;/title&gt;<br/>&lt;link&nbsp;rel=&#34;stylesheet&#34;&nbsp;type=&#34;text/css&#34;&nbsp;href=&#34;extjs/resources/css/ext-all.css&#34;&nbsp;/&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;GC&nbsp;--&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;LIBS&nbsp;--&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;script&nbsp;type=&#34;text/javascript&#34;&nbsp;src=&#34;extjs/adapter/ext/ext-base.js&#34;&gt;&lt;/script&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;ENDLIBS&nbsp;--&gt;<br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;script&nbsp;type=&#34;text/javascript&#34;&nbsp;src=&#34;extjs/ext-all.js&#34;&gt;&lt;/script&gt;<br/>&lt;script&nbsp;type=&#34;text/javascript&#34;&nbsp;src=&#34;reorder.js&#34;&gt;&lt;/script&gt;<br/><br/>&lt;!--&nbsp;Common&nbsp;Styles&nbsp;for&nbsp;the&nbsp;examples&nbsp;--&gt;<br/>&lt;link&nbsp;rel=&#34;stylesheet&#34;&nbsp;type=&#34;text/css&#34;&nbsp;href=&#34;extjs/resources/css/example.css&#34;&nbsp;/&gt;<br/>&lt;/head&gt;<br/>&lt;body&gt;<br/>&lt;script&nbsp;type=&#34;text/javascript&#34;&nbsp;src=&#34;../examples.js&#34;&gt;&lt;/script&gt;&lt;!--&nbsp;EXAMPLES&nbsp;--&gt;<br/>&lt;h1&gt;Drag&nbsp;and&nbsp;Dro&#112;&nbsp;o&#114;dering&nbsp;in&nbsp;a&nbsp;TreePanel&lt;/h1&gt;<br/>&lt;p&gt;This&nbsp;example&nbsp;shows&nbsp;basic&nbsp;drag&nbsp;and&nbsp;dro&#112;&nbsp;node&nbsp;moving&nbsp;in&nbsp;a&nbsp;tree.&nbsp;In&nbsp;this&nbsp;implementation&nbsp;there&nbsp;are&nbsp;no&nbsp;restrictions&nbsp;and&nbsp;<br/>anything&nbsp;can&nbsp;be&nbsp;dro&#112;ped&nbsp;anywh&#101;re&nbsp;except&nbsp;appending&nbsp;to&nbsp;nodes&nbsp;marked&nbsp;&amp;quot;leaf&amp;quot;&nbsp;(the&nbsp;files).&nbsp;&lt;br&gt;&lt;/p&gt;<br/>&lt;p&gt;Drag&nbsp;along&nbsp;the&nbsp;edge&nbsp;of&nbsp;the&nbsp;tree&nbsp;to&nbsp;trigger&nbsp;auto&nbsp;scrolling&nbsp;while&nbsp;performing&nbsp;a&nbsp;drag&nbsp;and&nbsp;dro&#112;.&lt;/p&gt;<br/>&lt;p&gt;In&nbsp;o&#114;der&nbsp;to&nbsp;demonstrate&nbsp;drag&nbsp;and&nbsp;dro&#112;&nbsp;ins&#101;rtion&nbsp;points,&nbsp;sorting&nbsp;was&nbsp;&lt;b&gt;not&lt;/b&gt;&nbsp;enabled.&lt;/p&gt;<br/>&lt;p&gt;The&nbsp;data&nbsp;for&nbsp;this&nbsp;tree&nbsp;is&nbsp;asynchronously&nbsp;loaded&nbsp;with&nbsp;a&nbsp;JSON&nbsp;TreeLoader.&lt;/p&gt;<br/>&lt;p&gt;The&nbsp;js&nbsp;is&nbsp;not&nbsp;minified&nbsp;so&nbsp;it&nbsp;is&nbsp;readable.&nbsp;See&nbsp;&lt;a&nbsp;href=&#34;reorder.js&#34;&gt;reorder.js&lt;/a&gt;.&lt;/p&gt;<br/><br/>&lt;div&nbsp;id=&#34;tree-div&#34;&nbsp;style=&#34;overflow:auto;&nbsp;height:300px;width:250px;border:1px&nbsp;solid&nbsp;#c3daf9;&#34;&gt;&lt;/div&gt;<br/><br/>&lt;/body&gt;<br/>&lt;/html&gt;<br/><br/><br/><br/>js:<br/>/*<br/>&nbsp;*&nbsp;Ext&nbsp;JS&nbsp;Library&nbsp;2.0.1<br/>&nbsp;*&nbsp;Copyright(c)&nbsp;2006-2008,&nbsp;Ext&nbsp;JS,&nbsp;LLC.<br/>&nbsp;*&nbsp;licensing@extjs.com<br/>&nbsp;*<br/>&nbsp;*&nbsp;<a href="http://extjs.com/license" target="_blank">http://extjs.com/license</a><br/>&nbsp;*/<br/><br/>Ext.onReady(function(){<br/>&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;shorthand<br/>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;Tree&nbsp;=&nbsp;Ext.tree;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;tree&nbsp;=&nbsp;new&nbsp;Tree.TreePanel({<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;el:&#39;tree-div&#39;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;autoScroll:true,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;animate:true,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enableDD:true,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;containerScroll:&nbsp;true,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loader:&nbsp;new&nbsp;Tree.TreeLoader({<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dataUrl:&#39;<a href="http://localhost:8080/lab/menus.action" target="_blank">http://localhost:8080/lab/menus.action</a>&#39;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})<br/>&nbsp;&nbsp;&nbsp;&nbsp;});<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;set&nbsp;the&nbsp;root&nbsp;node<br/>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;root&nbsp;=&nbsp;new&nbsp;Tree.AsyncTreeNode({<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text:&nbsp;&#39;Ext&nbsp;JS&#39;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draggable:false,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id:&#39;source&#39;<br/>&nbsp;&nbsp;&nbsp;&nbsp;});<br/>&nbsp;&nbsp;&nbsp;&nbsp;tree.setRootNode(root);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;render&nbsp;the&nbsp;tree<br/>&nbsp;&nbsp;&nbsp;&nbsp;tree.render();<br/>&nbsp;&nbsp;&nbsp;&nbsp;root.expand();<br/>});</span>]]></description>
		</item>
		
			<item>
			<link>http://www.java125.cn/default.asp?id=2646</link>
			<title><![CDATA[java设计模式-Head First设计模式之Decorator模式]]></title>
			<author>zhangjunjie0915@gmail.com(java源代码)</author>
			<category><![CDATA[Java实例源码]]></category>
			<pubDate>Tue,22 Jan 2008 19:49:16 +0800</pubDate>
			<guid>http://www.java125.cn/default.asp?id=2646</guid>	
		<description><![CDATA[<span style="font-size:10pt">一、要完成的任务<br/><br/>星巴兹（Starbuzz）是以扩张速度最快而闻名的咖啡连锁店。如果你在街角看到它的店，在对面街上肯定还会看到另一家。因为扩张速度实在太快了，他们准备更新订单系统，以合乎他们的饮料供应要求。他们原先的类设计是这样的..<br/><img src="http://www.blogjava.net/images/blogjava_net/sterning/DesignPattern-Decorator-1-mission.gif" border="0" alt=""/><br/>购买咖啡时，也可以要求在其中加入各种调料，例如：蒸奶（Steamed&nbsp;Milk）、豆浆（Soy）、摩卡（Mocha，也就是巧克力风味）或覆盖奶泡。星巴兹会根据所加入的调料收取不同的费用。所以订单系统必须考虑到这些调料部分。<br/><br/>二、Decorator模式<br/><br/>1、一个原则<br/><br/>类应该对扩展开放，对修改关闭<br/><br/>2、定义装饰者模式<br/><br/>装饰者模式动态地将责任附加到对象上。若要扩展功能，装饰者提供了比继承更有弹性的替代方案。<br/><img src="http://www.blogjava.net/images/blogjava_net/sterning/DesignPattern-Decorator-2-define.gif" border="0" alt=""/><br/>3.分析任务<br/><br/><img src="http://www.blogjava.net/images/blogjava_net/sterning/DesignPattern-Decorator-3-analys.gif" border="0" alt=""/><br/><img src="http://www.blogjava.net/images/blogjava_net/sterning/DesignPattern-Decorator-4-analys.gif" border="0" alt=""/><br/><img src="http://www.blogjava.net/images/blogjava_net/sterning/DesignPattern-Decorator-5-analys.gif" border="0" alt=""/><br/><br/>4.设计任务<br/><br/><img src="http://www.blogjava.net/images/blogjava_net/sterning/DesignPattern-Decorator-6-realize.gif" border="0" alt=""/><br/>三、代码实现<br/><br/>&nbsp;<br/><br/>1．定义抽象类<br/><br/>&nbsp;<br/><br/>（1）饮料抽象类Beverage<br/><br/>Beverage.java<br/>&nbsp;<br/>package&nbsp;com.sterning.ch3_decorator;<br/><br/>/**//*<br/>&nbsp;*&nbsp;Beverage是一个抽象类,有两个方法<br/>&nbsp;*/<br/>public&nbsp;abstract&nbsp;class&nbsp;Beverage&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;description=&#34;Unknown&nbsp;Beverage&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**//*<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;getDescription()已经在此实现了,但是cost()必须在子类中实现<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getDescription()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;description;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;abstract&nbsp;double&nbsp;cost();<br/>}<br/><br/>（2）调料抽象类CondimentDecorator<br/><br/>CondimentDecorator.java<br/>package&nbsp;com.sterning.ch3_decorator;<br/><br/>/**//*<br/>&nbsp;*&nbsp;首先,必须让CondimentDecorator能够取代Beverage,所以将CondimentDecorator扩展自Beverage类<br/>&nbsp;*/<br/>public&nbsp;abstract&nbsp;class&nbsp;CondimentDecorator&nbsp;extends&nbsp;Beverage&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;//所有的调料装饰者都必须重新实现getDescription()方法.<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;abstract&nbsp;String&nbsp;getDescription();<br/>}<br/>&nbsp;<br/><br/>2．饮料实现<br/><br/>&nbsp;<br/><br/>（1）Espresso<br/><br/>Espresso.java<br/>package&nbsp;com.sterning.ch3_decorator;<br/><br/>/**//*<br/>&nbsp;*&nbsp;首先,必须让CondimentDecorator能够取代Beverage,所以将CondimentDecorator扩展自Beverage类<br/>&nbsp;*/<br/>public&nbsp;abstract&nbsp;class&nbsp;CondimentDecorator&nbsp;extends&nbsp;Beverage&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;//所有的调料装饰者都必须重新实现getDescription()方法.<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;abstract&nbsp;String&nbsp;getDescription();<br/>}<br/><br/>&nbsp;<br/><br/>（2）HouseBlend<br/><br/>HouseBlend.java<br/>package&nbsp;com.sterning.ch3_decorator.drink;<br/><br/>import&nbsp;com.sterning.ch3_decorator.Beverage;<br/><br/>public&nbsp;class&nbsp;HouseBlend&nbsp;extends&nbsp;Beverage&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;HouseBlend()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description=&#34;House&nbsp;Blend&nbsp;Coffee&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;@Override<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;double&nbsp;cost()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0.89;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>}<br/>&nbsp;<br/><br/>（3）DarkRoast<br/><br/>DarkRoast.java<br/>package&nbsp;com.sterning.ch3_decorator.drink;<br/><br/>import&nbsp;com.sterning.ch3_decorator.Beverage;<br/><br/>public&nbsp;class&nbsp;DarkRoast&nbsp;extends&nbsp;Beverage&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;DarkRoast()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description=&#34;Dark&nbsp;Roast&nbsp;Coffee&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;@Override<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;double&nbsp;cost()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0.99;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}<br/>&nbsp;<br/><br/>（4）Decaf<br/><br/>Decaf.java<br/>package&nbsp;com.sterning.ch3_decorator.drink;<br/><br/>import&nbsp;com.sterning.ch3_decorator.Beverage;<br/><br/>public&nbsp;class&nbsp;Decaf&nbsp;extends&nbsp;Beverage&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Decaf()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description=&#34;Decaf&nbsp;Coffee&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;@Override<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;double&nbsp;cost()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;1.05;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}<br/><br/>&nbsp;<br/><br/>3．调料实现<br/><br/>（1）Mocha<br/><br/>Mocha.java<br/>package&nbsp;com.sterning.ch3_decorator.condiment;<br/><br/>import&nbsp;com.sterning.ch3_decorator.Beverage;<br/>import&nbsp;com.sterning.ch3_decorator.CondimentDecorator;<br/><br/>public&nbsp;class&nbsp;Mocha&nbsp;extends&nbsp;CondimentDecorator&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;/**//*<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;要让Mocha能够引用一个Beverage,做法如下:一是用一个实例变量记录饮料,也就是被装饰者.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;二是想办法让装饰者(饮料)记录到实例变量中,即把饮料当作构造器的参数,再由构造器将此饮料记录在实例变量中<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br/>&nbsp;&nbsp;&nbsp;&nbsp;Beverage&nbsp;beverage;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Mocha(Beverage&nbsp;beverage)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.beverage&nbsp;=&nbsp;beverage;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;@Override<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getDescription()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**//*<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;我们希望叙述不只是描述饮料,而是完整的连调料都描述出来<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;beverage.getDescription()+&#34;,Mocha&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;@Override<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;double&nbsp;cost()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**//*<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;要计算带Mocha饮料的价钱,首先把调用委托给装饰对象,以计算价钱,然后再加上Mocha的价钱,得到最后结果<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0.20+beverage.cost();<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}<br/><br/>&nbsp;<br/>（2）Soy<br/><br/>Soy.java<br/>package&nbsp;com.sterning.ch3_decorator.condiment;<br/><br/>import&nbsp;com.sterning.ch3_decorator.Beverage;<br/>import&nbsp;com.sterning.ch3_decorator.CondimentDecorator;<br/><br/>public&nbsp;class&nbsp;Soy&nbsp;extends&nbsp;CondimentDecorator&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;Beverage&nbsp;beverage;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Soy(Beverage&nbsp;beverage)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.beverage&nbsp;=&nbsp;beverage;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getDescription()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;beverage.getDescription()&nbsp;+&nbsp;&#34;,&nbsp;Soy&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;double&nbsp;cost()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;.15&nbsp;+&nbsp;beverage.cost();<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}<br/>&nbsp;<br/><br/>（3）Whip<br/><br/>Whip.java<br/>package&nbsp;com.sterning.ch3_decorator.condiment;<br/><br/>import&nbsp;com.sterning.ch3_decorator.Beverage;<br/>import&nbsp;com.sterning.ch3_decorator.CondimentDecorator;<br/>&nbsp;<br/>public&nbsp;class&nbsp;Whip&nbsp;extends&nbsp;CondimentDecorator&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;Beverage&nbsp;beverage;<br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Whip(Beverage&nbsp;beverage)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.beverage&nbsp;=&nbsp;beverage;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getDescription()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;beverage.getDescription()&nbsp;+&nbsp;&#34;,&nbsp;Whip&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;double&nbsp;cost()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;.10&nbsp;+&nbsp;beverage.cost();<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}<br/><br/><br/>4．测试类StarbuzzCoffee<br/><br/>StarbuzzCoffee.java<br/>package&nbsp;com.sterning.ch3_decorator;<br/><br/>import&nbsp;com.sterning.ch3_decorator.condiment.Mocha;<br/>import&nbsp;com.sterning.ch3_decorator.condiment.Soy;<br/>import&nbsp;com.sterning.ch3_decorator.condiment.Whip;<br/>import&nbsp;com.sterning.ch3_decorator.drink.DarkRoast;<br/>import&nbsp;com.sterning.ch3_decorator.drink.Espresso;<br/>import&nbsp;com.sterning.ch3_decorator.drink.HouseBlend;<br/><br/>public&nbsp;class&nbsp;StarbuzzCoffee&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String&nbsp;args[]){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**//*<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;订一杯Espresso,不需要调料,打印出它的描述和价钱.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Beverage&nbsp;beverage=new&nbsp;Espresso();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(beverage.getDescription()+&#34;&nbsp;$&#34;+beverage.cost());<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**//*<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;制造一个DarkRoast对象,用Mocha,Whip装饰它<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Beverage&nbsp;beverage2=new&nbsp;DarkRoast();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;beverage2=new&nbsp;Mocha(beverage2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;beverage2=new&nbsp;Mocha(beverage2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;beverage2=new&nbsp;Whip(beverage2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(beverage2.getDescription()+&#34;&nbsp;$&#34;+beverage2.cost());&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**//*<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;最后,再来一杯调料为豆浆,摩卡\奶泡的HouseBlend咖啡<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Beverage&nbsp;beverage3=new&nbsp;HouseBlend();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;beverage3=new&nbsp;Soy(beverage3);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;beverage3=new&nbsp;Mocha(beverage3);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;beverage3=new&nbsp;Whip(beverage3);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(beverage3.getDescription()+&#34;&nbsp;$&#34;+beverage3.cost());&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}</span>]]></description>
		</item>
		
			<item>
			<link>http://www.java125.cn/default.asp?id=2563</link>
			<title><![CDATA[纯java设计的小系统大家可以试试效果2-java源代码]]></title>
			<author>zhangjunjie0915@gmail.com(java源代码)</author>
			<category><![CDATA[Java实例源码]]></category>
			<pubDate>Sun,06 Jan 2008 21:26:25 +0800</pubDate>
			<guid>http://www.java125.cn/default.asp?id=2563</guid>	
		<description><![CDATA[<span style="font-size:10pt">void&nbsp;dayana()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;j=0,cmptemp=0,flag=0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;s=&#34;sell&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;date=new&nbsp;SimpleDateFormat(&#34;dd:kk:mm:ss&#34;).format(new&nbsp;Date());<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char[]&nbsp;datetemp=new&nbsp;char[2];//(new&nbsp;SimpleDateFormat(&#34;dd:kk:mm:ss&#34;).format(new&nbsp;Date())).getChars(0,&nbsp;2,&nbsp;datetemp,&nbsp;0);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char[]&nbsp;datetemp2=new&nbsp;char[2];<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;date.getChars(0,2,datetemp,0);//,&nbsp;srcEnd,&nbsp;dst,&nbsp;dstBegin)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.append(&#34;&#34;+new&nbsp;String(datetemp));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0;i&lt;loglist.size();i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log2=((Log)loglist.get(i));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j=0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log2.date.getChars(0,2,datetemp2,0);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(((Log)loglist.get(i)).action.equals(s)&amp;&amp;((new&nbsp;String(datetemp2)).equals(new&nbsp;String(datetemp))))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j=0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(j=0;j&lt;(analist.size());j++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(((anaLog)&nbsp;analist.get(j)).name.equals(log2.name))////////////<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((anaLog)&nbsp;analist.get(j)).count+=log2.count;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((anaLog)&nbsp;analist.get(j)).comvalue+=log2.comvalue;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(j&gt;=analist.size())<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;analog2=new&nbsp;anaLog(log2.name,log2.count,log2.comvalue);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;analist.add(analog2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j=0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;k=0,k1=0,valuecount=0,numcount=0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;cmptemp2=&#34;&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k=k1=analist.size();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.setText(&#34;&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.append(&#34;name&#34;+&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;+&#34;count&#34;+&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;+&#34;convalue\n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(k&gt;0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0;i&lt;analist.size();i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(((anaLog)analist.get(i)).comvalue&gt;cmptemp)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cmptemp=((anaLog)analist.get(i)).comvalue;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;numcount+=((anaLog)analist.get(i)).count;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;valuecount+=cmptemp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag=i;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.append(((anaLog)analist.get(flag)).name+&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;+((anaLog)analist.get(flag)).count+&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;+((anaLog)analist.get(flag)).comvalue+&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;+&#34;\n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;analist.remove(flag);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cmptemp=0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag=0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k--;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.append(&#34;today&nbsp;unin:\n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.append(&#34;namecount&#34;+&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;+&#34;numcount&#34;+&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;+&#34;valuecount\n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.append(&#34;----------------------------\n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.append(&#34;&#34;+k1+&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;+numcount+&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;+valuecount+&#34;\n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Conduct&nbsp;c=new&nbsp;Conduct();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c.read();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c.lread();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;actionPerformed(ActionEvent&nbsp;evt)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(evt.getSource()==b1)//Integer.parseInteger<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i=0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(i&lt;list.size())<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d2=(dongxi)&nbsp;(list.get(i));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(d2.name.equals(nametext.getText()))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d2.count+=Integer.parseInt(counttext.getText());<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i++;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(i&gt;=list.size()){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d=new&nbsp;dongxi(nametext.getText(),Integer.parseInt(valuetext.getText()),Integer.parseInt(counttext.getText()));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list.add(d);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//------------------生成日志文件－－－－<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;temp=&#34;add&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log=new&nbsp;Log(nametext.getText(),temp,Integer.parseInt(counttext.getText()),Integer.parseInt(valuetext.getText()),new&nbsp;SimpleDateFormat(&#34;dd:kk:mm:ss&#34;).format(new&nbsp;Date()));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nametext.setText(&#34;&#34;);valuetext.setText(&#34;&#34;);counttext.setText(&#34;&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loglist.add(log);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lwrite();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(evt.getSource()==b2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i=0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;temp=&#34;find&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;itemp=-1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log=new&nbsp;Log(sellcount.getText(),temp,itemp,itemp,new&nbsp;SimpleDateFormat(&#34;dd:kk:mm:ss&#34;).format(new&nbsp;Date()));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loglist.add(log);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//nametext.setText(&#34;&#34;);valuetext.setText(&#34;&#34;);counttext.setText(&#34;&#34;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lwrite();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(i&lt;list.size())<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d2=(dongxi)&nbsp;(list.get(i));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(d2.name.equals(searchname.getText()))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.setText(&#34;&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.append(&#34;name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count\n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.append(&#34;----------------------------------\n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.append(&#34;&#34;+d2.name+&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;+d2.value+&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;+d2.count+&#34;\n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i++;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.setText(&#34;not&nbsp;find!&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;searchname.setText(&#34;&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(evt.getSource()==b3)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write();lwrite();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(evt.getSource()==b4)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i=0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.setText(&#34;&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(i&lt;list.size())<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d2=(dongxi)&nbsp;(list.get(i));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(d2.name.equals(sellname.getText()))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(&#34;&#34;+d2.name);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(d2.count&lt;=0||(d2.count-Integer.parseInt(sellcount.getText())&lt;0))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{disp.setText(&#34;lack&nbsp;o&#114;&nbsp;number&nbsp;erro!&#34;);}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d2.count-=Integer.parseInt(sellconvalue.getText());<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;temp=&#34;sell&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log=new&nbsp;Log(sellname.getText(),temp,Integer.parseInt(sellcount.getText()),d2.value*(Integer.parseInt(sellcount.getText())),new&nbsp;SimpleDateFormat(&#34;dd:kk:mm:ss&#34;).format(new&nbsp;Date()));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loglist.add(log);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lwrite();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sellname.setText(&#34;&#34;);sellconvalue.setText(&#34;&#34;);sellcount.setText(&#34;&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;i++;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(i&gt;=list.size())<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.setText(&#34;not&nbsp;find!&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(evt.getSource()==listall)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.setText(&#34;&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.append(&#34;name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count\n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.append(&#34;-------------------------------------------------\n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0;i&lt;list.size();i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d2=(dongxi)&nbsp;(list.get(i));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.append(d2.name+&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;+d2.value+&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;+d2.count+&#34;\n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(evt.getSource()==listlog)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.setText(&#34;&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.append(&#34;name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;action&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;comvalue&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;date\n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.append(&#34;-------------------------------------------------\n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0;i&lt;loglist.size();i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log2=(Log)(loglist.get(i));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.append(log2.name+&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;+log2.action+&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;+log2.count+&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;+log2.comvalue+&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;+log2.date+&#34;\n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(evt.getSource()==anabt)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ana();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(evt.getSource()==dangrijiesuan)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dayana();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}<br/>class&nbsp;dongxi&nbsp;implements&nbsp;Serializable<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;value;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;count;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dongxi(String&nbsp;name,int&nbsp;value,int&nbsp;count)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.name=name;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.value=value;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.count=count;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dongxi()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name=&#34;&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.value=-1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.count=-1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;save()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileOutputStream&nbsp;fout=new&nbsp;FileOutputStream(&#34;data.txt&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ObjectOutputStream&nbsp;out=new&nbsp;ObjectOutputStream(fout);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.writeObject(this);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.close();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(FileNotFoundException&nbsp;fe){}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(IOException&nbsp;ioe){}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dongxi&nbsp;read()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileInputStream&nbsp;fin=new&nbsp;FileInputStream(&#34;data.txt&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ObjectInputStream&nbsp;in=new&nbsp;ObjectInputStream(fin);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dongxi&nbsp;dxtemp=(dongxi)in.readObject();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(&#34;&nbsp;&#34;+dxtemp.getClass().getName()+&#34;&nbsp;&#34;+dxtemp.getClass().getInterfaces());<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(&#34;&nbsp;&#34;+dxtemp.name+&#34;&nbsp;&#34;+dxtemp.value+&#34;&nbsp;&#34;+dxtemp.count+&#34;\n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;dxtemp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(FileNotFoundException&nbsp;fe){}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(IOException&nbsp;ioe){}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(ClassNotFoundException&nbsp;ioe){}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;null;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}<br/>class&nbsp;Log&nbsp;implements&nbsp;Serializable<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;action;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;count;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;comvalue;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;date;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log(String&nbsp;name,String&nbsp;action,int&nbsp;count,int&nbsp;comvalue,String&nbsp;date)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.name=name;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.action=action;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.count=count;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.comvalue=comvalue;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.date=date;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;save()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileOutputStream&nbsp;fout=new&nbsp;FileOutputStream(&#34;log.txt&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ObjectOutputStream&nbsp;out=new&nbsp;ObjectOutputStream(fout);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.writeObject(this);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.close();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(FileNotFoundException&nbsp;fe){}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(IOException&nbsp;ioe){}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log&nbsp;read()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileInputStream&nbsp;fin=new&nbsp;FileInputStream(&#34;log.txt&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ObjectInputStream&nbsp;in=new&nbsp;ObjectInputStream(fin);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log&nbsp;ltemp=(Log)in.readObject();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;ltemp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(FileNotFoundException&nbsp;fe){}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(IOException&nbsp;ioe){}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(ClassNotFoundException&nbsp;ioe){}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;null;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}<br/>class&nbsp;anaLog&nbsp;implements&nbsp;Serializable<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;count;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;comvalue;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;anaLog(String&nbsp;name,int&nbsp;count,int&nbsp;comvalue)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.name=name;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.count=count;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.comvalue=comvalue;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}<br/><br/><a target="_blank" href="http://www.java125.cn/article.asp?id=2562">纯java设计的小系统大家可以试试效果-java源代码</a><br/></span>]]></description>
		</item>
		
			<item>
			<link>http://www.java125.cn/default.asp?id=2562</link>
			<title><![CDATA[纯java设计的小系统大家可以试试效果-java源代码]]></title>
			<author>zhangjunjie0915@gmail.com(java源代码)</author>
			<category><![CDATA[Java实例源码]]></category>
			<pubDate>Sun,06 Jan 2008 21:24:29 +0800</pubDate>
			<guid>http://www.java125.cn/default.asp?id=2562</guid>	
		<description><![CDATA[<span style="font-size:10pt">import&nbsp;java.awt.BorderLayout;<br/>import&nbsp;java.awt.Container;<br/>import&nbsp;java.awt.FlowLayout;<br/>import&nbsp;java.awt.GridLayout;<br/>import&nbsp;java.awt.TextArea;<br/>import&nbsp;java.awt.event.*;<br/>import&nbsp;javax.swing.*;<br/>import&nbsp;javax.swing.event.*;<br/>import&nbsp;java.io.*;<br/>import&nbsp;java.util.LinkedList;<br/>import&nbsp;java.util.Date;<br/>import&nbsp;java.text.SimpleDateFormat;<br/>public&nbsp;class&nbsp;Conduct&nbsp;extends&nbsp;JFrame&nbsp;implements&nbsp;ActionListener&nbsp;<br/>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;args<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JMenuBar&nbsp;jmb;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JLabel&nbsp;lb1,lb2,lb3,searchlabel,sellnamelb,sellconvaluelb,sellcountlb;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JButton&nbsp;b1,b2,b3,b4,listall,listlog,anabt,dangrijiesuan;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TextArea&nbsp;disp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JTextField&nbsp;valuetext,counttext,nametext,searchname,sellname,sellconvalue,sellcount;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Container&nbsp;con;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dongxi&nbsp;d,d2;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log&nbsp;log,log2;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;anaLog&nbsp;analog,analog2;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LinkedList&nbsp;list,loglist,analist;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JPanel&nbsp;ptext,poperation,p11,p12,p13,p14,p15;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Conduct(){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.setTitle(&#34;商务管理系统&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;con&nbsp;=&nbsp;this.getContentPane();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ptext=new&nbsp;JPanel();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poperation=new&nbsp;JPanel();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p11=new&nbsp;JPanel();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p12=new&nbsp;JPanel();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p13=new&nbsp;JPanel();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p14=new&nbsp;JPanel();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p15=new&nbsp;JPanel();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Box&nbsp;vtemp&nbsp;=&nbsp;Box.cr&#101;ateHorizontalBox();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//ptext.setLayout(new&nbsp;BorderLayout());<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poperation.setLayout(new&nbsp;GridLayout(10,1));&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p11.setLayout(new&nbsp;GridLayout(1,8));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p12.setLayout(new&nbsp;GridLayout(1,8));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p13.setLayout(new&nbsp;GridLayout(1,8));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p14.setLayout(new&nbsp;GridLayout(1,8));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p15.setLayout(new&nbsp;GridLayout(1,8));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;con.setLayout(new&nbsp;BorderLayout());<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;con.add(jmb=new&nbsp;JMenuBar(),&#34;North&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lb1=new&nbsp;JLabel(&#34;conductname:&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lb2=new&nbsp;JLabel(&#34;conductvalue:&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lb3=new&nbsp;JLabel(&#34;conductcount:&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;searchlabel=new&nbsp;JLabel(&#34;searchname:&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sellnamelb=new&nbsp;JLabel(&#34;sellnamelb:&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sellconvaluelb=new&nbsp;JLabel(&#34;sellconvavaluelb:&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sellcountlb=new&nbsp;JLabel(&#34;sellcountlb:&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp=new&nbsp;TextArea(&#34;&#34;,30,40,TextArea.SCROLLBARS_BOTH);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nametext=new&nbsp;JTextField(10);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;valuetext=new&nbsp;JTextField(10);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;counttext=new&nbsp;JTextField(10);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;searchname=new&nbsp;JTextField(10);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sellname=new&nbsp;JTextField(10);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sellconvalue=new&nbsp;JTextField(10);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sellcount=new&nbsp;JTextField(10);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b1=new&nbsp;JButton(&#34;add&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b2=new&nbsp;JButton(&#34;find&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b3=new&nbsp;JButton(&#34;conform&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b4=new&nbsp;JButton(&#34;chushou&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dangrijiesuan=new&nbsp;JButton(&#34;当日结算&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;listall=new&nbsp;JButton(&#34;listall&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;listlog=new&nbsp;JButton(&#34;listlog&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;anabt=new&nbsp;JButton(&#34;anabt&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b1.addActionListener(this);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b2.addActionListener(this);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b3.addActionListener(this);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b4.addActionListener(this);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;listall.addActionListener(this);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;listlog.addActionListener(this);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;anabt.addActionListener(this);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dangrijiesuan.addActionListener(this);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list=new&nbsp;LinkedList();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loglist=new&nbsp;LinkedList();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;analist=new&nbsp;LinkedList();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ptext.add(disp);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//p11.setBounds(1,1,2,2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p11.add(lb1);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p11.add(nametext);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p11.add(lb2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p11.add(valuetext);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p11.add(lb3);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p11.add(counttext);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p11.add(b1);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p11.add(b4);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//p12.setBounds(1,1,2,2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p12.add(searchlabel);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p12.add(searchname);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p12.add(b2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//p13.setBounds(1,1,2,2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p13.add(sellnamelb);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p13.add(sellname);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p13.add(sellconvaluelb);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p13.add(sellconvalue);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p13.add(sellcountlb);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p13.add(sellcount);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p13.add(b4);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//p14.setBounds(1,1,2,2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p14.add(listall);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p14.add(listlog);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p14.add(anabt);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p14.add(dangrijiesuan);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vtemp.add(disp);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ptext.add(vtemp);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;con.add(ptext,&#34;West&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poperation.add(p11);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poperation.add(p12);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poperation.add(p13);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poperation.add(p14);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;con.add(poperation,&#34;East&#34;);<br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.setExtendedState(JFrame.MAXIMIZED_BOTH);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//this.setSize(800,500);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//this.setResizable(false);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.setVisible(true);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;read()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileInputStream&nbsp;fin=new&nbsp;FileInputStream(&#34;data.txt&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ObjectInputStream&nbsp;in=new&nbsp;ObjectInputStream(fin);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d2=(dongxi)in.readObject();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(d2!=null)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list.add(d2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d2=(dongxi)in.readObject();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in.close();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(FileNotFoundException&nbsp;fe){}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(IOException&nbsp;ioe){}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(ClassNotFoundException&nbsp;ioe){}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;write()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileOutputStream&nbsp;fout=new&nbsp;FileOutputStream(&#34;data.txt&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ObjectOutputStream&nbsp;out=new&nbsp;ObjectOutputStream(fout);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i=0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(i&lt;list.size())<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d2=(dongxi)list.get(i);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.writeObject(d2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i++;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.close();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(FileNotFoundException&nbsp;fe){}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(IOException&nbsp;ioe){}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>//-----------------------------<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;lread()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileInputStream&nbsp;fin=new&nbsp;FileInputStream(&#34;log.txt&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ObjectInputStream&nbsp;in=new&nbsp;ObjectInputStream(fin);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log2=(Log)in.readObject();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(log2!=null)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loglist.add(log2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log2=(Log)in.readObject();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in.close();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(FileNotFoundException&nbsp;fe){}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(IOException&nbsp;ioe){}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(ClassNotFoundException&nbsp;ioe){}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;lwrite()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileOutputStream&nbsp;fout=new&nbsp;FileOutputStream(&#34;log.txt&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ObjectOutputStream&nbsp;out=new&nbsp;ObjectOutputStream(fout);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i=0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(i&lt;loglist.size())<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log2=(Log)loglist.get(i);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.writeObject(log2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i++;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.close();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(FileNotFoundException&nbsp;fe){}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(IOException&nbsp;ioe){}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;ana()//建立分析连表<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;j=0,cmptemp=0,flag=0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;s=&#34;sell&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0;i&lt;loglist.size();i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log2=((Log)loglist.get(i));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j=0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(((Log)loglist.get(i)).action.equals(s))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j=0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(j=0;j&lt;(analist.size());j++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(((anaLog)&nbsp;analist.get(j)).name.equals(log2.name))////////////<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//disp.append(&#34;name:&#34;+((Log)loglist.get(i)).name+&#34;\n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((anaLog)&nbsp;analist.get(j)).count+=log2.count;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((anaLog)&nbsp;analist.get(j)).comvalue+=log2.comvalue;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(j&gt;=analist.size())<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;analog2=new&nbsp;anaLog(log2.name,log2.count,log2.comvalue);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;analist.add(analog2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j=0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;k=0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;cmptemp2=&#34;&#34;;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k=analist.size();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.setText(&#34;&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.append(&#34;analysis&nbsp;as&nbsp;follow:\n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.append(&#34;name&#34;+&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;+&#34;count&#34;+&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;+&#34;comvalue&#34;+&#34;\n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.append(&#34;-------------------------\n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(k&gt;0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0;i&lt;analist.size();i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(((anaLog)analist.get(i)).comvalue&gt;cmptemp)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cmptemp=((anaLog)analist.get(i)).comvalue;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag=i;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disp.append(((anaLog)analist.get(flag)).name+&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;+((anaLog)analist.get(flag)).count+&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;+((anaLog)analist.get(flag)).comvalue+&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;+&#34;\n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;analist.remove(flag);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cmptemp=0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag=0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k--;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span>]]></description>
		</item>
		
			<item>
			<link>http://www.java125.cn/default.asp?id=2518</link>
			<title><![CDATA[JAVA音乐播放器-YOYOPlayer1.1下载]]></title>
			<author>zhangjunjie0915@gmail.com(java源代码)</author>
			<category><![CDATA[Java实例源码]]></category>
			<pubDate>Sun,30 Dec 2007 12:56:54 +0800</pubDate>
			<guid>http://www.java125.cn/default.asp?id=2518</guid>	
		<description><![CDATA[<span style="font-size:10pt">YOYOPlayer1.0版推出之后,得到了一些朋友的认可和反馈,经过这段时间的修改,现在推出YOYOPlayer1.1版.相对于1.0版,改进的地方如下:<br/>一,设置方面<br/>1,增加了首选项的功能,很多方面现在已经可以配置<br/>二,歌词方面<br/>1,增加了歌词搜索的自主性,用户可以选择自定义搜索关键字,也可以自定义是否和歌词文件相关联,这里的关联并不是把歌词写入歌曲文件,而是在程序中建立一种关联,以免每次播放这首歌的时候都去搜索歌词,而是直接去读取关联好的歌词文件.<br/>2,增加了指定歌词的搜索目录,指定歌词的保存目录功能.为了性能考虑,歌词的搜索目录不会往下递归,只搜索设置的那一级目录.<br/>3,歌词的设置更为丰富,很多地方以前是固定的,现在都是可以改变的,并且增加了纵向显示歌词的卡拉OK显示功能,还支持字体是否抗锯齿显示的选项.<br/>4,支持淡入淡出显示歌词,支持多种对齐方式.<br/>5,在windows下面支持歌词窗口的透明显示.在linux下面,此选项将被禁用:(<br/>三,标签方面<br/>1,现在完全支持ID3v1,ID3v2,APEv2,Vorbis标签的读取和写入,并可设置标签的读取和写入的编码.以免在读取标签的时候出现乱码的情况.程序的默认设置编码是GBK,如果是UTF-8的用户,可以在首选项修改.<br/>四,其它方面<br/>1,可以选择音频设备,这在一定程度上可以选择几个设置对比一下效果.尽量减少播放器没有声音的情况.<br/>2,增加在任务栏滚动显示歌曲标题.<br/>3,支持设置代理服务器连接网络.<br/>4,支持对播放列表进行一些细化的设置,因为程序预设的颜色不一定符合大家的审美观.<br/>5,配置目录现在改为{user.home}/.YOYOPlayer/,默认的歌词目录是{user.home}/.YOYOPlayer/Lyrics/<br/>6,支持snd,aifc,aif,wav,au,mp1,mp2,mp3,ogg,spx,flac,ape,mac等音频格式音乐.<br/><br/>在首选项里在的还有很多功能没有实现,因为个人的精力实在有限,YOYOPlayer项目已经在sourceforge.net和java.net申请了项目,正在审核中,等审核通过了,欢迎大家加入到开发和维护YOYOPlayer的行列中.在java.net上的地址是:<br/><a href="https://yoyoplayer.dev.java.net" target="_blank">https://yoyoplayer.dev.java.net</a><br/><br/>在使用的过程中,有任何问题,欢迎到<a href="http://www.blogjava.net/hadeslee" target="_blank">http://www.blogjava.net/hadeslee</a>或者<a href="http://www.luge.cn/bbs/" target="_blank">http://www.luge.cn/bbs/</a>上留言.也可以加本人的QQ:24325142.希望和大家一起探讨JAVA问题,让JAVA的浓香飘的更远.<br/><br/>其实本人也希望打包成ZIP格式,可是ZIP的压缩率没有RAR高,并且blogjava只支持2000KB的文件,所以只能打包成RAR格式的,还望大家见谅.最后,谢谢我的女友YOYO这段时间以来以我的关心和鼓励.<br/><br/>下面是运行的截图:<br/><img src="http://www.blogjava.net/images/blogjava_net/hadeslee/yoyoplayer1.1.jpg" border="0" alt=""/><br/><br/>请点击这里下载可执行的文件</span>]]></description>
		</item>
		
			<item>
			<link>http://www.java125.cn/default.asp?id=2481</link>
			<title><![CDATA[Struts2+spring2+hibernate3实例源码-java源码]]></title>
			<author>zhangjunjie0915@gmail.com(admin)</author>
			<category><![CDATA[Java实例源码]]></category>
			<pubDate>Wed,26 Dec 2007 17:52:45 +0800</pubDate>
			<guid>http://www.java125.cn/default.asp?id=2481</guid>	
		<description><![CDATA[<span style="font-size:10pt">Struts2+spring2+hibernate3整合方案<br/>最近闲来无事可做，于是开始学习struts2。Struts2和struts1、webwork2有什么区别我也不说了，网上有很多这方面的资料。以前在项目中从未使用过struts，一直使用spring+hibernate，现在既然学习了Struts，也不能浪费，于是乎开始琢磨着怎么整合这3个框架。整合原理以spring为容器，管理hibernate的DAO和Struts2的Action。<br/>一、&nbsp;准备工作<br/>Struts2.06+spring2.5+hibernate3.2+jdk6.0+myeclipse6.0+tomcat5.5+mysql5.0<br/>以上是整合的原料。下面以一个注册登陆的例子来开始我们的整合过程。<br/>这个例子很简单，下面是它的sql脚本内容:<br/>Cr&#101;ate&nbsp;TABLE&nbsp;`user`&nbsp;(<br/>&nbsp;&nbsp;`userid`&nbsp;int(11)&nbsp;NOT&nbsp;NULL&nbsp;AUTO_INCREMENT,<br/>&nbsp;&nbsp;`username`&nbsp;varchar(20)&nbsp;NOT&nbsp;NULL,<br/>&nbsp;&nbsp;`password`&nbsp;varchar(16)&nbsp;NOT&nbsp;NULL,<br/>&nbsp;&nbsp;`email`&nbsp;varchar(30)&nbsp;NOT&nbsp;NULL,<br/>&nbsp;&nbsp;PRIMARY&nbsp;KEY&nbsp;(`userid`)<br/>)&nbsp;ENGINE=InnoDB&nbsp;DEFAULT&nbsp;CHARSET=utf-8;<br/>二、&nbsp;开始行动<br/>包结构可以参考下图<br/><img src="http://www.blogjava.net/images/blogjava_net/flustar/ssh.jpg" border="0" alt=""/><br/>图一<br/><img src="http://www.blogjava.net/images/blogjava_net/flustar/ssh1.jpg" border="0" alt=""/><br/>&nbsp;图二<br/><img src="http://www.blogjava.net/images/blogjava_net/flustar/ssh2.jpg" border="0" alt=""/><br/>图三<br/>1)&nbsp;Struts部分:建立struts.xml和struts.properties<br/>Struts.xml内容如下：<br/><br/>&nbsp;<br/>&lt;?xml&nbsp;version=&#34;1.0&#34;&nbsp;encoding=&#34;UTF-8&#34;?&gt;<br/>&lt;!DOCTYPE&nbsp;struts&nbsp;PUBLIC&nbsp;&#34;-//Apache&nbsp;Software&nbsp;Foundation//DTD&nbsp;Struts&nbsp;Configuration&nbsp;2.0//EN&#34;&nbsp;&#34;<a href="http://struts.apache.org/dtds/struts-2.0.dtd" target="_blank">http://struts.apache.org/dtds/struts-2.0.dtd</a>&#34;&nbsp;&gt;<br/>&lt;struts&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;package&nbsp;name=&#34;user_curd&#34;&nbsp;extends=&#34;struts-default&#34;&nbsp;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;global-results&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;下面定义的结果对所有的Action都有效&nbsp;--&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;name=&#34;exception&#34;&gt;/error.jsp&lt;/result&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/global-results&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;global-exception-mappings&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;指Action抛出Exception异常时，转入名为exception的结果。&nbsp;--&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;exception-mapping&nbsp;exception=&#34;java.lang.Exception&#34;&nbsp;result=&#34;exception&#34;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/global-exception-mappings&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;action&nbsp;name=&#34;Login&#34;&nbsp;class=&#34;LoginAction&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;name=&#34;success&#34;&gt;/success.jsp&lt;/result&gt;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;name=&#34;input&#34;&gt;/login.jsp&lt;/result&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/action&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;action&nbsp;name=&#34;Regist&#34;&nbsp;class=&#34;RegistAction&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;name=&#34;success&#34;&gt;/success.jsp&lt;/result&gt;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;name=&#34;input&#34;&gt;/regist.jsp&lt;/result&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/action&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/package&gt;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&lt;/struts&gt;<br/><br/><br/>Struts.properties内容如下:<br/><br/>&nbsp;<br/>struts.devMode=false<br/>struts.enable.DynamicMethodInvocation=true<br/>struts.i18n.reload=true<br/>struts.ui.theme=simple<br/><br/>struts.locale=zh_CN<br/>struts.i18n.encoding=UTF-8<br/>struts.objectFactory=spring<br/>struts.objectFactory.spring.autoWire=name<br/><br/>struts.serve.static.browserCache=false<br/>struts.url.includeParams=none<br/><br/><br/>2)&nbsp;建立User.java和User.hbm.xml、jdbc.properties：<br/>User.java内容如下:<br/><br/>&nbsp;<br/>/**&nbsp;*//**&nbsp;<br/>&nbsp;*&nbsp;<br/>&nbsp;*&nbsp;@author&nbsp;&lt;a&nbsp;href=&#34;mailto:flustar2008@163.com&#34;&gt;flustar&lt;/a&gt;<br/>&nbsp;*&nbsp;@version&nbsp;1.0&nbsp;<br/>&nbsp;*&nbsp;Creation&nbsp;date:&nbsp;Dec&nbsp;23,&nbsp;2007&nbsp;1:55:28&nbsp;PM<br/>&nbsp;*/<br/>package&nbsp;com.firstssh.model;<br/><br/>import&nbsp;java.io.Serializable;<br/><br/>public&nbsp;class&nbsp;User&nbsp;implements&nbsp;Serializable&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;int&nbsp;id;<br/>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;username;<br/>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;password;<br/>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;email;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;int&nbsp;getId()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;id;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setId(int&nbsp;id)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.id&nbsp;=&nbsp;id;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getUsername()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;username;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setUsername(String&nbsp;username)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.username&nbsp;=&nbsp;username;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getPassword()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;password;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setPassword(String&nbsp;password)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.password&nbsp;=&nbsp;password;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getEmail()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;email;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setEmail(String&nbsp;email)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.email&nbsp;=&nbsp;email;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}<br/><br/><br/>User.hbm.xml内容:<br/><br/>&nbsp;<br/>&lt;?xml&nbsp;version=&#34;1.0&#34;?&gt;<br/>&lt;!DOCTYPE&nbsp;hibernate-mapping&nbsp;PUBLIC&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#34;-//Hibernate/Hibernate&nbsp;Mapping&nbsp;DTD&nbsp;3.0//EN&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#34;<a href="http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" target="_blank">http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd</a>&#34;&gt;<br/>&lt;hibernate-mapping&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;package=&#34;com.firstssh.model&#34;&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;class&nbsp;name=&#34;User&#34;&nbsp;table=&#34;User&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;id&nbsp;name=&#34;id&#34;&nbsp;column=&#34;userid&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;generator&nbsp;class=&#34;identity&#34;&nbsp;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/id&gt;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;username&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;column=&#34;username&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;not-null=&#34;true&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;length=&#34;20&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;password&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;column=&#34;password&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;not-null=&#34;true&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;length=&#34;16&#34;&nbsp;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;email&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;column=&#34;email&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;not-null=&#34;true&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;length=&#34;30&#34;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/class&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&lt;/hibernate-mapping&gt;<br/><br/><br/>jdbc.properties内容如下:<br/><br/>&nbsp;<br/>datasource.type=mysql<br/>datasource.driverClassName=com.mysql.jdbc.Driver<br/>datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8<br/><br/>datasource.username=root<br/>datasource.password=123456<br/><br/>datasource.maxActive=10<br/>datasource.maxIdle=2<br/>datasource.maxWait=120000<br/>datasource.whenExhaustedAction=1<br/>datasource.validationQuery=sel&#101;ct&nbsp;1&nbsp;from&nbsp;dual<br/>datasource.testOnBorrow=true<br/>datasource.testOnReturn=false<br/><br/>c3p0.acquireIncrement=3<br/>c3p0.initialPoolSize=3<br/>c3p0.idleConnectionTestPeriod=900<br/>c3p0.minPoolSize=2<br/>c3p0.maxPoolSize=50<br/>c3p0.maxStatements=100<br/>c3p0.numHelperThreads=10<br/>c3p0.maxIdleTime=600<br/><br/>hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect<br/>#hibernate.dialect=org.hibernate.dialect.MySQLMyISAMDialect<br/><br/>hibernate.jdbc.batch_size=25<br/>hibernate.jdbc.fetch_size=50<br/>hibernate.show_sql=true<br/>hibernate.connection.release_mode=after_transaction<br/><br/><br/>3)&nbsp;Spirng部分:为了清晰把Spring的配置文件拆分成以下几部分applicationContext-dao.xml、&nbsp;appliationContext-service.xml、applicationContext-hibernate.xml、action-&nbsp;servlet.xml。<br/>applicationContext-hibernate.xml内容：<br/><br/>&nbsp;<br/>&lt;?xml&nbsp;version=&#34;1.0&#34;&nbsp;encoding=&#34;UTF-8&#34;?&gt;<br/>&lt;!DOCTYPE&nbsp;beans&nbsp;PUBLIC&nbsp;&#34;-//SPRING//DTD&nbsp;BEAN&nbsp;2.0//EN&#34;&nbsp;&#34;<a href="http://www.springframework.org/dtd/spring-beans-2.0.dtd" target="_blank">http://www.springframework.org/dtd/spring-beans-2.0.dtd</a>&#34;&gt;<br/>&lt;beans&gt;<br/>&lt;bean&nbsp;id=&#34;propertyConfigurer&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;class=&#34;org.springframework.beans.factory.config.PropertyPlaceholderConfigurer&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;locations&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;list&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;&nbsp;&lt;value&gt;WEB-INF/mail.properties&lt;/value&gt;--&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;WEB-INF/jdbc.properties&lt;/value&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;&nbsp;&lt;value&gt;WEB-INF/oscache.properties&lt;/value&gt;--&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/list&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&lt;/bean&gt;<br/>&lt;!--&nbsp;MailSender&nbsp;used&nbsp;by&nbsp;EmailAdvice&nbsp;--&gt;<br/>&lt;!--<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;mailSender&#34;&nbsp;class=&#34;org.springframework.mail.javamail.JavaMailSenderImpl&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;host&#34;&nbsp;value=&#34;${mail.host}&#34;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>--&gt;<br/>&lt;bean&nbsp;id=&#34;dataSource&#34;&nbsp;class=&#34;com.mchange.v2.c3p0.ComboPooledDataSource&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;destroy-method=&#34;close&#34;&nbsp;dependency-check=&#34;none&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;driverClass&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;${datasource.driverClassName}&lt;/value&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;jdbcUrl&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;${datasource.url}&lt;/value&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;user&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;${datasource.username}&lt;/value&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;password&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;${datasource.password}&lt;/value&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;acquireIncrement&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;${c3p0.acquireIncrement}&lt;/value&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;initialPoolSize&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;${c3p0.initialPoolSize}&lt;/value&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;minPoolSize&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;${c3p0.minPoolSize}&lt;/value&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;maxPoolSize&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;${c3p0.maxPoolSize}&lt;/value&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;maxIdleTime&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;${c3p0.maxIdleTime}&lt;/value&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;idleConnectionTestPeriod&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;${c3p0.idleConnectionTestPeriod}&lt;/value&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;maxStatements&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;${c3p0.maxStatements}&lt;/value&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;numHelperThreads&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;${c3p0.numHelperThreads}&lt;/value&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&lt;/bean&gt;<br/>&lt;bean&nbsp;id=&#34;sessionFactory&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;class=&#34;org.springframework.orm.hibernate3.LocalSessionFactoryBean&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;dataSource&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ref&nbsp;local=&#34;dataSource&#34;&nbsp;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;mappingResources&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;list&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;com/firstssh/model/User.hbm.xml&lt;/value&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/list&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;hibernateProperties&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;props&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;hibernate.dialect&#34;&gt;${hibernate.dialect}&lt;/prop&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;hibernate.show_sql&#34;&gt;${hibernate.show_sql}&lt;/prop&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;hibernate.jdbc.fetch_size&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${hibernate.jdbc.fetch_size}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/prop&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;hibernate.jdbc.batch_size&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${hibernate.jdbc.batch_size}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/prop&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/props&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&lt;/bean&gt;<br/>&lt;!--&nbsp;配置事务管理器bean,使用HibernateTransactionManager事务管理器&nbsp;--&gt;<br/>&lt;bean&nbsp;id=&#34;transactionManager&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;class=&#34;org.springframework.orm.hibernate3.HibernateTransactionManager&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;为事务管理器注入sessionFactory&#34;&nbsp;--&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;sessionFactory&#34;&nbsp;ref=&#34;sessionFactory&#34;/&gt;<br/>&lt;/bean&gt;<br/>&lt;!--&nbsp;配置事务拦截器Bean&nbsp;--&gt;<br/>&lt;bean&nbsp;id=&#34;transactionInterceptor&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;class=&#34;org.springframework.transaction.interceptor.TransactionInterceptor&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;为事务拦截器bean注入一个事物管理器&nbsp;--&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;transactionManager&#34;&nbsp;ref=&#34;transactionManager&#34;&gt;&lt;/property&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;transactionAttributes&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;定义事务传播属性&nbsp;--&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;props&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;ins&#101;rt*&#34;&gt;PROPAGATION_REQUIRED&lt;/prop&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;up&#100;ate*&#34;&gt;PROPAGATION_REQUIRED&lt;/prop&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;save*&#34;&gt;PROPAGATION_REQUIRED&lt;/prop&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;add*&#34;&gt;PROPAGATION_REQUIRED&lt;/prop&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;up&#100;ate*&#34;&gt;PROPAGATION_REQUIRED&lt;/prop&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;remove*&#34;&gt;PROPAGATION_REQUIRED&lt;/prop&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;del&#101;te*&#34;&gt;PROPAGATION_REQUIRED&lt;/prop&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;get*&#34;&gt;PROPAGATION_REQUIRED,readOnly&lt;/prop&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;find*&#34;&gt;PROPAGATION_REQUIRED,readOnly&lt;/prop&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;load*&#34;&gt;PROPAGATION_REQUIRED,readOnly&lt;/prop&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;change*&#34;&gt;PROPAGATION_REQUIRED&lt;/prop&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;*&#34;&gt;PROPAGATION_REQUIRED,readOnly&lt;/prop&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/props&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&lt;/bean&gt;<br/>&lt;!--&nbsp;定义BeanNameAutoProxyCreator&nbsp;--&gt;<br/>&lt;bean&nbsp;class=&#34;org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;指定满足哪些bean自动生成业务代理&nbsp;--&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;beanNames&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;需要自动创建事务代理的bean&nbsp;--&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;list&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;userService&lt;/value&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/list&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;其它需要自动创建事务代理的bean&nbsp;--&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;interceptorNames&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;list&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;transactionInterceptor&lt;/value&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;可增加其它的interceptor&nbsp;--&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/list&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&lt;/bean&gt;<br/>&lt;/beans&gt;<br/><br/><br/>applicationContext-dao.xml内容:<br/><br/>&nbsp;<br/>&lt;?xml&nbsp;version=&#34;1.0&#34;&nbsp;encoding=&#34;UTF-8&#34;?&gt;<br/>&lt;!DOCTYPE&nbsp;beans&nbsp;PUBLIC&nbsp;&#34;-//SPRING//DTD&nbsp;BEAN&nbsp;2.0//EN&#34;&nbsp;&#34;<a href="http://www.springframework.org/dtd/spring-beans-2.0.dtd" target="_blank">http://www.springframework.org/dtd/spring-beans-2.0.dtd</a>&#34;&gt;<br/>&lt;beans&gt;<br/>&lt;!--&nbsp;根DAO&nbsp;--&gt;<br/>&lt;bean&nbsp;id=&#34;genericDao&#34;&nbsp;class=&#34;com.firstssh.common.dao.GenericDao&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;sessionFactory&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ref&nbsp;bean=&#34;sessionFactory&#34;&nbsp;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&lt;/bean&gt;<br/>&lt;bean&nbsp;id=&#34;userDao&#34;&nbsp;class=&#34;com.firstssh.dao.impl.UserDao&#34;&nbsp;parent=&#34;genericDao&#34;&nbsp;/&gt;<br/>&lt;/beans&gt;<br/><br/><br/>applicationContext-service.xml内容:<br/><br/>&nbsp;<br/>&lt;?xml&nbsp;version=&#34;1.0&#34;&nbsp;encoding=&#34;UTF-8&#34;?&gt;<br/>&lt;!DOCTYPE&nbsp;beans&nbsp;PUBLIC&nbsp;&#34;-//SPRING//DTD&nbsp;BEAN&nbsp;2.0//EN&#34;&nbsp;&#34;<a href="http://www.springframework.org/dtd/spring-beans-2.0.dtd" target="_blank">http://www.springframework.org/dtd/spring-beans-2.0.dtd</a>&#34;&gt;<br/>&lt;beans&gt;<br/>&lt;bean&nbsp;id=&#34;userService&#34;&nbsp;class=&#34;com.firstssh.service.impl.UserService&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;userDao&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ref&nbsp;bean=&#34;userDao&#34;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&lt;/bean&gt;<br/>&lt;bean&nbsp;id=&#34;validateName&#34;&nbsp;class=&#34;com.firstssh.common.Bean.ValidateName&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;userService&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ref&nbsp;local=&#34;userService&#34;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&lt;/bean&gt;<br/>&lt;/beans&gt;<br/><br/><br/>action-servlet.xml内容:<br/><br/>&nbsp;<br/>&lt;?xml&nbsp;version=&#34;1.0&#34;&nbsp;encoding=&#34;UTF-8&#34;?&gt;<br/>&lt;!DOCTYPE&nbsp;beans&nbsp;PUBLIC&nbsp;&#34;-//SPRING//DTD&nbsp;BEAN&nbsp;2.0//EN&#34;&nbsp;&#34;<a href="http://www.springframework.org/dtd/spring-beans-2.0.dtd" target="_blank">http://www.springframework.org/dtd/spring-beans-2.0.dtd</a>&#34;&gt;<br/>&lt;beans&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;LoginAction&#34;&nbsp;class=&#34;com.firstssh.action.LoginAction&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scope=&#34;prototype&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;userService&#34;&nbsp;ref=&#34;userService&#34;&nbsp;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;RegistAction&#34;&nbsp;class=&#34;com.firstssh.action.RegistAction&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scope=&#34;prototype&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;userService&#34;&nbsp;ref=&#34;userService&#34;&nbsp;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>&lt;/beans&gt;<br/><br/><br/>以上几个xml文件的内容暂且不要理会，继续往下看，你就自动明白的，不用我解释。<br/>4）日志部分:log4j.properties&nbsp;、commons-logging.properties<br/>log4j.properties内容:<br/><br/>&nbsp;<br/>#&nbsp;For&nbsp;JBoss:&nbsp;Avoid&nbsp;to&nbsp;setup&nbsp;Log4J&nbsp;outside&nbsp;$JBOSS_HOME/server/default/deploy/log4j.xml!<br/>#&nbsp;For&nbsp;all&nbsp;other&nbsp;servers:&nbsp;Comment&nbsp;out&nbsp;the&nbsp;Log4J&nbsp;listener&nbsp;in&nbsp;web.xml&nbsp;to&nbsp;activate&nbsp;Log4J.<br/>log4j.rootLogger=INFO,&nbsp;stdout,&nbsp;logfile<br/><br/>log4j.appender.stdout=org.apache.log4j.ConsoleAppender<br/>log4j.appender.stdout.layout=org.apache.log4j.PatternLayout<br/>log4j.appender.stdout.layout.ConversionPattern=%d&nbsp;%p&nbsp;[%c]&nbsp;-&nbsp;%m%n<br/><br/>log4j.appender.logfile=org.apache.log4j.RollingFileAppender<br/>log4j.appender.logfile.File=${firstssh.root}/WEB-INF/logs/firstssh.log<br/>log4j.appender.logfile.MaxFileSize=512KB<br/>#&nbsp;Keep&nbsp;three&nbsp;backup&nbsp;files.<br/>log4j.appender.logfile.MaxBackupIndex=3<br/>#&nbsp;Pattern&nbsp;to&nbsp;output:&nbsp;date&nbsp;priority&nbsp;[category]&nbsp;-&nbsp;message<br/>log4j.appender.logfile.layout=org.apache.log4j.PatternLayout<br/>log4j.appender.logfile.layout.ConversionPattern=%d&nbsp;%p&nbsp;[%c]&nbsp;-&nbsp;%m%n<br/>#&nbsp;OpenSymphony&nbsp;Stuff<br/>log4j.logger.com.opensymphony=INFO<br/>log4j.logger.org.apache.struts2=INFO<br/>#&nbsp;Spring&nbsp;Stuff<br/>log4j.logger.org.springframework=INFO<br/>#&nbsp;Hibernate&nbsp;Stuff<br/>log4j.logger.org.hiberante=INFO<br/><br/>commons-logging.properties<br/>内容:<br/>o&#114;g.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger<br/><br/><br/>5)web.xml<br/><br/>&nbsp;<br/>&lt;?xml&nbsp;version=&#34;1.0&#34;&nbsp;encoding=&#34;UTF-8&#34;?&gt;<br/>&lt;web-app&nbsp;xmlns=&#34;<a href="http://java.sun.com/xml/ns/j2ee" target="_blank">http://java.sun.com/xml/ns/j2ee</a>&#34;&nbsp;<br/>&nbsp;xmlns:xsi=&#34;<a href="http://www.w3.org/2001/XMLSchema-instance" target="_blank">http://www.w3.org/2001/XMLSchema-instance</a>&#34;&nbsp;<br/>&nbsp;xsi:schemaLocation=&#34;<a href="http://java.sun.com/xml/ns/j2ee" target="_blank">http://java.sun.com/xml/ns/j2ee</a>&nbsp;<a href="http://java.sun.com/xml/ns/j2ee" target="_blank">http://java.sun.com/xml/ns/j2ee</a>/web-app_2_4.xsd&#34;&nbsp;<br/>&nbsp;version=&#34;2.4&#34;&gt;<br/>&nbsp;&lt;display-name&gt;firstssh&lt;/display-name&gt;<br/>&nbsp;&lt;description&gt;this&nbsp;is&nbsp;a&nbsp;simple&nbsp;example&lt;/description&gt;<br/>&nbsp;&lt;context-param&gt;<br/>&nbsp;&nbsp;&lt;param-name&gt;webAppRootKey&lt;/param-name&gt;<br/>&nbsp;&nbsp;&lt;param-value&gt;firstssh.root&lt;/param-value&gt;<br/>&nbsp;&lt;/context-param&gt;<br/>&nbsp;<br/>&nbsp;&lt;context-param&gt;<br/>&nbsp;&nbsp;&lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;<br/>&nbsp;&nbsp;&lt;param-value&gt;/WEB-INF/applicationContext-*.xml,/WEB-INF/action-servlet.xml&lt;/param-value&gt;<br/>&nbsp;&lt;/context-param&gt;<br/>&nbsp;&lt;context-param&gt;<br/>&nbsp;&nbsp;&lt;param-name&gt;log4jConfigLocation&lt;/param-name&gt;<br/>&nbsp;&nbsp;&lt;param-value&gt;/WEB-INF/log4j.properties&lt;/param-value&gt;<br/>&nbsp;&lt;/context-param&gt;<br/>&nbsp;&lt;listener&gt;<br/>&nbsp;&nbsp;&lt;listener-class&gt;org.springframework.web.util.Log4jConfigListener&lt;/listener-class&gt;<br/>&nbsp;&lt;/listener&gt;<br/>&nbsp;&lt;!--&nbsp;用于初始化Spring容器的Listener&nbsp;--&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;listener&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/listener&gt;<br/>&nbsp;<br/>&nbsp;<br/>&nbsp;&lt;!--&nbsp;定义整合SiteMesh必须的ActionContextCleanUp&nbsp;Filter&nbsp;<br/>&nbsp;&lt;filter&gt;<br/>&nbsp;&nbsp;&lt;filter-name&gt;struts-cleanup&lt;/filter-name&gt;<br/>&nbsp;&nbsp;&lt;filter-class&gt;org.apache.struts2.dispatcher.ActionContextCleanUp&lt;/filter-class&gt;<br/>&nbsp;&lt;/filter&gt;--&gt;<br/>&nbsp;&lt;!--&nbsp;定义Struts2的FilterDispathcer的Filter&nbsp;--&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;filter&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;filter-name&gt;struts2&lt;/filter-name&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;filter-class&gt;org.apache.struts2.dispatcher.FilterDispatcher&lt;/filter-class&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/filter&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;&nbsp;&nbsp;&lt;filter-mapping&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;filter-name&gt;struts-cleanup&lt;/filter-name&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;url-pattern&gt;/*&lt;/url-pattern&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/filter-mapping&gt;--&gt;<br/>&nbsp;&lt;!--&nbsp;FilterDispatcher用来初始化struts2并且处理所有的WEB请求。&nbsp;--&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;filter-mapping&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;filter-name&gt;struts2&lt;/filter-name&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;url-pattern&gt;/*&lt;/url-pattern&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/filter-mapping&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;这是一个产生验证码的servlet&nbsp;--&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet-name&gt;img&lt;/servlet-name&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet-class&gt;com.firstssh.servlet.AuthImg&lt;/servlet-class&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/servlet&gt;<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet-mapping&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet-name&gt;img&lt;/servlet-name&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;url-pattern&gt;/authImg&lt;/url-pattern&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/servlet-mapping&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;filter&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;filter-name&gt;encodingFilter&lt;/filter-name&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;filter-class&gt;org.springframework.web.filter.CharacterEncodingFilter&lt;/filter-class&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;init-param&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;param-name&gt;encoding&lt;/param-name&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;param-value&gt;utf-8&lt;/param-value&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/init-param&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/filter&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;filter-mapping&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;filter-name&gt;encodingFilter&lt;/filter-name&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;url-pattern&gt;*.action&lt;/url-pattern&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/filter-mapping&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;filter-mapping&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;filter-name&gt;encodingFilter&lt;/filter-name&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;url-pattern&gt;*.jsp&lt;/url-pattern&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/filter-mapping&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;filter&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;filter-name&gt;hibernateFilter&lt;/filter-name&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;filter-class&gt;org.springframework.orm.hibernate3.support.OpenSessionInViewFilter&lt;/filter-class&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/filter&gt;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;filter-mapping&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;filter-name&gt;hibernateFilter&lt;/filter-name&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;url-pattern&gt;*.action&lt;/url-pattern&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/filter-mapping&gt;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;DWR&nbsp;Servlet--&gt;<br/>&nbsp;&nbsp;&lt;servlet&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet-name&gt;dwr-invoker&lt;/servlet-name&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet-class&gt;org.directwebremoting.servlet.DwrServlet&lt;/servlet-class&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;init-param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;param-name&gt;debug&lt;/param-name&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;param-value&gt;true&lt;/param-value&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/init-param&gt;<br/>&nbsp;&nbsp;&lt;/servlet&gt;<br/><br/>&nbsp;&nbsp;&lt;servlet-mapping&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet-name&gt;dwr-invoker&lt;/servlet-name&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;url-pattern&gt;/dwr/*&lt;/url-pattern&gt;<br/>&nbsp;&nbsp;&lt;/servlet-mapping&gt;<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;session-config&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;session-timeout&gt;10&lt;/session-timeout&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/session-config&gt;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;welcome-file-list&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;<br/>&nbsp;&nbsp;&lt;/welcome-file-list&gt;<br/>&nbsp;&nbsp;&lt;error-page&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;error-code&gt;401&lt;/error-code&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;location&gt;/401.htm&lt;/location&gt;<br/>&nbsp;&nbsp;&lt;/error-page&gt;<br/>&nbsp;&nbsp;&lt;error-page&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;error-code&gt;403&lt;/error-code&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;location&gt;/403.htm&lt;/location&gt;<br/>&nbsp;&nbsp;&lt;/error-page&gt;<br/>&nbsp;&nbsp;&lt;error-page&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;error-code&gt;404&lt;/error-code&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;location&gt;/404.htm&lt;/location&gt;<br/>&nbsp;&nbsp;&lt;/error-page&gt;<br/>&nbsp;&nbsp;&lt;error-page&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;error-code&gt;500&lt;/error-code&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;location&gt;/500.htm&lt;/location&gt;<br/>&nbsp;&nbsp;&lt;/error-page&gt;<br/>&lt;/web-app&gt;<br/><br/><br/>&nbsp;<br/><br/>6)dwr.xml<br/>&lt;?xml&nbsp;version=&#34;1.0&#34;&nbsp;encoding=&#34;UTF-8&#34;?&gt;<br/>&lt;!DOCTYPE&nbsp;dwr&nbsp;PUBLIC&nbsp;&#34;-//GetAhead&nbsp;Limited//DTD&nbsp;Direct&nbsp;Web&nbsp;Remoting&nbsp;2.0//EN&#34;&nbsp;&#34;<a href="http://getahead.org/dwr/dwr20.dtd" target="_blank">http://getahead.org/dwr/dwr20.dtd</a>&#34;&gt;<br/><br/>&lt;dwr&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;检查用户名是否存在&nbsp;ValidateName的映射文件--&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;allow&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;cr&#101;ate&nbsp;&nbsp;creator=&#34;spring&#34;&nbsp;javascript=&#34;ValidateName&#34;&nbsp;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;param&nbsp;name=&#34;beanName&#34;&nbsp;value=&#34;validateName&#34;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;include&nbsp;method=&#34;valid&#34;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/cr&#101;ate&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/allow&gt;<br/>&lt;/dwr&gt;<br/><br/><br/><br/>三、&nbsp;开始编码:<br/>以下是DAO部分的核心代码:<br/>IGenericDao.java内容如下:<br/><br/>&nbsp;<br/>/**&nbsp;*//**&nbsp;<br/>&nbsp;*<br/>&nbsp;*&nbsp;@author&nbsp;&lt;a&nbsp;href=&#34;mailto:flustar2008@163.com&#34;&gt;flustar&lt;/a&gt;<br/>&nbsp;*&nbsp;@version&nbsp;1.0&nbsp;<br/>&nbsp;*&nbsp;Creation&nbsp;date:&nbsp;Dec&nbsp;23,&nbsp;2007&nbsp;6:19:21&nbsp;PM<br/>&nbsp;*/<br/>package&nbsp;com.firstssh.common.dao;<br/><br/>import&nbsp;java.io.Serializable;<br/>import&nbsp;java.util.Collection;<br/>import&nbsp;java.util.List;<br/><br/>import&nbsp;o&#114;g.hibernate.LockMode;<br/>import&nbsp;o&#114;g.hibernate.criterion.DetachedCriteria;<br/>import&nbsp;o&#114;g.springframework.dao.DataAccessException;<br/><br/>import&nbsp;com.firstssh.common.util.PaginationSupport;<br/><br/>public&nbsp;interface&nbsp;IGenericDao&lt;T,&nbsp;ID&nbsp;extends&nbsp;Serializable&gt;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;saveOrUp&#100;ate(T&nbsp;t);<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;T&nbsp;load(Serializable&nbsp;ID);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;T&nbsp;get(Serializable&nbsp;ID)&nbsp;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;boolean&nbsp;contains(T&nbsp;t)&nbsp;throws&nbsp;DataAccessException&nbsp;;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;del&#101;te(T&nbsp;t,&nbsp;LockMode&nbsp;lockMode)&nbsp;throws&nbsp;DataAccessException;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;del&#101;te(T&nbsp;t)&nbsp;throws&nbsp;DataAccessException;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;del&#101;teAll(Collection&lt;T&gt;&nbsp;entities)&nbsp;throws&nbsp;DataAccessException;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;List&lt;T&gt;&nbsp;find(String&nbsp;queryString,&nbsp;Object&nbsp;value)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;DataAccessException;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;List&lt;T&gt;&nbsp;find(String&nbsp;queryString,&nbsp;Object[]&nbsp;values)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;DataAccessException;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;List&lt;T&gt;&nbsp;find(String&nbsp;queryString)&nbsp;throws&nbsp;DataAccessException;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;List&lt;T&gt;&nbsp;findByExample(Object&nbsp;exampleEntity,&nbsp;int&nbsp;firstResult,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;maxResults)&nbsp;throws&nbsp;DataAccessException;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;List&lt;T&gt;&nbsp;findByExample(Object&nbsp;exampleEntity)&nbsp;throws&nbsp;DataAccessException;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;List&lt;T&gt;&nbsp;findByNamedParam(String&nbsp;queryString,&nbsp;String&nbsp;paramName,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;value)&nbsp;throws&nbsp;DataAccessException&nbsp;;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;List&lt;T&gt;&nbsp;findByNamedParam(String&nbsp;queryString,&nbsp;String[]&nbsp;paramNames,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object[]&nbsp;values)&nbsp;throws&nbsp;DataAccessException;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Object&nbsp;load(Class&nbsp;TClass,&nbsp;Serializable&nbsp;ID,&nbsp;LockMode&nbsp;lockMode)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;DataAccessException;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;load(T&nbsp;t,&nbsp;Serializable&nbsp;ID)&nbsp;throws&nbsp;DataAccessException;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Object&nbsp;load(String&nbsp;TName,&nbsp;Serializable&nbsp;ID,&nbsp;LockMode&nbsp;lockMode)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;DataAccessException;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Object&nbsp;load(String&nbsp;TName,&nbsp;Serializable&nbsp;ID)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;DataAccessException;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;refresh(T&nbsp;t,&nbsp;LockMode&nbsp;lockMode)&nbsp;throws&nbsp;DataAccessException;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;refresh(T&nbsp;t)&nbsp;throws&nbsp;DataAccessException;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Serializable&nbsp;save(T&nbsp;t)&nbsp;throws&nbsp;DataAccessException;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;saveOrUp&#100;ate(String&nbsp;TName,&nbsp;T&nbsp;t)&nbsp;throws&nbsp;DataAccessException;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;saveOrUp&#100;ateAll(Collection&lt;T&gt;&nbsp;entities)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;DataAccessException;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;up&#100;ate(T&nbsp;t,&nbsp;LockMode&nbsp;lockMode)&nbsp;throws&nbsp;DataAccessException;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;up&#100;ate(T&nbsp;t)&nbsp;throws&nbsp;DataAccessException;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;up&#100;ate(String&nbsp;TName,&nbsp;T&nbsp;t,&nbsp;LockMode&nbsp;lockMode)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;DataAccessException;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;up&#100;ate(String&nbsp;TName,&nbsp;T&nbsp;t)&nbsp;throws&nbsp;DataAccessException;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;List&lt;T&gt;&nbsp;loadAll();<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;List&lt;T&gt;&nbsp;list();<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;PaginationSupport&nbsp;findPageByCriteria(<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;DetachedCriteria&nbsp;detachedCriteria,&nbsp;final&nbsp;int&nbsp;pageSize,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;int&nbsp;startIndex);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;&nbsp;PaginationSupport&nbsp;findPageByQuery(&nbsp;final&nbsp;&nbsp;String&nbsp;hsql,&nbsp;&nbsp;final&nbsp;int&nbsp;pageSize,final&nbsp;int&nbsp;startIndex);<br/><br/>}<br/><br/><br/>GenericDao.java内容如下:<br/>/**&nbsp;*//**&nbsp;<br/>&nbsp;*<br/>&nbsp;*&nbsp;@author&nbsp;&lt;a&nbsp;href=&#34;mailto:flustar2008@163.com&#34;&gt;flustar&lt;/a&gt;<br/>&nbsp;*&nbsp;@version&nbsp;1.0&nbsp;<br/>&nbsp;*&nbsp;Creation&nbsp;date:&nbsp;Dec&nbsp;23,&nbsp;2007&nbsp;11:23:56&nbsp;PM<br/>&nbsp;*/<br/>package&nbsp;com.firstssh.common.dao;<br/><br/>import&nbsp;java.io.Serializable;<br/>import&nbsp;java.lang.reflect.ParameterizedType;<br/>import&nbsp;java.sql.SQLException;<br/>import&nbsp;java.util.Collection;<br/>import&nbsp;java.util.List;<br/><br/>import&nbsp;o&#114;g.apache.commons.logging.Log;<br/>import&nbsp;o&#114;g.apache.commons.logging.LogFactory;<br/>import&nbsp;o&#114;g.hibernate.Criteria;<br/>import&nbsp;o&#114;g.hibernate.HibernateException;<br/>import&nbsp;o&#114;g.hibernate.LockMode;<br/>import&nbsp;o&#114;g.hibernate.Query;<br/>import&nbsp;o&#114;g.hibernate.Session;<br/>import&nbsp;o&#114;g.hibernate.criterion.DetachedCriteria;<br/>import&nbsp;o&#114;g.hibernate.criterion.Projections;<br/>import&nbsp;o&#114;g.springframework.dao.DataAccessException;<br/>import&nbsp;o&#114;g.springframework.orm.hibernate3.HibernateCallback;<br/>import&nbsp;o&#114;g.springframework.orm.hibernate3.support.HibernateDaoSupport;<br/><br/>import&nbsp;com.firstssh.common.util.PaginationSupport;<br/>@SuppressWarnings(&#34;unchecked&#34;)<br/>public&nbsp;class&nbsp;GenericDao&lt;T,&nbsp;ID&nbsp;extends&nbsp;Serializable,&nbsp;DAOImpl&nbsp;extends&nbsp;IGenericDao&lt;T,&nbsp;ID&gt;&gt;&nbsp;extends&nbsp;HibernateDaoSupport&nbsp;implements&nbsp;IGenericDao&lt;T,&nbsp;ID&gt;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;Log&nbsp;logger&nbsp;=&nbsp;LogFactory.getLog(getClass());<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;Class&lt;T&gt;&nbsp;entityClass;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;GenericDao()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;Class&nbsp;getEntityClass()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(entityClass&nbsp;==&nbsp;null)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;entityClass&nbsp;=&nbsp;(Class&lt;T&gt;)&nbsp;((ParameterizedType)&nbsp;getClass()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getGenericSuperclass()).getActualTypeArguments()[0];<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.debug(&#34;T&nbsp;class&nbsp;=&nbsp;&#34;&nbsp;+&nbsp;entityClass.getName());<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;entityClass;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;saveOrUp&#100;ate(T&nbsp;t)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.getHibernateTemplate().saveOrUp&#100;ate(t);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;T&nbsp;load(Serializable&nbsp;ID)&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T&nbsp;load&nbsp;=&nbsp;(T)&nbsp;getHibernateTemplate().load(getEntityClass(),&nbsp;ID);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;load;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;T&nbsp;get(Serializable&nbsp;ID)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T&nbsp;load&nbsp;=&nbsp;(T)&nbsp;getHibernateTemplate().get(getEntityClass(),&nbsp;ID);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;load;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;boolean&nbsp;contains(T&nbsp;t)&nbsp;throws&nbsp;DataAccessException&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;getHibernateTemplate().contains(t);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;del&#101;te(T&nbsp;t,&nbsp;LockMode&nbsp;lockMode)&nbsp;throws&nbsp;DataAccessException&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getHibernateTemplate().del&#101;te(t,&nbsp;lockMode);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;del&#101;te(T&nbsp;t)&nbsp;throws&nbsp;DataAccessException&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getHibernateTemplate().del&#101;te(t);<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;del&#101;teAll(Collection&lt;T&gt;&nbsp;entities)&nbsp;throws&nbsp;DataAccessException&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getHibernateTemplate().del&#101;teAll(entities);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;List&lt;T&gt;&nbsp;find(String&nbsp;queryString,&nbsp;Object&nbsp;value)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;DataAccessException&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;T&gt;&nbsp;find&nbsp;=&nbsp;(List&lt;T&gt;)&nbsp;getHibernateTemplate().find(queryString,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;find;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;List&lt;T&gt;&nbsp;find(String&nbsp;queryString,&nbsp;Object[]&nbsp;values)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;DataAccessException&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;T&gt;&nbsp;find&nbsp;=&nbsp;(List&lt;T&gt;)&nbsp;getHibernateTemplate().find(queryString,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;values);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;find;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;List&lt;T&gt;&nbsp;find(String&nbsp;queryString)&nbsp;throws&nbsp;DataAccessException&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(List&lt;T&gt;)&nbsp;getHibernateTemplate().find(queryString);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;List&lt;T&gt;&nbsp;findByExample(Object&nbsp;exampleEntity,&nbsp;int&nbsp;firstResult,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;maxResults)&nbsp;throws&nbsp;DataAccessException&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;getHibernateTemplate().findByExample(exampleEntity,&nbsp;firstResult,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxResults);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;List&lt;T&gt;&nbsp;findByExample(Object&nbsp;exampleEntity)&nbsp;throws&nbsp;DataAccessException&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;getHibernateTemplate().findByExample(exampleEntity);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;List&lt;T&gt;&nbsp;findByNamedParam(String&nbsp;queryString,&nbsp;String&nbsp;paramName,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;value)&nbsp;throws&nbsp;DataAccessException&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;getHibernateTemplate().findByNamedParam(queryString,&nbsp;paramName,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;List&lt;T&gt;&nbsp;findByNamedParam(String&nbsp;queryString,&nbsp;String[]&nbsp;paramNames,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object[]&nbsp;values)&nbsp;throws&nbsp;DataAccessException&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;getHibernateTemplate().findByNamedParam(queryString,&nbsp;paramNames,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;values);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Object&nbsp;load(Class&nbsp;TClass,&nbsp;Serializable&nbsp;ID,&nbsp;LockMode&nbsp;lockMode)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;DataAccessException&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;getHibernateTemplate().load(TClass,&nbsp;ID,&nbsp;lockMode);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;load(T&nbsp;t,&nbsp;Serializable&nbsp;ID)&nbsp;throws&nbsp;DataAccessException&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getHibernateTemplate().load(t,&nbsp;ID);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Object&nbsp;load(String&nbsp;TName,&nbsp;Serializable&nbsp;ID,&nbsp;LockMode&nbsp;lockMode)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;DataAccessException&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;getHibernateTemplate().load(TName,&nbsp;ID,&nbsp;lockMode);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Object&nbsp;load(String&nbsp;TName,&nbsp;Serializable&nbsp;ID)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;DataAccessException&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;getHibernateTemplate().load(TName,&nbsp;ID);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;refresh(T&nbsp;t,&nbsp;LockMode&nbsp;lockMode)&nbsp;throws&nbsp;DataAccessException&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getHibernateTemplate().refresh(t,&nbsp;lockMode);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;refresh(T&nbsp;t)&nbsp;throws&nbsp;DataAccessException&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getHibernateTemplate().refresh(t);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Serializable&nbsp;save(T&nbsp;t)&nbsp;throws&nbsp;DataAccessException&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;getHibernateTemplate().save(t);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;saveOrUp&#100;ate(String&nbsp;TName,&nbsp;T&nbsp;t)&nbsp;throws&nbsp;DataAccessException&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getHibernateTemplate().saveOrUp&#100;ate(TName,&nbsp;t);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;saveOrUp&#100;ateAll(Collection&lt;T&gt;&nbsp;entities)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;DataAccessException&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getHibernateTemplate().saveOrUp&#100;ateAll(entities);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;up&#100;ate(T&nbsp;t,&nbsp;LockMode&nbsp;lockMode)&nbsp;throws&nbsp;DataAccessException&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getHibernateTemplate().up&#100;ate(t,&nbsp;lockMode);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;up&#100;ate(T&nbsp;t)&nbsp;throws&nbsp;DataAccessException&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getHibernateTemplate().up&#100;ate(t);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;up&#100;ate(String&nbsp;TName,&nbsp;T&nbsp;t,&nbsp;LockMode&nbsp;lockMode)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;DataAccessException&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getHibernateTemplate().up&#100;ate(TName,&nbsp;t,&nbsp;lockMode);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;up&#100;ate(String&nbsp;TName,&nbsp;T&nbsp;t)&nbsp;throws&nbsp;DataAccessException&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getHibernateTemplate().up&#100;ate(TName,&nbsp;t);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;List&lt;T&gt;&nbsp;loadAll()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;getHibernateTemplate().loadAll(getEntityClass());<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;List&lt;T&gt;&nbsp;list()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Criteria&nbsp;criteria&nbsp;=&nbsp;getSession().cr&#101;ateCriteria(getEntityClass());<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;criteria.list();<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;PaginationSupport&nbsp;findPageByCriteria(<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;DetachedCriteria&nbsp;detachedCriteria,&nbsp;final&nbsp;int&nbsp;pageSize,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;int&nbsp;startIndex)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(PaginationSupport)&nbsp;getHibernateTemplate().execute(<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;HibernateCallback()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Object&nbsp;doInHibernate(Session&nbsp;session)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;HibernateException&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Criteria&nbsp;criteria&nbsp;=&nbsp;detachedCriteria<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getExecutableCriteria(session);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;totalCount&nbsp;=&nbsp;((Integer)&nbsp;criteria.setProjection(<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Projections.rowCount()).uniqueResult())<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.intValue();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;criteria.setProjection(null);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;items&nbsp;=&nbsp;criteria.setFirstResult(startIndex)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setMaxResults(pageSize).list();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PaginationSupport&nbsp;ps&nbsp;=&nbsp;new&nbsp;PaginationSupport(items,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;totalCount,&nbsp;pageSize,&nbsp;startIndex);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;ps;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},&nbsp;true);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;&nbsp;PaginationSupport&nbsp;findPageByQuery(&nbsp;final&nbsp;&nbsp;String&nbsp;hsql,&nbsp;&nbsp;final&nbsp;int&nbsp;pageSize,final&nbsp;int&nbsp;startIndex){&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(PaginationSupport)getHibernateTemplate().execute(&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;&nbsp;HibernateCallback()&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;&nbsp;Object&nbsp;doInHibernate(Session&nbsp;session)&nbsp;&nbsp;throws&nbsp;&nbsp;HibernateException,&nbsp;SQLException&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Query&nbsp;query&nbsp;&nbsp;=&nbsp;&nbsp;session.cr&#101;ateQuery(hsql);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;totalCount=query.list().size();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;query.setFirstResult(startIndex);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;query.setMaxResults(pageSize);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;items&nbsp;&nbsp;=&nbsp;query.list();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PaginationSupport&nbsp;ps&nbsp;=&nbsp;new&nbsp;PaginationSupport(items,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;totalCount,&nbsp;pageSize,&nbsp;startIndex);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;ps;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},true);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>}<br/><br/><br/>呵呵，使用了泛型,以后每建立一个Dao都要建立相应的dao接口和实现类，如本例中的IUserDao和UserDao。<br/><br/>&nbsp;<br/>/**&nbsp;*//**&nbsp;<br/>&nbsp;*<br/>&nbsp;*&nbsp;@author&nbsp;&lt;a&nbsp;href=&#34;mailto:flustar2008@163.com&#34;&gt;flustar&lt;/a&gt;<br/>&nbsp;*&nbsp;@version&nbsp;1.0&nbsp;<br/>&nbsp;*&nbsp;Creation&nbsp;date:&nbsp;Dec&nbsp;24,&nbsp;2007&nbsp;12:47:57&nbsp;AM<br/>&nbsp;*/<br/>package&nbsp;com.firstssh.dao;<br/><br/>import&nbsp;java.util.List;<br/><br/>import&nbsp;com.firstssh.common.dao.IGenericDao;<br/>import&nbsp;com.firstssh.model.User;<br/><br/>public&nbsp;interface&nbsp;IUserDao&nbsp;extends&nbsp;IGenericDao&lt;User,&nbsp;Long&gt;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;User&nbsp;getUserByName(String&nbsp;username);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;List&lt;User&gt;&nbsp;findAllUser();<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;User&nbsp;findUserByNameAndPass(String&nbsp;username,&nbsp;String&nbsp;password);<br/>}&nbsp;<br/><br/>&nbsp;<br/><br/>&nbsp;<br/>/**&nbsp;*//**&nbsp;<br/>&nbsp;*<br/>&nbsp;*&nbsp;@author&nbsp;&lt;a&nbsp;href=&#34;mailto:flustar2008@163.com&#34;&gt;flustar&lt;/a&gt;<br/>&nbsp;*&nbsp;@version&nbsp;1.0&nbsp;<br/>&nbsp;*&nbsp;Creation&nbsp;date:&nbsp;Dec&nbsp;24,&nbsp;2007&nbsp;12:38:48&nbsp;AM<br/>&nbsp;*/<br/>package&nbsp;com.firstssh.dao.impl;<br/><br/>import&nbsp;java.util.List;<br/><br/>import&nbsp;com.firstssh.common.dao.GenericDao;<br/>import&nbsp;com.firstssh.dao.IUserDao;<br/>import&nbsp;com.firstssh.model.User;<br/><br/>public&nbsp;class&nbsp;UserDao&nbsp;extends&nbsp;GenericDao&lt;User,Long,IUserDao&gt;&nbsp;implements&nbsp;IUserDao{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;List&lt;User&gt;&nbsp;findAllUser()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(List&lt;User&gt;)find(&#34;from&nbsp;User&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;User&nbsp;findUserByNameAndPass(String&nbsp;username,&nbsp;String&nbsp;password)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object[]&nbsp;params=new&nbsp;Object[]{username,password};<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;User&gt;&nbsp;userList=find(&#34;from&nbsp;User&nbsp;as&nbsp;user&nbsp;wh&#101;re&nbsp;user.username=?&nbsp;and&nbsp;user.password=?&nbsp;&#34;,params);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(userList!=null&amp;&amp;userList.size()&gt;=1){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;userList.get(0);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;null;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;User&nbsp;getUserByName(String&nbsp;username)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;User&gt;&nbsp;userList=find(&#34;from&nbsp;User&nbsp;as&nbsp;user&nbsp;wh&#101;re&nbsp;user.username=?&#34;,username);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(userList!=null&amp;&amp;userList.size()&gt;=1){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;userList.get(0);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;null;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>}</span>]]></description>
		</item>
		
			<item>
			<link>http://www.java125.cn/default.asp?id=2465</link>
			<title><![CDATA[java搜索引擎学习笔记 COMPASS]]></title>
			<author>zhangjunjie0915@gmail.com(admin)</author>
			<category><![CDATA[Java实例源码]]></category>
			<pubDate>Sun,23 Dec 2007 17:20:36 +0800</pubDate>
			<guid>http://www.java125.cn/default.asp?id=2465</guid>	
		<description><![CDATA[<span style="font-size:10pt">最近看研究了一下搜索引擎(COMPASS)，学到的东西不多，但还是把所学的东西在这里记录一下，本人用的是COMPASS1.2<br/>下载地址：<a href="https://compass.dev.java.net/files/documents/4669/71790/compass-1.2-with-dependencies.zip" target="_blank">https://compass.dev.java.net/files/documents/4669/71790/compass-1.2-with-dependencies.zip</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;本人用的是里面带的一个例子(petclinic)，主要的配置文件有：petclinic-servlet.xml,&nbsp;applicationContext-hibernate.xml,petclinic-cpm.xml,petclinic-cmd.xml,petclinic&nbsp;-hbm.xml,compass.cfg.xml(查找资料后，为了用paoding中文分词而加上)。<br/>注：配置文件中的注释都是网上资料或本人对其的理解，如果有误还请指教，以免误导学习者。<br/>petclinic-servlet.xml:<br/>&nbsp;&nbsp;1&nbsp;&lt;?xml&nbsp;version=&#34;1.0&#34;&nbsp;encoding=&#34;UTF-8&#34;&nbsp;?&gt;<br/>&nbsp;&nbsp;2&nbsp;&lt;!DOCTYPE&nbsp;beans&nbsp;PUBLIC&nbsp;&#34;-//SPRING//DTD&nbsp;BEAN//EN&#34;&nbsp;&#34;<a href="http://www.springframework.org/dtd/spring-beans.dtd" target="_blank">http://www.springframework.org/dtd/spring-beans.dtd</a>&#34;&gt;<br/>&nbsp;&nbsp;3&nbsp;&lt;beans&gt;<br/>&nbsp;&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;=========================&nbsp;消息来源定义&nbsp;=========================&nbsp;--&gt;<br/>&nbsp;&nbsp;5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;加载&#34;/WEB-INF/classes&#34;目录下messages*.properties文件&nbsp;--&gt;<br/>&nbsp;&nbsp;6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;messageSource&#34;&nbsp;class=&#34;org.springframework.context.support.ResourceBundleMessageSource&#34;&gt;<br/>&nbsp;&nbsp;7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;basename&#34;&gt;&lt;value&gt;messages&lt;/value&gt;&lt;/property&gt;<br/>&nbsp;&nbsp;8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>&nbsp;&nbsp;9&nbsp;<br/>&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;=========================&nbsp;映射定义&nbsp;=============================&nbsp;--&gt;<br/>&nbsp;11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;加载&#34;/WEB-INF/classes&#34;目录下views.properties文件&nbsp;--&gt;<br/>&nbsp;12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;viewResolver&#34;&nbsp;class=&#34;org.springframework.web.servlet.view.ResourceBundleViewResolver&#34;&gt;<br/>&nbsp;13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;basename&#34;&gt;&lt;value&gt;views&lt;/value&gt;&lt;/property&gt;<br/>&nbsp;14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>&nbsp;15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;定义异常处理VIEW&nbsp;--&gt;<br/>&nbsp;16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;exceptionResolver&#34;&nbsp;class=&#34;org.springframework.web.servlet.handler.SimpleMappingExceptionResolver&#34;&gt;<br/>&nbsp;17&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;exceptionMappings&#34;&gt;<br/>&nbsp;18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;props&gt;<br/>&nbsp;19&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;org.compass.core.CompassException&#34;&gt;dataAccessFailure&lt;/prop&gt;<br/>&nbsp;20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;org.springframework.dao.DataAccessException&#34;&gt;dataAccessFailure&lt;/prop&gt;<br/>&nbsp;21&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;org.springframework.transaction.TransactionException&#34;&gt;dataAccessFailure&lt;/prop&gt;<br/>&nbsp;22&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/props&gt;<br/>&nbsp;23&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;24&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>&nbsp;25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;定义url映射&nbsp;--&gt;<br/>&nbsp;26&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;urlMapping&#34;&nbsp;class=&#34;org.springframework.web.servlet.handler.SimpleUrlHandlerMapping&#34;&gt;<br/>&nbsp;27&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;mappings&#34;&gt;<br/>&nbsp;28&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;props&gt;<br/>&nbsp;29&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;/welcome.htm&#34;&gt;clinicController&lt;/prop&gt;<br/>&nbsp;30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;/tutorial.htm&#34;&gt;clinicController&lt;/prop&gt;<br/>&nbsp;31&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;/spring-tutorial.htm&#34;&gt;clinicController&lt;/prop&gt;<br/>&nbsp;32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;/vets.htm&#34;&gt;clinicController&lt;/prop&gt;<br/>&nbsp;33&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;/findOwners.htm&#34;&gt;findOwnersForm&lt;/prop&gt;<br/>&nbsp;34&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;/owner.htm&#34;&gt;clinicController&lt;/prop&gt;<br/>&nbsp;35&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;/addOwner.htm&#34;&gt;addOwnerForm&lt;/prop&gt;<br/>&nbsp;36&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;/editOwner.htm&#34;&gt;editOwnerForm&lt;/prop&gt;<br/>&nbsp;37&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;/addPet.htm&#34;&gt;addPetForm&lt;/prop&gt;<br/>&nbsp;38&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;/editPet.htm&#34;&gt;editPetForm&lt;/prop&gt;<br/>&nbsp;39&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;/addVisit.htm&#34;&gt;addVisitForm&lt;/prop&gt;<br/>&nbsp;40&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;/search.htm&#34;&gt;searchController&lt;/prop&gt;<br/>&nbsp;41&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;/index.htm&#34;&gt;indexController&lt;/prop&gt;<br/>&nbsp;42&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/props&gt;<br/>&nbsp;43&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;44&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>&nbsp;45&nbsp;<br/>&nbsp;46&nbsp;<br/>&nbsp;47&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;=========================&nbsp;控制器定义&nbsp;=========================&nbsp;--&gt;<br/>&nbsp;48&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;compassSearchHelper&#34;&nbsp;class=&#34;org.compass.sample.petclinic.CompassSearchHelper&#34;&gt;<br/>&nbsp;49&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;highlightFields&#34;&gt;<br/>&nbsp;50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;list&gt;<br/>&nbsp;51&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;description&lt;/value&gt;<br/>&nbsp;52&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/list&gt;<br/>&nbsp;53&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;54&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;pageSize&#34;&gt;&lt;value&gt;10&lt;/value&gt;&lt;/property&gt;<br/>&nbsp;55&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;constructor-arg&nbsp;ref=&#34;compass&#34;/&gt;<br/>&nbsp;56&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>&nbsp;57&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;搜索控制器定义&nbsp;--&gt;<br/>&nbsp;58&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;searchController&#34;&nbsp;class=&#34;org.compass.spring.web.mvc.CompassSearchController&#34;&gt;<br/>&nbsp;59&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;compass&#34;&gt;&lt;ref&nbsp;bean=&#34;compass&#34;/&gt;&lt;/property&gt;<br/>&nbsp;60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;searchView&#34;&gt;&lt;value&gt;searchView&lt;/value&gt;&lt;/property&gt;<br/>&nbsp;61&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;searchResultsView&#34;&gt;&lt;value&gt;searchResultsView&lt;/value&gt;&lt;/property&gt;<br/>&nbsp;62&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;pageSize&#34;&gt;&lt;value&gt;10&lt;/value&gt;&lt;/property&gt;<br/>&nbsp;63&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;searchHelper&#34;&gt;&lt;ref&nbsp;local=&#34;advanceCompassSearchHelper&#34;/&gt;&lt;/property&gt;<br/>&nbsp;64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>&nbsp;65&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;索引控制器定义&nbsp;--&gt;<br/>&nbsp;66&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;indexController&#34;&nbsp;class=&#34;org.compass.spring.web.mvc.CompassIndexController&#34;&gt;<br/>&nbsp;67&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;compassGps&#34;&gt;&lt;ref&nbsp;bean=&#34;compassGps&#34;/&gt;&lt;/property&gt;<br/>&nbsp;68&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;indexView&#34;&gt;&lt;value&gt;indexView&lt;/value&gt;&lt;/property&gt;<br/>&nbsp;69&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;indexResultsView&#34;&gt;&lt;value&gt;indexResultsView&lt;/value&gt;&lt;/property&gt;<br/>&nbsp;70&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>&nbsp;71&nbsp;<br/>&nbsp;72&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;定义clinic控制器&nbsp;--&gt;<br/>&nbsp;73&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;clinicController&#34;&nbsp;class=&#34;org.compass.sample.petclinic.web.ClinicController&#34;&gt;<br/>&nbsp;74&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;methodNameResolver&#34;&gt;&lt;ref&nbsp;local=&#34;clinicControllerResolver&#34;/&gt;&lt;/property&gt;<br/>&nbsp;75&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;clinic&#34;&gt;&lt;ref&nbsp;bean=&#34;clinic&#34;/&gt;&lt;/property&gt;<br/>&nbsp;76&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>&nbsp;77&nbsp;<br/>&nbsp;78&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;&nbsp;--&gt;<br/>&nbsp;79&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;clinicControllerResolver&#34;&nbsp;class=&#34;org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver&#34;&gt;<br/>&nbsp;80&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;mappings&#34;&gt;<br/>&nbsp;81&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;props&gt;<br/>&nbsp;82&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;/welcome.htm&#34;&gt;welcomeHandler&lt;/prop&gt;<br/>&nbsp;83&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;/tutorial.htm&#34;&gt;tutorialHandler&lt;/prop&gt;<br/>&nbsp;84&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;/spring-tutorial.htm&#34;&gt;springTutorialHandler&lt;/prop&gt;<br/>&nbsp;85&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;/vets.htm&#34;&gt;vetsHandler&lt;/prop&gt;<br/>&nbsp;86&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;/owner.htm&#34;&gt;ownerHandler&lt;/prop&gt;<br/>&nbsp;87&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/props&gt;<br/>&nbsp;88&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;89&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>&nbsp;90&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;定义FORM&nbsp;--&gt;<br/>&nbsp;91&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;findOwnersForm&#34;&nbsp;class=&#34;org.compass.sample.petclinic.web.FindOwnersForm&#34;&gt;<br/>&nbsp;92&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;formView&#34;&gt;&lt;value&gt;findOwnersForm&lt;/value&gt;&lt;/property&gt;<br/>&nbsp;93&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;sel&#101;ctView&#34;&gt;&lt;value&gt;sel&#101;ctOwnerView&lt;/value&gt;&lt;/property&gt;<br/>&nbsp;94&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;successView&#34;&gt;&lt;value&gt;ownerRedirect&lt;/value&gt;&lt;/property&gt;<br/>&nbsp;95&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;clinic&#34;&gt;&lt;ref&nbsp;bean=&#34;clinic&#34;/&gt;&lt;/property&gt;<br/>&nbsp;96&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>&nbsp;97&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;定义FORM&nbsp;--&gt;<br/>&nbsp;98&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;addOwnerForm&#34;&nbsp;class=&#34;org.compass.sample.petclinic.web.AddOwnerForm&#34;&gt;<br/>&nbsp;99&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;formView&#34;&gt;&lt;value&gt;ownerForm&lt;/value&gt;&lt;/property&gt;<br/>100&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;successView&#34;&gt;&lt;value&gt;ownerRedirect&lt;/value&gt;&lt;/property&gt;<br/>101&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;validator&#34;&gt;&lt;ref&nbsp;local=&#34;ownerValidator&#34;/&gt;&lt;/property&gt;<br/>102&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;clinic&#34;&gt;&lt;ref&nbsp;bean=&#34;clinic&#34;/&gt;&lt;/property&gt;<br/>103&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>104&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;editOwnerForm&#34;&nbsp;class=&#34;org.compass.sample.petclinic.web.EditOwnerForm&#34;&gt;<br/>105&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;formView&#34;&gt;&lt;value&gt;ownerForm&lt;/value&gt;&lt;/property&gt;<br/>106&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;successView&#34;&gt;&lt;value&gt;ownerRedirect&lt;/value&gt;&lt;/property&gt;<br/>107&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;validator&#34;&gt;&lt;ref&nbsp;local=&#34;ownerValidator&#34;/&gt;&lt;/property&gt;<br/>108&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;clinic&#34;&gt;&lt;ref&nbsp;bean=&#34;clinic&#34;/&gt;&lt;/property&gt;<br/>109&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>110&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;ownerValidator&#34;&nbsp;class=&#34;org.compass.sample.petclinic.validation.OwnerValidator&#34;/&gt;<br/>111&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;addPetForm&#34;&nbsp;class=&#34;org.compass.sample.petclinic.web.AddPetForm&#34;&gt;<br/>112&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;formView&#34;&gt;&lt;value&gt;petForm&lt;/value&gt;&lt;/property&gt;<br/>113&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;successView&#34;&gt;&lt;value&gt;ownerRedirect&lt;/value&gt;&lt;/property&gt;<br/>114&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;validator&#34;&gt;&lt;ref&nbsp;local=&#34;petValidator&#34;/&gt;&lt;/property&gt;<br/>115&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;clinic&#34;&gt;&lt;ref&nbsp;bean=&#34;clinic&#34;/&gt;&lt;/property&gt;<br/>116&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>117&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;editPetForm&#34;&nbsp;class=&#34;org.compass.sample.petclinic.web.EditPetForm&#34;&gt;<br/>118&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;formView&#34;&gt;&lt;value&gt;petForm&lt;/value&gt;&lt;/property&gt;<br/>119&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;successView&#34;&gt;&lt;value&gt;ownerRedirect&lt;/value&gt;&lt;/property&gt;<br/>120&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;validator&#34;&gt;&lt;ref&nbsp;local=&#34;petValidator&#34;/&gt;&lt;/property&gt;<br/>121&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;clinic&#34;&gt;&lt;ref&nbsp;bean=&#34;clinic&#34;/&gt;&lt;/property&gt;<br/>122&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>123&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;petValidator&#34;&nbsp;class=&#34;org.compass.sample.petclinic.validation.PetValidator&#34;/&gt;<br/>124&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;定义FORM，用了visitValidatro和clinic属性&nbsp;--&gt;<br/>125&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;addVisitForm&#34;&nbsp;class=&#34;org.compass.sample.petclinic.web.AddVisitForm&#34;&gt;<br/>126&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;formView&#34;&gt;&lt;value&gt;visitForm&lt;/value&gt;&lt;/property&gt;<br/>127&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;successView&#34;&gt;&lt;value&gt;ownerRedirect&lt;/value&gt;&lt;/property&gt;<br/>128&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;validator&#34;&gt;&lt;ref&nbsp;local=&#34;visitValidator&#34;/&gt;&lt;/property&gt;<br/>129&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;clinic&#34;&gt;&lt;ref&nbsp;bean=&#34;clinic&#34;/&gt;&lt;/property&gt;<br/>130&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>131&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;定义bean属性&nbsp;--&gt;<br/>132&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;visitValidator&#34;&nbsp;class=&#34;org.compass.sample.petclinic.validation.VisitValidator&#34;/&gt;<br/>133&nbsp;&lt;/beans&gt;<br/>applicationContext-hibernate.xml:<br/>&nbsp;&nbsp;1&nbsp;&lt;?xml&nbsp;version=&#34;1.0&#34;&nbsp;encoding=&#34;UTF-8&#34;?&gt;<br/>&nbsp;&nbsp;2&nbsp;&lt;!DOCTYPE&nbsp;beans&nbsp;PUBLIC&nbsp;&#34;-//SPRING//DTD&nbsp;BEAN//EN&#34;&nbsp;&#34;<a href="http://www.springframework.org/dtd/spring-beans.dtd" target="_blank">http://www.springframework.org/dtd/spring-beans.dtd</a>&#34;&gt;<br/>&nbsp;&nbsp;3&nbsp;&lt;beans&gt;<br/>&nbsp;&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;=========================&nbsp;JDBC资源文件定义&nbsp;=========================&nbsp;--&gt;<br/>&nbsp;&nbsp;5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;propertyConfigurer&#34;&nbsp;class=&#34;org.springframework.beans.factory.config.PropertyPlaceholderConfigurer&#34;&gt;<br/>&nbsp;&nbsp;6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;location&#34;&gt;&lt;value&gt;/WEB-INF/jdbc.properties&lt;/value&gt;&lt;/property&gt;<br/>&nbsp;&nbsp;7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>&nbsp;&nbsp;8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;定义数据源&nbsp;--&gt;<br/>&nbsp;&nbsp;9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;dataSource&#34;&nbsp;class=&#34;org.springframework.jdbc.datasource.DriverManagerDataSource&#34;&gt;<br/>&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;driverClassName&#34;&gt;&lt;value&gt;${jdbc.driverClassName}&lt;/value&gt;&lt;/property&gt;<br/>&nbsp;11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;url&#34;&gt;&lt;value&gt;${jdbc.url}&lt;/value&gt;&lt;/property&gt;<br/>&nbsp;12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;username&#34;&gt;&lt;value&gt;${jdbc.username}&lt;/value&gt;&lt;/property&gt;<br/>&nbsp;13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;password&#34;&gt;&lt;value&gt;${jdbc.password}&lt;/value&gt;&lt;/property&gt;<br/>&nbsp;14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>&nbsp;15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;定义Hibernate的SessionFactory&nbsp;--&gt;<br/>&nbsp;16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;sessionFactory&#34;&nbsp;class=&#34;org.springframework.orm.hibernate3.LocalSessionFactoryBean&#34;&gt;<br/>&nbsp;17&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;dataSource&#34;&gt;&lt;ref&nbsp;local=&#34;dataSource&#34;/&gt;&lt;/property&gt;<br/>&nbsp;18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;mappingResources&#34;&gt;<br/>&nbsp;19&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;petclinic.hbm.xml&lt;/value&gt;<br/>&nbsp;20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;21&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;hibernateProperties&#34;&gt;<br/>&nbsp;22&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;props&gt;<br/>&nbsp;23&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;hibernate.dialect&#34;&gt;${hibernate.dialect}&lt;/prop&gt;<br/>&nbsp;24&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;hibernate.show_sql&#34;&gt;true&lt;/prop&gt;<br/>&nbsp;25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;hibernate.generate_statistics&#34;&gt;true&lt;/prop&gt;<br/>&nbsp;26&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/props&gt;<br/>&nbsp;27&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;28&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;eventListeners&#34;&gt;<br/>&nbsp;29&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;map&gt;<br/>&nbsp;30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;entry&nbsp;key=&#34;merge&#34;&gt;<br/>&nbsp;31&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;class=&#34;org.springframework.orm.hibernate3.support.IdTransferringMergeEventListener&#34;/&gt;<br/>&nbsp;32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/entry&gt;<br/>&nbsp;33&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/map&gt;<br/>&nbsp;34&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;35&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>&nbsp;36&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;COMPASS相关配置&nbsp;--&gt;<br/>&nbsp;37&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;compass&#34;&nbsp;class=&#34;org.compass.spring.LocalCompassBean&#34;&gt;<br/>&nbsp;38&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;resourceLocations&#34;&gt;<br/>&nbsp;39&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;list&gt;<br/>&nbsp;40&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;这里是compass所需要的两个关于数据项的配置文件&nbsp;--&gt;<br/>&nbsp;41&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;classpath:org/compass/sample/petclinic/petclinic.cmd.xml&lt;/value&gt;<br/>&nbsp;42&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;classpath:petclinic.cpm.xml&lt;/value&gt;<br/>&nbsp;43&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/list&gt;<br/>&nbsp;44&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;45&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;configLocation&#34;&gt;<br/>&nbsp;46&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;classpath:compass.cfg.xml&lt;/value&gt;<br/>&nbsp;47&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;48&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;compassSettings&#34;&gt;<br/>&nbsp;49&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;props&gt;<br/>&nbsp;50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;索引文件在服务器上的存储路径&nbsp;--&gt;<br/>&nbsp;51&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;加亮显示&nbsp;--&gt;<br/>&nbsp;52&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;compass.engine.highlighter.default.formatter.simple.pre&#34;&gt;<br/>&nbsp;53&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;![CDATA[&lt;font&nbsp;color=&#34;red&#34;&gt;&lt;b&gt;]]&gt;<br/>&nbsp;54&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/prop&gt;<br/>&nbsp;55&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;compass.engine.highlighter.default.formatter.simple.post&#34;&gt;<br/>&nbsp;56&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;![CDATA[&lt;/b&gt;&lt;/font&gt;]]&gt;<br/>&nbsp;57&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/prop&gt;<br/>&nbsp;58&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/props&gt;<br/>&nbsp;59&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;transactionManager&#34;&gt;<br/>&nbsp;61&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ref&nbsp;local=&#34;transactionManager&#34;&nbsp;/&gt;<br/>&nbsp;62&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;63&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>&nbsp;64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;65&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;queryAnalyzer&#34;&nbsp;class=&#34;net.paoding.analysis.analyzer.PaodingAnalyzer&#34;&gt;<br/>&nbsp;66&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;&nbsp;<br/>&nbsp;67&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;68&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;69&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;与hibernate的绑定，用Hibernate3事件系统,支持Real&nbsp;Time&nbsp;Data&nbsp;Mirroring.经Hiberante的数据改变会自动被反射到索引里面&nbsp;--&gt;<br/>&nbsp;70&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&lt;bean&nbsp;id=&#34;hibernateGpsDevice&#34;&nbsp;class=&#34;org.compass.spring.device.hibernate.dep.SpringHibernate3GpsDevice&#34;&gt;--&gt;<br/>&nbsp;71&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;hibernateGpsDevice&#34;&nbsp;class=&#34;org.compass.gps.device.hibernate.HibernateGpsDevice&#34;&gt;<br/>&nbsp;72&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;name&#34;&gt;&lt;value&gt;hibernateDevice&lt;/value&gt;&lt;/property&gt;<br/>&nbsp;73&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;sessionFactory&#34;&gt;&lt;ref&nbsp;local=&#34;sessionFactory&#34;&nbsp;/&gt;&lt;/property&gt;<br/>&nbsp;74&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;nativeExtractor&#34;&gt;&lt;bean&nbsp;class=&#34;org.compass.spring.device.hibernate.SpringNativeHibernateExtractor&#34;&nbsp;/&gt;&lt;/property&gt;<br/>&nbsp;75&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>&nbsp;76&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;Compass中建立索引与mirror&nbsp;database&nbsp;change的部件，定义了init-method&nbsp;和destory-method，<br/>&nbsp;77&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;会自动随ApplicaitonContext的启动，开始监控Hibernate的变化，经Hiberante的数据改变会自动被反射到索引里面&nbsp;--&gt;<br/>&nbsp;78&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;compassGps&#34;&nbsp;class=&#34;org.compass.gps.impl.SingleCompassGps&#34;&nbsp;init-method=&#34;start&#34;&nbsp;destroy-method=&#34;stop&#34;&gt;<br/>&nbsp;79&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;compass&#34;&gt;&lt;ref&nbsp;bean=&#34;compass&#34;&nbsp;/&gt;&lt;/property&gt;<br/>&nbsp;80&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;gpsDevices&#34;&gt;<br/>&nbsp;81&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;list&gt;<br/>&nbsp;82&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;class=&#34;org.compass.spring.device.SpringSyncTransactionGpsDeviceWrapper&#34;&gt;<br/>&nbsp;83&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;gpsDevice&#34;&nbsp;ref=&#34;hibernateGpsDevice&#34;&nbsp;/&gt;<br/>&nbsp;84&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>&nbsp;85&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/list&gt;<br/>&nbsp;86&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>&nbsp;87&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>&nbsp;88&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;定义事务处理交于hibernate3&nbsp;--&gt;<br/>&nbsp;89&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;transactionManager&#34;&nbsp;class=&#34;org.springframework.orm.hibernate3.HibernateTransactionManager&#34;&gt;<br/>&nbsp;90&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;sessionFactory&#34;&gt;&lt;ref&nbsp;local=&#34;sessionFactory&#34;/&gt;&lt;/property&gt;<br/>&nbsp;91&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>&nbsp;92&nbsp;<br/>&nbsp;93&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;=========================&nbsp;业务对象相关定义&nbsp;=========================&nbsp;--&gt;<br/>&nbsp;94&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;clinicTarget&#34;&nbsp;class=&#34;org.compass.sample.petclinic.hibernate.HibernateClinic&#34;&gt;<br/>&nbsp;95&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;sessionFactory&#34;&gt;&lt;ref&nbsp;local=&#34;sessionFactory&#34;/&gt;&lt;/property&gt;<br/>&nbsp;96&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>&nbsp;97&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;定义拦截器&nbsp;--&gt;<br/>&nbsp;98&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;clinic&#34;&nbsp;class=&#34;org.springframework.transaction.interceptor.TransactionProxyFactoryBean&#34;&gt;<br/>&nbsp;99&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;transactionManager&#34;&gt;&lt;ref&nbsp;local=&#34;transactionManager&#34;/&gt;&lt;/property&gt;<br/>100&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;target&#34;&gt;&lt;ref&nbsp;local=&#34;clinicTarget&#34;/&gt;&lt;/property&gt;<br/>101&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;transactionAttributes&#34;&gt;<br/>102&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;props&gt;<br/>103&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;get*&#34;&gt;PROPAGATION_REQUIRED,readOnly&lt;/prop&gt;<br/>104&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;find*&#34;&gt;PROPAGATION_REQUIRED,readOnly&lt;/prop&gt;<br/>105&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;load*&#34;&gt;PROPAGATION_REQUIRED,readOnly&lt;/prop&gt;<br/>106&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;store*&#34;&gt;PROPAGATION_REQUIRED&lt;/prop&gt;<br/>107&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/props&gt;<br/>108&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>109&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/>110&nbsp;&lt;/beans&gt;<br/>compass.cfg.xml:<br/>&nbsp;1&nbsp;&lt;?xml&nbsp;version=&#34;1.0&#34;&nbsp;encoding=&#34;UTF-8&#34;?&gt;<br/>&nbsp;2&nbsp;&lt;compass-core-config<br/>&nbsp;3&nbsp;&nbsp;xmlns=&#34;<a href="http://www.opensymphony.com/compass/schema/core-config" target="_blank">http://www.opensymphony.com/compass/schema/core-config</a>&#34;<br/>&nbsp;4&nbsp;&nbsp;xmlns:xsi=&#34;<a href="http://www.w3.org/2001/XMLSchema-instance" target="_blank">http://www.w3.org/2001/XMLSchema-instance</a>&#34;<br/>&nbsp;5&nbsp;&nbsp;xsi:schemaLocation=&#34;<a href="http://www.opensymphony.com/compass/schema/core-config" target="_blank">http://www.opensymphony.com/compass/schema/core-config</a><br/>&nbsp;6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.opensymphony.com/compass/schema/compass-core-config.xsd" target="_blank">http://www.opensymphony.com/compass/schema/compass-core-config.xsd</a>&#34;&gt;<br/>&nbsp;7&nbsp;<br/>&nbsp;8&nbsp;&lt;compass&nbsp;name=&#34;default&#34;&gt;&nbsp;<br/>&nbsp;9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;connection&gt;<br/>10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;file&nbsp;path=&#34;/${user.home}/compass&#34;&nbsp;/&gt;&nbsp;&lt;!--&nbsp;这里是索引文件的存放路径&nbsp;--&gt;<br/>11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/connection&gt;<br/>12&nbsp;<br/>13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;searchEngine&gt;<br/>14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;因是使用自己的分词算法，所以这里的类型必须是CustomAnalyzer&nbsp;--&gt;<br/>15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;analyzer&nbsp;name=&#34;paodingAnalyer&#34;&nbsp;type=&#34;CustomAnalyzer&#34;&nbsp;analyzerClass=&#34;net.paoding.analysis.analyzer.PaodingAnalyzer&#34;&gt;<br/>16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;stopWords&gt;<br/>17&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;stopWord&nbsp;value=&#34;test&#34;&nbsp;/&gt;<br/>18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/stopWords&gt;<br/>19&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/analyzer&gt;<br/>20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/searchEngine&gt;<br/>21&nbsp;<br/>22&nbsp;&nbsp;&lt;/compass&gt;<br/>23&nbsp;&lt;/compass-core-config&gt;<br/>petclinic-cpm.xml(列出部分):<br/>&nbsp;1&nbsp;&lt;?xml&nbsp;version=&#34;1.0&#34;?&gt;<br/>&nbsp;2&nbsp;&lt;!DOCTYPE&nbsp;compass-core-mapping&nbsp;PUBLIC<br/>&nbsp;3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;-//Compass/Compass&nbsp;Core&nbsp;Mapping&nbsp;DTD&nbsp;1.0//EN&#34;<br/>&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;<a href="http://www.opensymphony.com/compass/dtd/compass-core-mapping.dtd" target="_blank">http://www.opensymphony.com/compass/dtd/compass-core-mapping.dtd</a>&#34;&gt;<br/>&nbsp;5&nbsp;<br/>&nbsp;6&nbsp;&lt;!--&nbsp;这里的包名必须和pojo的包名一致&nbsp;--&gt;<br/>&nbsp;7&nbsp;&lt;compass-core-mapping&nbsp;package=&#34;org.compass.sample.petclinic&#34;&gt;<br/>&nbsp;8&nbsp;<br/>&nbsp;9&nbsp;&lt;!--&nbsp;定义实体及其字段的对应关系&nbsp;--&gt;<br/>10&nbsp;<br/>11&nbsp;&lt;!--&nbsp;注意实体及其字段的名称的大小写应当与pojo对象一致，而不是与数据库一致<br/>12&nbsp;&nbsp;&nbsp;关于pojo与数据库的对应表的一致性关系由hibernate的映谢文件定义，而不是这个文件<br/>13&nbsp;&nbsp;&nbsp;当前映射文件只定义compass与hibernate的关系&nbsp;--&gt;<br/>14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;contract&nbsp;alias=&#34;entity&#34;&gt;<br/>15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;id&nbsp;name=&#34;id&#34;&nbsp;/&gt;<br/>16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/contract&gt;<br/>17&nbsp;<br/>18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;contract&nbsp;alias=&#34;named-entity&#34;&nbsp;extends=&#34;entity&#34;&gt;<br/>19&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;name&#34;&gt;<br/>20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;meta-data&gt;${petclinic.name}&lt;/meta-data&gt;<br/>21&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>22&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/contract&gt;<br/>23&nbsp;<br/>24&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;contract&nbsp;alias=&#34;person&#34;&nbsp;extends=&#34;entity&#34;&gt;<br/>25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;firstName&#34;&gt;<br/>26&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;meta-data&gt;${petclinic.firstName}&lt;/meta-data&gt;<br/>27&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>28&nbsp;<br/>29&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;lastName&#34;&gt;<br/>30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;meta-data&gt;${petclinic.lastName}&lt;/meta-data&gt;<br/>31&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>32&nbsp;<br/>33&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;address&#34;&gt;<br/>34&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;meta-data&gt;${petclinic.address}&lt;/meta-data&gt;<br/>35&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>36&nbsp;<br/>37&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;city&#34;&gt;<br/>38&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;meta-data&gt;${petclinic.city}&lt;/meta-data&gt;<br/>39&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>40&nbsp;<br/>41&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;telephone&#34;&gt;<br/>42&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;meta-data&gt;${petclinic.telephone}&lt;/meta-data&gt;<br/>43&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/>44&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/contract&gt;<br/>45&nbsp;<br/>petclinic-cmd.xml(列出部分)：<br/>&nbsp;1&nbsp;&lt;?xml&nbsp;version=&#34;1.0&#34;?&gt;<br/>&nbsp;2&nbsp;&lt;!DOCTYPE&nbsp;compass-core-meta-data&nbsp;PUBLIC&nbsp;<br/>&nbsp;3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;-//Compass/Compass&nbsp;Core&nbsp;Meta&nbsp;Data&nbsp;DTD&nbsp;1.0//EN&#34;<br/>&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;<a href="http://www.opensymphony.com/compass/dtd/compass-core-meta-data.dtd" target="_blank">http://www.opensymphony.com/compass/dtd/compass-core-meta-data.dtd</a>&#34;&gt;<br/>&nbsp;5&nbsp;<br/>&nbsp;6&nbsp;&lt;compass-core-meta-data&gt;<br/>&nbsp;7&nbsp;<br/>&nbsp;8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;定义一个实体和字段组--&gt;<br/>&nbsp;9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;meta-data-group&nbsp;id=&#34;petclinic&#34;&nbsp;displayName=&#34;Petclinic&nbsp;Meta&nbsp;Data&#34;&gt;<br/>10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;description&gt;Petclinic&nbsp;Meta&nbsp;Data&lt;/description&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;uri&gt;<a href="http://compass/sample/petclinic" target="_blank">http://compass/sample/petclinic</a>&lt;/uri&gt;<br/>13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;申明所有需要检索的实体--&gt;&nbsp;<br/>15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;alias&nbsp;id=&#34;vet&#34;&nbsp;displayName=&#34;Vet&#34;&gt;<br/>16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;description&gt;Vet&nbsp;alias&lt;/description&gt;<br/>17&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;uri&gt;<a href="http://compass/sample/petclinic" target="_blank">http://compass/sample/petclinic</a>/alias/vet&lt;/uri&gt;<br/>18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;vet&lt;/name&gt;<br/>19&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/alias&gt;<br/>20&nbsp;<br/>21&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;alias&nbsp;id=&#34;pet&#34;&nbsp;displayName=&#34;Pet&#34;&gt;<br/>22&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;description&gt;Pet&nbsp;alias&lt;/description&gt;<br/>23&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;uri&gt;<a href="http://compass/sample/petclinic" target="_blank">http://compass/sample/petclinic</a>/alias/pet&lt;/uri&gt;<br/>24&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;pet&lt;/name&gt;<br/>25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/alias&gt;<br/>26&nbsp;<br/>27&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;alias&nbsp;id=&#34;owner&#34;&nbsp;displayName=&#34;Owner&#34;&gt;<br/>28&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;description&gt;Owner&nbsp;alias&lt;/description&gt;<br/>29&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;uri&gt;<a href="http://compass/sample/petclinic" target="_blank">http://compass/sample/petclinic</a>/alias/owner&lt;/uri&gt;<br/>30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;owner&lt;/name&gt;<br/>31&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/alias&gt;<br/>32&nbsp;<br/>33&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;alias&nbsp;id=&#34;visit&#34;&nbsp;displayName=&#34;Visit&#34;&gt;<br/>34&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;description&gt;Visit&nbsp;alias&lt;/description&gt;<br/>35&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;uri&gt;<a href="http://compass/sample/petclinic" target="_blank">http://compass/sample/petclinic</a>/alias/visit&lt;/uri&gt;<br/>36&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;visit&lt;/name&gt;<br/>37&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/alias&gt;<br/>38&nbsp;<br/>39&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;alias&nbsp;id=&#34;specialty&#34;&nbsp;displayName=&#34;Specialty&#34;&gt;<br/>40&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;description&gt;Specialty&nbsp;alias&lt;/description&gt;<br/>41&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;uri&gt;<a href="http://compass/sample/petclinic" target="_blank">http://compass/sample/petclinic</a>/alias/specialty&lt;/uri&gt;<br/>42&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;specialty&lt;/name&gt;<br/>43&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/alias&gt;<br/>44&nbsp;<br/>45&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;alias&nbsp;id=&#34;petType&#34;&nbsp;displayName=&#34;Pet&nbsp;Type&#34;&gt;<br/>46&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;description&gt;Pet&nbsp;Type&nbsp;alias&lt;/description&gt;<br/>47&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;uri&gt;<a href="http://compass/sample/petclinic" target="_blank">http://compass/sample/petclinic</a>/alias/petType&lt;/uri&gt;<br/>48&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;petType&lt;/name&gt;<br/>49&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/alias&gt;<br/>50&nbsp;<br/>51&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;申明所有需要检索的属性或者字段，而不管这些属性或者字段是哪个实体的&nbsp;--&gt;<br/>52&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;meta-data&nbsp;id=&#34;type&#34;&nbsp;displayName=&#34;Type&#34;&gt;<br/>53&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;description&gt;Type&nbsp;of&nbsp;an&nbsp;entity&nbsp;in&nbsp;the&nbsp;system&lt;/description&gt;<br/>54&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;uri&gt;<a href="http://compass/sample/petclinic" target="_blank">http://compass/sample/petclinic</a>/type&lt;/uri&gt;<br/>55&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;type&lt;/name&gt;<br/>56&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&nbsp;id=&#34;mdPerson&#34;&gt;person&lt;/value&gt;<br/>57&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/meta-data&gt;<br/>58&nbsp;<br/>59&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;meta-data&nbsp;id=&#34;name&#34;&nbsp;displayName=&#34;Name&#34;&gt;<br/>60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;description&gt;The&nbsp;name&nbsp;of&nbsp;an&nbsp;entity&lt;/description&gt;<br/>61&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;uri&gt;<a href="http://compass/sample/petclinic" target="_blank">http://compass/sample/petclinic</a>/name&lt;/uri&gt;<br/>62&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;name&lt;/name&gt;<br/>63&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/meta-data&gt;<br/>petclinic-hbm.xml就不做介绍，普通的hibernate配置文件。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;接下来是一个问题也是本人笔记的原因，<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在本人上一篇随笔(<a href="http://www.blogjava.net/szhswl/archive/2007/12/18/168437.html" target="_blank">http://www.blogjava.net/szhswl/archive/2007/12/18/168437.html</a>)&nbsp;写到查询时的注意问题，用&#34;tes*&#34;做为查询条件时是前缀查询，lucene里QueryParser类实例了PrefixQuery类，在&nbsp;compass1.2源代码里&nbsp;o&#114;g.compass.core.lucene.engine.queryparser.CompassQueryParser类继承了并且重写了&nbsp;QueryParser类里的getPrefixQuery方法，方法源代码如下：<br/>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;Query&nbsp;getPrefixQuery(String&nbsp;field,&nbsp;String&nbsp;termStr)&nbsp;throws&nbsp;ParseException&nbsp;{<br/>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(getLowercaseExpandedTerms())&nbsp;{<br/>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;termStr&nbsp;=&nbsp;termStr.toLowerCase();<br/>4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>5&nbsp;<br/>6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Term&nbsp;t&nbsp;=&nbsp;new&nbsp;Term(field,&nbsp;termStr);<br/>7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;new&nbsp;ConstantScorePrefixQuery(t);\<br/>8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>也就是说用&#34;tes*&#34;查询时在compass1.2里实例了ConstantScorePrefixQuery，compass1.2用的是&nbsp;lucene2.2，本人查看了lucene2.2里源代码，ConstantScorePrefixQuery类里实现高亮时用到的一个重要方法源代码如下：<br/>1&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;extractTerms(Set&nbsp;terms)&nbsp;{<br/>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;OK&nbsp;to&nbsp;not&nbsp;add&nbsp;any&nbsp;terms&nbsp;when&nbsp;used&nbsp;for&nbsp;MultiSearcher,<br/>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;but&nbsp;may&nbsp;not&nbsp;be&nbsp;OK&nbsp;for&nbsp;highlighting<br/>4&nbsp;&nbsp;&nbsp;}<br/>方法里说得很清楚，根本就没有实现，所以用compass1.2的petclinic例子时，用&#34;tes*&#34;查询时，查询结果没错，但页面${hit.highlightedText[&#39;highlightfield&#39;]}<br/>高亮显示出现问题，然后本人把&nbsp;o&#114;g.compass.core.lucene.engine.queryparser.CompassQueryParser类里&nbsp;getPrefixQuery方法</span>]]></description>
		</item>
		
			<item>
			<link>http://www.java125.cn/default.asp?id=2398</link>
			<title><![CDATA[java 框架模型与模式]]></title>
			<author>zhangjunjie0915@gmail.com(admin)</author>
			<category><![CDATA[Java实例源码]]></category>
			<pubDate>Sun,16 Dec 2007 19:02:17 +0800</pubDate>
			<guid>http://www.java125.cn/default.asp?id=2398</guid>	
		<description><![CDATA[<span style="font-size:10pt">看了这么久的论文，终于明白了这三个概念的区别和具体的意义。在和实验室的同学讨论的同时发现很多同学对这个问题也不是很明确，所以写个小文记录一下。<br/><br/>首先需要说明的是，这个所说的框架、模型和模式都是在看研究性论文的时候经常提到的概念，可能和软件工程领域的对应概念并不完全一致。并且因为水平有限，我的理解也可能是不正确的。<br/><br/>首先说说框架。所谓框架，应该就是一种处理流程。典型的框架可能是下面这样的<br/><img src="http://www.blogjava.net/images/blogjava_net/gsofhon/WindowsLiveWriter/ed71b495cf4e_150A2/1a_clip_image002_thumb.gif" border="0" alt=""/><br/>这个图片可能看不清楚，不过不重要。框架就是一个解决某一个问题的处理流程。我们熟悉的ASP.NET框架，Rails框架也都是这类的框架——他们解决的是如何搭建web应用的问题。ASP.NET和Rails都规定了一系列的处理流程，从获得用户请求，到把请求定向到适当的类，如何调用用户定义的函数处理问题，再到把处理结果发送给用户。<br/><br/>所谓模型，是一种描述问题的工具。这里需要注意的是我所说的模型并不是所谓“数学建模”、“软件建模”得到的模型，而是另外一种模型，比如对象模型，关系模型等等。这类模型是一些规定，这些规定描述了如何去描述一个概念，同时还规定了一系列的操作，这些操作描述了概念之间如何进行交互。比较典型的就是关系模型，他描述了使用很多很多的属性（数据库字段）来描述一个概念（数据库表），以及这些概念之间的关系，比如Union（对应union操作符），Project（对应sel&#101;ct&nbsp;columnname&nbsp;from&nbsp;tablename）等等。模型是一种工具，他是用来帮助人们记录和分析问题的。其他的常用模型还包括对象模型，UML模型等等。<br/><br/>最后是模式。可以认为使用模型建模得到的东西就是模式，比如一个数据库设计，一个软件类设计等等。需要注意的是虽然MySQL管他的数据库叫做模式，但是一个运行中的数据库并不是一个模式，而是一个模式的一个具体实例。因为同一个模式可以有很多个实现，比如Northwind数据库在很多人的机器上都有，但是都是用的Northwind数据库模式。<br/><br/>这里的模式是所谓的Schema，而不是设计模式所谓的Pattern。Schema是用来描述概念和概念之间关系的，而Pattern更多的用于描述概念实例之间的关系，比如某些数据具有一些特定的模式（Pattern），比如电话号码总是【区号-号码】这种模式。另外还有一些被称为模式的东西既不是Schema又不是Pattern，今天吃晚饭的时候还在想这个问题，现在忘了</span>]]></description>
		</item>
		
			<item>
			<link>http://www.java125.cn/default.asp?id=2349</link>
			<title><![CDATA[hibernate + Myeclipes实例]]></title>
			<author>zhangjunjie0915@gmail.com(admin)</author>
			<category><![CDATA[Java实例源码]]></category>
			<pubDate>Tue,11 Dec 2007 19:55:15 +0800</pubDate>
			<guid>http://www.java125.cn/default.asp?id=2349</guid>	
		<description><![CDATA[<span style="font-size:10pt">对hbn深入过程中，发现开发和设计持久层&nbsp;到项目后期，越来越困难。在次仔细查分析。特总结一种开发方法。留下与大家分享，欢迎拍砖。<br/><br/>开发过程描述：<br/>1.使用&nbsp;MyEclipes&nbsp;-&gt;&nbsp;uml&nbsp;&nbsp;创建类图<br/>2.用&nbsp;Generate&nbsp;java&nbsp;Code&nbsp;根据类图生成&nbsp;java文件<br/>3.使用&nbsp;Xdoclet&nbsp;添加&nbsp;Hbn&nbsp;标签<br/>4.配置myEclipes&nbsp;-&gt;&nbsp;XDoclet&nbsp;自动生成&nbsp;mapping.hbn.xml<br/>5.使用myEclipes&nbsp;把项目转化成&nbsp;hibernate&nbsp;&nbsp;项目<br/>6.使用&nbsp;o&#114;g.hibernate.tool.hbm2ddl.SchemaExport&nbsp;建表<br/><br/>开发过程好处：<br/>1）完全是面向对象，不需要写xml配置文件(XDoclet);<br/>2)项目后期修改容易面对uml<br/>3）用myEclipes&nbsp;这些都不用去找，直接拿来用(uml,XDoclet,hibernate&nbsp;..)<br/><br/>下面就来个&nbsp;小例把&nbsp;<br/><img src="http://www.blogjava.net/images/blogjava_net/Good-Game/28028/r_a.bmp" border="0" alt=""/><br/>2.由uml生成类文件&nbsp;<br/><img src="http://www.blogjava.net/images/blogjava_net/Good-Game/28028/r_a2.bmp" border="0" alt=""/><br/>3.先使用&nbsp;eclipes的&nbsp;快键方法写&nbsp;get/set&nbsp;方法，&nbsp;类文件文件添加&nbsp;hbn&nbsp;XDoclet的注解<br/>package&nbsp;bean;<br/><br/>/**&nbsp;<br/>&nbsp;*&nbsp;@hibernate.class&nbsp;table=&#34;t1oo&#34;<br/>&nbsp;*/<br/>public&nbsp;class&nbsp;T1oo&nbsp;{<br/><br/>&nbsp;&nbsp;public&nbsp;int&nbsp;id;<br/>&nbsp;&nbsp;public&nbsp;String&nbsp;name;<br/>&nbsp;&nbsp;public&nbsp;int&nbsp;avg;<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;/**&nbsp;<br/>&nbsp;&nbsp;&nbsp;*&nbsp;@hibernate.property&nbsp;<br/>&nbsp;&nbsp;&nbsp;*&nbsp;column=&#34;avg&#34;<br/>&nbsp;&nbsp;&nbsp;*&nbsp;length=&#34;4&#34;<br/>&nbsp;&nbsp;&nbsp;*&nbsp;not-null=&#34;true&#34;<br/>&nbsp;&nbsp;&nbsp;*/<br/>public&nbsp;int&nbsp;getAvg()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;avg;<br/>}<br/>public&nbsp;void&nbsp;setAvg(int&nbsp;avg)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;this.avg&nbsp;=&nbsp;avg;<br/>}<br/>/**<br/>&nbsp;*&nbsp;@hibernate.id&nbsp;<br/>&nbsp;*&nbsp;column=&#34;id&#34;<br/>&nbsp;*&nbsp;generator-class=&#34;hilo&#34;<br/>&nbsp;*/<br/>public&nbsp;int&nbsp;getId()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;id;<br/>}<br/>public&nbsp;void&nbsp;setId(int&nbsp;id)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;this.id&nbsp;=&nbsp;id;<br/>}<br/>/**<br/>&nbsp;*&nbsp;@hibernate.property&nbsp;<br/>&nbsp;*&nbsp;column=&#34;name&#34;<br/>&nbsp;*&nbsp;not-null=&#34;true&#34;&nbsp;<br/>&nbsp;*&nbsp;@return<br/>&nbsp;*/<br/>public&nbsp;String&nbsp;getName()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;name;<br/>}<br/>public&nbsp;void&nbsp;setName(String&nbsp;name)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;this.name&nbsp;=&nbsp;name;<br/>}<br/>&nbsp;&nbsp;<br/><br/>}<br/><br/>4.用myEclipes&nbsp;生成&nbsp;XDoclet<br/>在项目点右键-&gt;&nbsp;properties&nbsp;-&gt;&nbsp;MyEclipse-XDoclet&nbsp;-&gt;<br/>在Configuration&nbsp;空白初点右键&nbsp;选&nbsp;add&nbsp;standard&nbsp;-&gt;&nbsp;...&nbsp;hbn&nbsp;后面不太好描述&nbsp;可以查下很简单的&nbsp;。配置好了运行后就可以看见&nbsp;多了&nbsp;个&nbsp;T1oo.hbm.xml&nbsp;文件;<br/><br/>5.myEclipes&nbsp;+&nbsp;hbn&nbsp;就不多说了<br/>6.&nbsp;hbn2java:<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;testCr&#101;ateTable()throws&nbsp;Exception{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HibernateSessionFactory.currentSession();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HibernateSessionFactory.closeSession();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Field[]&nbsp;ff&nbsp;=&nbsp;HibernateSessionFactory.class.getDeclaredFields();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Field&nbsp;fie&nbsp;=&nbsp;null&nbsp;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0;i&lt;ff.length;i++){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(&nbsp;ff[i].getType().equals(&nbsp;Configuration.class&nbsp;)&nbsp;){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fie&nbsp;=&nbsp;ff[i];<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fie.setAccessible(true);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Configuration&nbsp;cfg&nbsp;=&nbsp;(Configuration)fie.get(HibernateSessionFactory.class);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cfg.addInputStream(&nbsp;this.getClass().getResourceAsStream(&#34;/bean/T1oo.hbm.xml&#34;)&nbsp;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//建表<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SchemaExport&nbsp;dbExport&nbsp;=&nbsp;new&nbsp;SchemaExport(cfg);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbExport.setOutputFile(&#34;c:\\db\\test.txt&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbExport.cr&#101;ate(true,&nbsp;true);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/><br/>sql：<br/>dro&#112;&nbsp;table&nbsp;if&nbsp;exists&nbsp;t1oo<br/>dro&#112;&nbsp;table&nbsp;if&nbsp;exists&nbsp;hibernate_unique_key<br/>cr&#101;ate&nbsp;table&nbsp;t1oo&nbsp;(<br/>&nbsp;&nbsp;&nbsp;&nbsp;id&nbsp;integer&nbsp;not&nbsp;null,<br/>&nbsp;&nbsp;&nbsp;&nbsp;avg&nbsp;integer&nbsp;not&nbsp;null,<br/>&nbsp;&nbsp;&nbsp;&nbsp;name&nbsp;varchar(255)&nbsp;not&nbsp;null,<br/>&nbsp;&nbsp;&nbsp;&nbsp;primary&nbsp;key&nbsp;(id)<br/>)<br/>cr&#101;ate&nbsp;table&nbsp;hibernate_unique_key&nbsp;(<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next_hi&nbsp;integer<br/>)<br/>ins&#101;rt&nbsp;into&nbsp;hibernate_unique_key&nbsp;values&nbsp;(&nbsp;0&nbsp;)<br/><br/><br/>效果：<br/>mysql&gt;&nbsp;show&nbsp;tables;<br/>+----------------------+<br/>|&nbsp;Tables_in_hbn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br/>+----------------------+<br/>|&nbsp;hibernate_unique_key&nbsp;|<br/>|&nbsp;t1oo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br/>+----------------------+<br/>2&nbsp;rows&nbsp;in&nbsp;set&nbsp;(0.00&nbsp;sec)</span>]]></description>
		</item>
		
			<item>
			<link>http://www.java125.cn/default.asp?id=2342</link>
			<title><![CDATA[hibernate 整合spring 程序--hibernate spring ]]></title>
			<author>zhangjunjie0915@gmail.com(admin)</author>
			<category><![CDATA[Java实例源码]]></category>
			<pubDate>Mon,10 Dec 2007 18:11:27 +0800</pubDate>
			<guid>http://www.java125.cn/default.asp?id=2342</guid>	
		<description><![CDATA[<span style="font-size:10pt">一直都很想写一个自己的框架，最近开始动手做了，这两天整理了出来数据访问层的一点实现，同时写了一个小例子，通过下载方便交流，有什么好的建议，和问题还请大家和我交流&nbsp;<br/>暂时没有写web层&nbsp;仅用了一个main测试的hibernate&nbsp;整合spring的部分&nbsp;框架大概是这样的<br/>StudentDAO&nbsp;继承AbstractService&nbsp;这个是我使用spring的hibernate摸板封装好的和数据库访问的方法<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;实现StudentServer&nbsp;这个接口是和自己业务相关的方法&nbsp;在调用StudentDAO&nbsp;的时候使用接口指向子类<br/><br/><br/>public&nbsp;class&nbsp;Test&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;*//**<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;args<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@throws&nbsp;QueryException&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;throws&nbsp;QueryException{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;*//**<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;修改了配置文件用于测试hibernate整合spring是否正常<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ApplicationContext&nbsp;context&nbsp;=&nbsp;new&nbsp;FileSystemXmlApplicationContext(&#34;src/applicationContext.xml&#34;);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;context.getBean(&#34;sessionFactory&#34;);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StudentServer&nbsp;server&nbsp;=&nbsp;(StudentDAO)&nbsp;context.getBean(&#34;studentDAO&#34;);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>/**//*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Student&nbsp;stu&nbsp;=&nbsp;new&nbsp;Student();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stu.setStuname(&#34;qq22222222&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stu.setAge(56);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stu.setSex(&#34;男&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stu.setPhone(555);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//server.addStudentByCondition(stu);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server.addStudent(stu);*/<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;Student&gt;&nbsp;list&nbsp;=&nbsp;server.getStudent(&#34;s&#34;,&nbsp;&#34;男&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(Student&nbsp;stu&nbsp;:&nbsp;list)&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(stu.getStuname());<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;*//**<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;使用sel&#101;ct&nbsp;&nbsp;查询字段<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;Object[]&gt;&nbsp;list&nbsp;=&nbsp;server.getStudent(&#34;s&#34;,&nbsp;&#34;男&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(Object[]&nbsp;c&nbsp;:&nbsp;list){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(Object&nbsp;a&nbsp;:&nbsp;c){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(a&nbsp;+&nbsp;&#34;\t&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}<br/><br/><br/>查询提供了两种方式，一种是使用DAODelegate提供的查询（这和普通的hibernate一样的）<br/>第二种方式是&nbsp;封装了一个查询类HqlQuery&nbsp;具体使用例子中有了<br/><br/><br/>对框架提出以下几点：<br/>1、我现在想把AbstractService&nbsp;&nbsp;这个类在spring注入的时候设置成为静态的&nbsp;可以提高效率&nbsp;但不知会有别的什么影响？？&nbsp;还请哪个朋友指点一下&nbsp;十分感谢<br/><br/>2、StudentServer&nbsp;这个接口&nbsp;和StudentDAO这个类&nbsp;是一一对应的&nbsp;StudentDAO这个必须实现接口的方法&nbsp;而接口中就定义和业务相关的方法&nbsp;StudentDAO在spring中注入&nbsp;调用时候使用StudentServer&nbsp;指向子类&nbsp;<br/>但这样的每在StudentServer&nbsp;增加一个业务方法就要在dao实现类中添加一个&nbsp;不知道这样好不好？？<br/>还请朋友们帮忙看下&nbsp;<br/><br/>3、因为还没有涉及到web开发&nbsp;但查询中缺少分页查询，正在整理，有好的分页组件请大家分享下我的邮箱<br/>sunxianchao@gmail.com<br/><br/>有什么好的建议和提议请大家留言&nbsp;十分感谢</span>]]></description>
		</item>
		
</channel>
</rss>