﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-piliskys</title><link>http://www.blogjava.net/piliskys/</link><description /><language>zh-cn</language><lastBuildDate>Wed, 03 Dec 2008 19:42:02 GMT</lastBuildDate><pubDate>Wed, 03 Dec 2008 19:42:02 GMT</pubDate><ttl>60</ttl><item><title>oracle中substr的问题/</title><link>http://www.blogjava.net/piliskys/archive/2006/09/20/70831.html</link><dc:creator>霹雳火</dc:creator><author>霹雳火</author><pubDate>Wed, 20 Sep 2006 08:20:00 GMT</pubDate><guid>http://www.blogjava.net/piliskys/archive/2006/09/20/70831.html</guid><wfw:comment>http://www.blogjava.net/piliskys/comments/70831.html</wfw:comment><comments>http://www.blogjava.net/piliskys/archive/2006/09/20/70831.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/piliskys/comments/commentRss/70831.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/piliskys/services/trackbacks/70831.html</trackback:ping><description><![CDATA[今天，碰到一个怪问题，同一个sql语句，运行产生不同的结果， 
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">SELECT</span><span style="COLOR: #000000"> a.TAXPAYERID TAXPAYERID$</span><span style="FONT-WEIGHT: bold; COLOR: #800000">0</span><span style="COLOR: #000000">, a.INDEPOTYEAR INDEPOTYEAR$</span><span style="FONT-WEIGHT: bold; COLOR: #800000">2</span><span style="COLOR: #000000">, <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #ff00ff">SUM</span><span style="COLOR: #000000">(a.TAXFINAL) SUMTAXFINAL$</span><span style="FONT-WEIGHT: bold; COLOR: #800000">1</span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">FROM</span><span style="COLOR: #000000"> F_LVY_LEVYINPUTYEARHISTORYDATA a <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">WHERE</span><span style="COLOR: #000000"> substr ( a.TAXPAYERID ,</span><span style="FONT-WEIGHT: bold; COLOR: #800000">1</span><span style="COLOR: #000000"> , </span><span style="FONT-WEIGHT: bold; COLOR: #800000">1</span><span style="COLOR: #000000"> ) </span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">T</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"> </span><span style="COLOR: #808080">and</span><span style="COLOR: #000000"> a.indepotyear</span><span style="COLOR: #808080">=</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">2006</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">GROUP</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">BY</span><span style="COLOR: #000000"> a.TAXPAYERID, a.INDEPOTYEAR </span><span style="COLOR: #0000ff">having</span><span style="COLOR: #000000"> </span><span style="COLOR: #ff00ff">SUM</span><span style="COLOR: #000000">(a.TAXFINAL) </span><span style="COLOR: #808080">&gt;=</span><span style="FONT-WEIGHT: bold; COLOR: #800000">1000000</span><span style="COLOR: #000000"> </span></div>第一次运行产生1357条记录，然后接着运行就变为1359（此为正确数），到网上找了下，没有找到原因， 最后把substr ( a.TAXPAYERID ,1 , 1 ) 'T' 改为 a.TAXPAYERID not like 'T%'没有问题，把上面sql改为
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">SELECT</span><span style="COLOR: #000000"> a.TAXPAYERID TAXPAYERID$</span><span style="FONT-WEIGHT: bold; COLOR: #800000">0</span><span style="COLOR: #000000">, a.INDEPOTYEAR INDEPOTYEAR$</span><span style="FONT-WEIGHT: bold; COLOR: #800000">2</span><span style="COLOR: #000000">, </span><span style="COLOR: #ff00ff">SUM</span><span style="COLOR: #000000">(a.TAXFINAL) SUMTAXFINAL$</span><span style="FONT-WEIGHT: bold; COLOR: #800000">1</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">FROM</span><span style="COLOR: #000000"> F_LVY_LEVYINPUTYEARHISTORYDATA a </span><span style="COLOR: #0000ff">WHERE</span><span style="COLOR: #000000"> a.indepotyear</span><span style="COLOR: #808080">=</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">2006</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">GROUP</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">BY</span><span style="COLOR: #000000"> a.TAXPAYERID, a.INDEPOTYEAR </span><span style="COLOR: #0000ff">having</span><span style="COLOR: #000000"> </span><span style="COLOR: #ff00ff">SUM</span><span style="COLOR: #000000">(a.TAXFINAL) </span><span style="COLOR: #808080">&gt;=</span><span style="FONT-WEIGHT: bold; COLOR: #800000">1000000</span><span style="COLOR: #000000"> </span><span style="COLOR: #808080">and</span><span style="COLOR: #000000"> substr ( a.TAXPAYERID ,</span><span style="FONT-WEIGHT: bold; COLOR: #800000">1</span><span style="COLOR: #000000"> , </span><span style="FONT-WEIGHT: bold; COLOR: #800000">1</span><span style="COLOR: #000000"> ) </span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">T</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"> </span></div>也没有问题， 而所有记录中substr ( a.TAXPAYERID ,1 , 1 )只有三种0,1,T, a.TAXPAYERID没有为空的，不清楚为何如此？？ <img src ="http://www.blogjava.net/piliskys/aggbug/70831.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/piliskys/" target="_blank">霹雳火</a> 2006-09-20 16:20 <a href="http://www.blogjava.net/piliskys/archive/2006/09/20/70831.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL角本-建物化视图</title><link>http://www.blogjava.net/piliskys/archive/2006/09/07/68322.html</link><dc:creator>霹雳火</dc:creator><author>霹雳火</author><pubDate>Thu, 07 Sep 2006 09:13:00 GMT</pubDate><guid>http://www.blogjava.net/piliskys/archive/2006/09/07/68322.html</guid><wfw:comment>http://www.blogjava.net/piliskys/comments/68322.html</wfw:comment><comments>http://www.blogjava.net/piliskys/archive/2006/09/07/68322.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/piliskys/comments/commentRss/68322.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/piliskys/services/trackbacks/68322.html</trackback:ping><description><![CDATA[
		<p>目的：对某表创建物化视图时，不要求它所有字段，因此必须列出要的字段，一个个字段COPY也比较麻烦.因此写一角本<br /></p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #0000ff">select</span>
				<span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #ff0000">'</span>
				<span style="COLOR: #ff0000">create  materialized view </span>
				<span style="COLOR: #ff0000">'</span>
				<span style="COLOR: #808080">||</span>
				<span style="COLOR: #ff00ff">max</span>
				<span style="COLOR: #000000">(a.table_name)</span>
				<span style="COLOR: #808080">||</span>
				<span style="COLOR: #000000">chr(</span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">10</span>
				<span style="COLOR: #000000">)</span>
				<span style="COLOR: #808080">||</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span>
				<span style="COLOR: #ff0000">'</span>
				<span style="COLOR: #ff0000">tablespace staging refresh fast  as select</span>
				<span style="COLOR: #ff0000">'</span>
				<span style="COLOR: #808080">||</span>
				<span style="COLOR: #000000">chr(</span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">10</span>
				<span style="COLOR: #000000">)</span>
				<span style="COLOR: #808080">||</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> substr(</span>
				<span style="COLOR: #ff00ff">max</span>
				<span style="COLOR: #000000">(sys_connect_by_path(a.column_name</span>
				<span style="COLOR: #808080">||</span>
				<span style="COLOR: #000000">chr(</span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">10</span>
				<span style="COLOR: #000000">),</span>
				<span style="COLOR: #ff0000">'</span>
				<span style="COLOR: #ff0000">,</span>
				<span style="COLOR: #ff0000">'</span>
				<span style="COLOR: #000000">)),</span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">2</span>
				<span style="COLOR: #000000">)</span>
				<span style="COLOR: #808080">||</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span>
				<span style="COLOR: #ff0000">'</span>
				<span style="COLOR: #ff0000">from </span>
				<span style="COLOR: #ff0000">'</span>
				<span style="COLOR: #808080">||</span>
				<span style="COLOR: #ff00ff">max</span>
				<span style="COLOR: #000000">(a.table_name)</span>
				<span style="COLOR: #808080">||</span>
				<span style="COLOR: #ff0000">'</span>
				<span style="COLOR: #ff0000">@zhengguan t;</span>
				<span style="COLOR: #ff0000">'</span>
				<span style="COLOR: #008080">--</span>
				<span style="COLOR: #008080">这里是DBLINK</span>
				<span style="COLOR: #008080">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">from</span>
				<span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />( </span>
				<span style="COLOR: #0000ff">select</span>
				<span style="COLOR: #000000"> row_number() </span>
				<span style="COLOR: #0000ff">over</span>
				<span style="COLOR: #000000">( PARTITION </span>
				<span style="COLOR: #0000ff">BY</span>
				<span style="COLOR: #000000"> g.table_name  </span>
				<span style="COLOR: #0000ff">order</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">by</span>
				<span style="COLOR: #000000"> g.column_id  )  rn <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    ,g.table_name,g.column_name  </span>
				<span style="COLOR: #0000ff">from</span>
				<span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />         user_tab_cols  g<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />          </span>
				<span style="COLOR: #0000ff">where</span>
				<span style="COLOR: #000000"> g.table_name </span>
				<span style="COLOR: #808080">=</span>
				<span style="COLOR: #ff0000">'</span>
				<span style="COLOR: #ff0000">TB_LVY_INCREASEDECREASEDATA</span>
				<span style="COLOR: #ff0000">'</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #008080">--</span>
				<span style="COLOR: #008080">这里是要建的表名</span>
				<span style="COLOR: #008080">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">          ) a<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />          <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />           start </span>
				<span style="COLOR: #0000ff">with</span>
				<span style="COLOR: #000000"> rn</span>
				<span style="COLOR: #808080">=</span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">1</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />          connect </span>
				<span style="COLOR: #0000ff">by</span>
				<span style="COLOR: #000000">  rn </span>
				<span style="COLOR: #808080">=</span>
				<span style="COLOR: #000000">  prior rn </span>
				<span style="COLOR: #808080">+</span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">1</span>
		</div>运用：对于一些存储过程中对表的insert时，这样也许可减少些工作量，反正灵活运用吧，一个角本也许通过自己的变化，在工作中可以启到一定的作用。<img src ="http://www.blogjava.net/piliskys/aggbug/68322.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/piliskys/" target="_blank">霹雳火</a> 2006-09-07 17:13 <a href="http://www.blogjava.net/piliskys/archive/2006/09/07/68322.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts的轻量架构（新手有用）</title><link>http://www.blogjava.net/piliskys/archive/2006/04/18/41568.html</link><dc:creator>霹雳火</dc:creator><author>霹雳火</author><pubDate>Tue, 18 Apr 2006 01:10:00 GMT</pubDate><guid>http://www.blogjava.net/piliskys/archive/2006/04/18/41568.html</guid><wfw:comment>http://www.blogjava.net/piliskys/comments/41568.html</wfw:comment><comments>http://www.blogjava.net/piliskys/archive/2006/04/18/41568.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/piliskys/comments/commentRss/41568.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/piliskys/services/trackbacks/41568.html</trackback:ping><description><![CDATA[用过struts都清楚，struts的开发一般要写两个类，FormBean和Action类，通常情况下Action是这样的： 
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id="Codehighlighter1_41_355_Open_Image" onclick="this.style.display='none'; Codehighlighter1_41_355_Open_Text.style.display='none'; Codehighlighter1_41_355_Closed_Image.style.display='inline'; Codehighlighter1_41_355_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_41_355_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_41_355_Closed_Text.style.display='none'; Codehighlighter1_41_355_Open_Image.style.display='inline'; Codehighlighter1_41_355_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">   </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> XXXAction  </span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000"> Action </span><span id="Codehighlighter1_41_355_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_41_355_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> ActionForward execute(ActionMapping mapping, ActionForm form,<br /><img id="Codehighlighter1_224_354_Open_Image" onclick="this.style.display='none'; Codehighlighter1_224_354_Open_Text.style.display='none'; Codehighlighter1_224_354_Closed_Image.style.display='inline'; Codehighlighter1_224_354_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_224_354_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_224_354_Closed_Text.style.display='none'; Codehighlighter1_224_354_Open_Image.style.display='inline'; Codehighlighter1_224_354_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />                                 HttpServletRequest request, HttpServletResponse response) </span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000"> Exception </span><span id="Codehighlighter1_224_354_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_224_354_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        XXXXForm theform </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(XXXXForm) form;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">form的强制转型<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">这里就是你要处理的业务逻辑了 </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> mapping.findForward(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">XXXX</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span></span></div>这是一个Action最少的代码了，它没有处理任何逻辑，只是一个跳转，FormBean的话，只要继承ActionForm，代码到没有规定，到时，我们可能会想，每个Action里面都必须写上面那些代码，烦啊，还有在每个FormBean里我们一般都会定义一些常用的属性，如event，根据event的值，我们来决定一些逻辑的处理及页面的跳转，每次要写，也烦啊。<br />   好，烦的话，那我们要开始做点事情了，首先，写一个formBean代码如下： 
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id="Codehighlighter1_40_207_Open_Image" onclick="this.style.display='none'; Codehighlighter1_40_207_Open_Text.style.display='none'; Codehighlighter1_40_207_Closed_Image.style.display='inline'; Codehighlighter1_40_207_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_40_207_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_40_207_Closed_Text.style.display='none'; Codehighlighter1_40_207_Open_Image.style.display='inline'; Codehighlighter1_40_207_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> XXXForm </span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000">  ActionForm</span><span id="Codehighlighter1_40_207_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_40_207_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> String event;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">事件名</span><span style="COLOR: #008000"><br /><img id="Codehighlighter1_102_130_Open_Image" onclick="this.style.display='none'; Codehighlighter1_102_130_Open_Text.style.display='none'; Codehighlighter1_102_130_Closed_Image.style.display='inline'; Codehighlighter1_102_130_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_102_130_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_102_130_Closed_Text.style.display='none'; Codehighlighter1_102_130_Open_Image.style.display='inline'; Codehighlighter1_102_130_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> String getEvent() </span><span id="Codehighlighter1_102_130_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_102_130_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> event;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_171_205_Open_Image" onclick="this.style.display='none'; Codehighlighter1_171_205_Open_Text.style.display='none'; Codehighlighter1_171_205_Closed_Image.style.display='inline'; Codehighlighter1_171_205_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_171_205_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_171_205_Closed_Text.style.display='none'; Codehighlighter1_171_205_Open_Image.style.display='inline'; Codehighlighter1_171_205_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> setEvent(String event) </span><span id="Codehighlighter1_171_205_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_171_205_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.event </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> event;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div>我想这谁都应该清楚，然后我们再写frombean时，就不要extends  ActionForm,而是extends  XXXForm了，这样，我们省了些代码，我们再来看Action，也这样试试： 
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id="Codehighlighter1_48_475_Open_Image" onclick="this.style.display='none'; Codehighlighter1_48_475_Open_Text.style.display='none'; Codehighlighter1_48_475_Closed_Image.style.display='inline'; Codehighlighter1_48_475_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_48_475_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_48_475_Closed_Text.style.display='none'; Codehighlighter1_48_475_Open_Image.style.display='inline'; Codehighlighter1_48_475_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">abstract</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> XXXAction  </span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000"> Action </span><span id="Codehighlighter1_48_475_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_48_475_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> ActionForward execute(ActionMapping mapping, ActionForm form,<br /><img id="Codehighlighter1_227_329_Open_Image" onclick="this.style.display='none'; Codehighlighter1_227_329_Open_Text.style.display='none'; Codehighlighter1_227_329_Closed_Image.style.display='inline'; Codehighlighter1_227_329_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_227_329_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_227_329_Closed_Text.style.display='none'; Codehighlighter1_227_329_Open_Image.style.display='inline'; Codehighlighter1_227_329_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />                             HttpServletRequest request, HttpServletResponse response) </span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000"> Exception </span><span id="Codehighlighter1_227_329_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_227_329_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        XXXForm theform </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(XXXForm) form;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> mapping.findForward(doAction(theform));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_336_417_Open_Image" onclick="this.style.display='none'; Codehighlighter1_336_417_Open_Text.style.display='none'; Codehighlighter1_336_417_Closed_Image.style.display='inline'; Codehighlighter1_336_417_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_336_417_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_336_417_Closed_Text.style.display='none'; Codehighlighter1_336_417_Open_Image.style.display='inline'; Codehighlighter1_336_417_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />     </span><span id="Codehighlighter1_336_417_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span><span id="Codehighlighter1_336_417_Open_Text"><span style="COLOR: #008000">/**</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />      * 处理一些业务<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />      * </span><span style="COLOR: #808080">@param</span><span style="COLOR: #008000"> form<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />      * </span><span style="COLOR: #808080">@return</span><span style="COLOR: #008000">    返回mapping指向的字符串<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />      </span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />   </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">abstract</span><span style="COLOR: #000000">  String doAction(BaseForm form);</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">抽象</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /></span><span style="COLOR: #000000">}</span></span></div>这样的话，我们再写Action类时，就不extends Action而是extends XXXAction，代码就像： 
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id="Codehighlighter1_41_200_Open_Image" onclick="this.style.display='none'; Codehighlighter1_41_200_Open_Text.style.display='none'; Codehighlighter1_41_200_Closed_Image.style.display='inline'; Codehighlighter1_41_200_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_41_200_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_41_200_Closed_Text.style.display='none'; Codehighlighter1_41_200_Open_Image.style.display='inline'; Codehighlighter1_41_200_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">***</span><span style="COLOR: #000000">Action </span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000"> XXXAction </span><span id="Codehighlighter1_41_200_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_41_200_Open_Text"><span style="COLOR: #000000">{<br /><img id="Codehighlighter1_84_198_Open_Image" onclick="this.style.display='none'; Codehighlighter1_84_198_Open_Text.style.display='none'; Codehighlighter1_84_198_Closed_Image.style.display='inline'; Codehighlighter1_84_198_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_84_198_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_84_198_Closed_Text.style.display='none'; Codehighlighter1_84_198_Open_Image.style.display='inline'; Codehighlighter1_84_198_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> String doAction(XXXForm form) </span><span id="Codehighlighter1_84_198_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_84_198_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #000000">***</span><span style="COLOR: #000000">Form theform </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> (</span><span style="COLOR: #000000">***</span><span style="COLOR: #000000">Form) form;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">强制转成你真正的formbean<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">这里就是你要处理的业务逻辑了   </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">     </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">success</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div><p>就是以上一些代码，简单多了吧，return一个字符串就行了，感觉还有点像webwork了,到此完了吗，有没</p><p>有什么还没有做呢，对了，这样的话，我们定义的Action都成无会话的bean了，所以request是要得到的</p><p>，很多情况下的url是***action.do?id=cctv,而且一般是系统都是把用户的信息放入session中的，所以</p><p>request是强烈要求要还给我们的，好，那我们来重构下formbean和action吧，以下我们用BaseForm,及</p><p>BaseAction来定义，两个类都放在同一个包中</p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id="Codehighlighter1_41_704_Open_Image" onclick="this.style.display='none'; Codehighlighter1_41_704_Open_Text.style.display='none'; Codehighlighter1_41_704_Closed_Image.style.display='inline'; Codehighlighter1_41_704_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_41_704_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_41_704_Closed_Text.style.display='none'; Codehighlighter1_41_704_Open_Image.style.display='inline'; Codehighlighter1_41_704_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> BaseForm </span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000">  ActionForm</span><span id="Codehighlighter1_41_704_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_41_704_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> String event;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> HttpServletRequest request;<br /><img id="Codehighlighter1_113_222_Open_Image" onclick="this.style.display='none'; Codehighlighter1_113_222_Open_Text.style.display='none'; Codehighlighter1_113_222_Closed_Image.style.display='inline'; Codehighlighter1_113_222_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_113_222_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_113_222_Closed_Text.style.display='none'; Codehighlighter1_113_222_Open_Image.style.display='inline'; Codehighlighter1_113_222_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_113_222_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span><span id="Codehighlighter1_113_222_Open_Text"><span style="COLOR: #008000">/**</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />      * 注：这个是得到用户信息，这个只是一个例子，也可不实现，由request得到session，再得到<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />user,<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />      * 但reguser字符串对一般开发人员可能是不可见的<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />      </span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_250_331_Open_Image" onclick="this.style.display='none'; Codehighlighter1_250_331_Open_Text.style.display='none'; Codehighlighter1_250_331_Closed_Image.style.display='inline'; Codehighlighter1_250_331_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_250_331_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_250_331_Closed_Text.style.display='none'; Codehighlighter1_250_331_Open_Image.style.display='inline'; Codehighlighter1_250_331_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> User getUser() </span><span id="Codehighlighter1_250_331_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_250_331_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">   (User) getRequest().getSession().getAttribute(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">reguser</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_376_406_Open_Image" onclick="this.style.display='none'; Codehighlighter1_376_406_Open_Text.style.display='none'; Codehighlighter1_376_406_Closed_Image.style.display='inline'; Codehighlighter1_376_406_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_376_406_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_376_406_Closed_Text.style.display='none'; Codehighlighter1_376_406_Open_Image.style.display='inline'; Codehighlighter1_376_406_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> HttpServletRequest getRequest() </span><span id="Codehighlighter1_376_406_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_376_406_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> request;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_412_470_Open_Image" onclick="this.style.display='none'; Codehighlighter1_412_470_Open_Text.style.display='none'; Codehighlighter1_412_470_Closed_Image.style.display='inline'; Codehighlighter1_412_470_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_412_470_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_412_470_Closed_Text.style.display='none'; Codehighlighter1_412_470_Open_Image.style.display='inline'; Codehighlighter1_412_470_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_412_470_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span><span id="Codehighlighter1_412_470_Open_Text"><span style="COLOR: #008000">/**</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />      * 注：这里用的protected，这样可以就同一包的类可调用，其它类是不可见的<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />      </span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_530_568_Open_Image" onclick="this.style.display='none'; Codehighlighter1_530_568_Open_Text.style.display='none'; Codehighlighter1_530_568_Closed_Image.style.display='inline'; Codehighlighter1_530_568_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_530_568_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_530_568_Closed_Text.style.display='none'; Codehighlighter1_530_568_Open_Image.style.display='inline'; Codehighlighter1_530_568_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> setRequest(HttpServletRequest request) </span><span id="Codehighlighter1_530_568_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_530_568_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.request </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> request;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_599_627_Open_Image" onclick="this.style.display='none'; Codehighlighter1_599_627_Open_Text.style.display='none'; Codehighlighter1_599_627_Closed_Image.style.display='inline'; Codehighlighter1_599_627_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_599_627_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_599_627_Closed_Text.style.display='none'; Codehighlighter1_599_627_Open_Image.style.display='inline'; Codehighlighter1_599_627_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> String getEvent() </span><span id="Codehighlighter1_599_627_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_599_627_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> event;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_668_702_Open_Image" onclick="this.style.display='none'; Codehighlighter1_668_702_Open_Text.style.display='none'; Codehighlighter1_668_702_Closed_Image.style.display='inline'; Codehighlighter1_668_702_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_668_702_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_668_702_Closed_Text.style.display='none'; Codehighlighter1_668_702_Open_Image.style.display='inline'; Codehighlighter1_668_702_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> setEvent(String event) </span><span id="Codehighlighter1_668_702_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_668_702_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.event </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> event;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div>BaseAction代码：<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id="Codehighlighter1_49_523_Open_Image" onclick="this.style.display='none'; Codehighlighter1_49_523_Open_Text.style.display='none'; Codehighlighter1_49_523_Closed_Image.style.display='inline'; Codehighlighter1_49_523_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_49_523_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_49_523_Closed_Text.style.display='none'; Codehighlighter1_49_523_Open_Image.style.display='inline'; Codehighlighter1_49_523_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">abstract</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> BaseAction  </span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000"> Action </span><span id="Codehighlighter1_49_523_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_49_523_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> ActionForward execute(ActionMapping mapping, ActionForm form,<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                                 HttpServletRequest request, HttpServletResponse response) <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img id="Codehighlighter1_234_381_Open_Image" onclick="this.style.display='none'; Codehighlighter1_234_381_Open_Text.style.display='none'; Codehighlighter1_234_381_Closed_Image.style.display='inline'; Codehighlighter1_234_381_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_234_381_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_234_381_Closed_Text.style.display='none'; Codehighlighter1_234_381_Open_Image.style.display='inline'; Codehighlighter1_234_381_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000"> Exception </span><span id="Codehighlighter1_234_381_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_234_381_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        BaseForm theform </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(BaseForm) form;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        theform.setRequest(request);</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">加了这句</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> mapping.findForward(doAction(theform));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_388_469_Open_Image" onclick="this.style.display='none'; Codehighlighter1_388_469_Open_Text.style.display='none'; Codehighlighter1_388_469_Closed_Image.style.display='inline'; Codehighlighter1_388_469_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_388_469_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_388_469_Closed_Text.style.display='none'; Codehighlighter1_388_469_Open_Image.style.display='inline'; Codehighlighter1_388_469_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />     </span><span id="Codehighlighter1_388_469_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span><span id="Codehighlighter1_388_469_Open_Text"><span style="COLOR: #008000">/**</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />      * 处理一些业务<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />      * </span><span style="COLOR: #808080">@param</span><span style="COLOR: #008000"> form<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />      * </span><span style="COLOR: #808080">@return</span><span style="COLOR: #008000">    返回mapping指向的字符串<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />      </span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />   </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">abstract</span><span style="COLOR: #000000">  String doAction(BaseForm form);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div><p>到此算为结束，可能有为会问，那还有response呢，response的话，一般出现在内部跳转等情况，感觉用</p><p>的比较少，所以在此就不把它给大家了，如觉得一定要得到的话，那就跟request一样进行设置吧，不过</p><p>万事都应该有个度，自己衡量。<br /></p><img src ="http://www.blogjava.net/piliskys/aggbug/41568.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/piliskys/" target="_blank">霹雳火</a> 2006-04-18 09:10 <a href="http://www.blogjava.net/piliskys/archive/2006/04/18/41568.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Jbdc助手-数据库操作面向对象的实现(oracle)</title><link>http://www.blogjava.net/piliskys/archive/2006/03/29/38031.html</link><dc:creator>霹雳火</dc:creator><author>霹雳火</author><pubDate>Wed, 29 Mar 2006 05:43:00 GMT</pubDate><guid>http://www.blogjava.net/piliskys/archive/2006/03/29/38031.html</guid><wfw:comment>http://www.blogjava.net/piliskys/comments/38031.html</wfw:comment><comments>http://www.blogjava.net/piliskys/archive/2006/03/29/38031.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.blogjava.net/piliskys/comments/commentRss/38031.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/piliskys/services/trackbacks/38031.html</trackback:ping><description><![CDATA[
		<p>前言：<br />如果你对hibernate不是那样的推崇，但感觉jdbc的sqlr操作又不是那么OO的话，那么这篇文章可能给能带来或多或少的期望…<br />在很长的一段时间里，中总感觉应该对sql的操作来实现一种集成化，这种想法可能是来源于hibernate操作的思维吧，当时头脑中有一些想法：<br />1， 最大程度的让编程者对数据库操作实现面向对象操作，（所有的一些基本操作，程序员可以不用去记住表的字段名，完全对象化，如插值，删值，像hibernate一样查出对多和对一的结果，把结果也对象化，一些不能实现的保留sql操作，）<br />2， 最大程度让sql语句重用，提高数据库的效率（利用程序对一些操作sql的集成，保证相同操作sql的一致性）<br />3， 操作要简单，容易与项目集成，通用（约束少）<br />对于当时，头脑中只是有这些朦胧的定义，而对于要实现何种方法，怎样把对对象操作来实现sql的拼接（这里就是一个反的过程），心里没底，但能够实现（只是功能的强弱问题）这一点很清楚，其实当时总是考虑实现后是否有其价值，是否对编程者有所帮助，这个是我一直没有抽时间做的主要原因。<br />正题：<br />通过这几天的一些空余时间，算完成了这个东西，不管它是否有用，只当是自己一次练习，现在把一些实现及调用的方法作个简介：<br />此工具自动生成两种文件vo与dao，<br />值对象（VO），每一个表对应一个vo，<br />vo与普通的javabean方法相同，有get和set方法，若表A的主键作为表B的外键，那么此vo有get B表的一个list（to-many）,如果表A中引用了B 表的主键作为外键，那么它有get B 表的一个vo,（to-one）<br />数据访问对象（DAO），此文件对编程者是透明的，可以不作了解，主要是一些访问数据的方法，由公用接口调用。<br />首先在你的程序中调用接口的实现<br />DataStore ds  =     com.piliskys.dataStore.DataManager.getInstance();<br />首先申明此句并未得到数据库的联接，而是当操作时才得到数据库联接的，而且在同一次会话中，此联接是相同的，具体可看ConnectionUtil此类，此类可以对数务进行设置，<br />在此接口中，没有定义提高和回滚操作，因为这些操作都可定义在开发框架中，正常结束就提交，捕获异常就回滚，<br />这两操作可直接调ConnectionUtil.currentConnection("piliskys")的操作，<br />那么我们开始介绍它的各个方法，在此为一个tb_person表为例：<br />tb_person(per_name varchar2,per_age number), per_name 为主键<br />  1，  public  boolean delete(Object obj)<br />  删除单个vo，需要设置主键,<br />程序：删一个叫 小李 的记录<br />DataStore ds  = com.piliskys.dataStore.DataManager.getInstance();//这里是没有跟数据库<br />          ds.delete(new TbPerson("小李"));//有主键的表都有此构造方法<br />    ConnectionUtil.currentConnection("piliskys").commit;<br />----------------------------------------------<br />就这么简单,以下调用DataStore 和提交略</p>
		<p>  2，  public  int deleteByVO(Object obj)//返回删除的记录数<br />注：如果未对obj设置任何条件将不会进行删除操作（因为个人认为这一般是不可能的，比较危险，所以加以控制）<br />程序：删除姓  李 的记录<br /> TbPerson tp =new TbPerson();<br /> tp.setPerName("李%");<br /> ds.deleteByVO(tp);<br />----------------------------------------------<br />程序：删除年龄大于等于 19岁的记录<br />  TbPerson tp =new TbPerson();<br /> tp.setPerAge(new Long(19),"&gt;=");//所有双参数方法都是为一些条件选择而用，后面一参数是用来设操作符的 &gt; &lt; &gt;= &lt;= !=,这些，方便吧<br /> ds.deleteByVO(tp);<br />----------------------------------------------<br />程序：删除年龄为空的记录<br />  TbPerson tp =new TbPerson();<br />  tp.setPerAge(null);<br />  ds.deleteByVO(tp); <br />----------------------------------------------<br />  3  public  int update(Object obj)<br />  此操作必须对主键进行设置，否则报错，设置其它字段属于为更新字段，其它字段未设置也会报错，说明没有可更新的字段，<br />程序 略<br />  4  public  int update(Object src,Object tar)//两对象必须同类(代表同一表)<br />   此操作 以前一对象做为条件进行批量更新后一对象设置的值,条件如是字符串可设置带%，条件对象也可加操作符，使用所有双参数设置都相同，其它可设置null，对''字符串不处理<br />程序 略<br />  5  public  boolean insert(Object obj)//未进行设置的字段为null<br />程序 插入一个叫 刘德华 年龄为38的记录<br />    TbPerson tp =new TbPerson();<br />    pt.setPerName("刘德华");<br />    pt.setPerAge(new Long(38));//age为Long型的话<br />    ds.insert(pt);<br />----------------------------------------------<br />程序 插入一个叫 罗拿多 的，年龄未知<br />    TbPerson tp =new TbPerson();<br />    pt.setPerName("罗拿多");<br />    ds.insert(pt);<br />----------------------------------------------<br /> 6   public  List selectAll(Class class1)<br />返回所有记录（但此处为考虑程序的效率，设置了一个最大数，可参看原文件中定义的MAX_SIZE可进行更改，<br />程序 查出所有tb_person表的记录<br />     List list = ds.selectAll(TbPerson.class);//也简单吧<br />-----------------------------------------------<br /> 7   public  void selectByPK(Object obj)<br /> 根据主键查找记录 ，这个是无返回值的，返回的就是本身的这个obj，为了省点内存，不用多new一个对象，而且实现的话主键已经设好，只要设其它字段，而且个人认为这样更好用，如果一个表无主键，那么查出来的就是数据库的第一条记录，利用 rownum=1实现，而不是查出的第一条，最大程度地提高数据库的效率，<br />程序  查出名叫 刘德华的记录<br />     TbPerson tp =new TbPerson("刘德华");<br />     ds.selectByPK(tp);<br />然后 这个tp就是一个与数据库主键为刘德华的记录，可以用它了<br />-------------------------------------------------<br /> 8  public  List selectByVO(Object obj)<br />此方法跟上面的deleteByVO的使用基本相同，返回值是vo的一个系列，<br />有一点不同的是，deleteByVO不设置任何查询条件将不会做操作，而此方法不设置任何条件的话就会查出所有的(个人认为查询是无危害性的，要查就查吧)<br />程序 参考 deleteByVO<br /> 9  public  List selectByVO(Object obj, int i, int j)<br />  此方法是上一方法的扩充，主要是用于分页操作，<br />程序 查姓 刘 的第11条记录到20条<br />        ds.selectByVO(new TbPerson("刘%"),11,20);//呵呵，感觉这样有点别扭<br />本应该 TbPerson tp =new TbPerson();<br />                tp.setPerName("刘%");<br />         ds.selectByVO(tp,11,20);//效果一样，<br />--------------------------------------------------<br /> 10  public  int sqlExcute(String s, List list)<br />这个是用于直接调 sql语句的操作，主要是执行一些更新，删除操作， list就是按条件顺序设置的参数集，PreparedStatement的操作<br />程序 略<br />  11  public List selectBySQL(String s, List list)<br />这个是用于直接调 sql语句的操作，执行查询操作， list就是按条件顺序设置的参数集，PreparedStatement的操作<br />return  List 含map的list,key为字段全部小写<br />程序 略<br /> 12  public  List selectByQuery(String s, List list)<br />这个是用于直接调 sql语句的操作，执行查询操作， list就是按条件顺序设置的参数集，PreparedStatement的操作<br />return  List 含map的list,key为字段全部小写<br />程序 略<br />  13  public  List selectByQuery(String s, List list,int i,int j)<br />同上，但主要是为了分页操作，<br />        throws DAOException;</p>
		<p>    public   void close()throws SQLException;<br />数据库联接关闭<br />关于事物提义及回滚请使用ConnectionUtil.currentConnection("piliskys")的操作。<br />此程序支持在控制台显示sql语句，可以在配制文件中设置是否显示，具体操作参看包中的说明。<br />========================================================================<br />当然个人的能力是有限的，如果你认为还应该实现什么功能，程序哪方面不如人意，本人只是按照自己的观点，站在一个编程者的角度考虑问题，不足之处可能很多，希望多提见意和建议，程序只是经本人进行测试，可能不是很全面，希望共同完善。<br />关于如何部署于程序，包中有说明。<br />注意事项：不支持复合主键作为其它表的外键,下次改进吧。</p>
		<p>最后：请尊重他人成果，谢谢您的支持，本人邮箱<a href="mailto:piliskys@itpub.net">piliskys@itpub.net</a>希望得到你的意见和建议。<br />========================================================================<br />此处下载原程序<a href="/Files/piliskys/jdbcutil.rar">http://www.blogjava.net/Files/piliskys/jdbcutil.rar</a></p>
<img src ="http://www.blogjava.net/piliskys/aggbug/38031.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/piliskys/" target="_blank">霹雳火</a> 2006-03-29 13:43 <a href="http://www.blogjava.net/piliskys/archive/2006/03/29/38031.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库在java中占用过程杂谈</title><link>http://www.blogjava.net/piliskys/archive/2006/03/21/36540.html</link><dc:creator>霹雳火</dc:creator><author>霹雳火</author><pubDate>Tue, 21 Mar 2006 00:45:00 GMT</pubDate><guid>http://www.blogjava.net/piliskys/archive/2006/03/21/36540.html</guid><wfw:comment>http://www.blogjava.net/piliskys/comments/36540.html</wfw:comment><comments>http://www.blogjava.net/piliskys/archive/2006/03/21/36540.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/piliskys/comments/commentRss/36540.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/piliskys/services/trackbacks/36540.html</trackback:ping><description><![CDATA[众所都知，数据库事务及联接在java操作中是一个昂贵的开销，一些程序及效率的优化在这里有很大的优化空间，但感觉数据库的开启关闭好像没有统一和最优的方案，<br /><img src="http://piliskys.itpub.net/get/8994/10235-1.JPG" /><br />如上图:假设AF为java中一次会话的过程，而bc和de表示java与数据库操作占用的过程（当然在会话中可能存在不止两次的数据库操作），现在可能有下面几种情况：<br />1),在A之前就开启数据库及事务，在F之后提交或回滚事务和断开数据库（这可能在有些架构中是这样实现的，因为作为程序员不用考虑数据库的联接关闭及事务，统一由公用类完成）。<br />2),在b之时开启在c之后断开，在d之时又开启，在e之后断开，这也很常见，典型的用时开，用完就断。<br />3),在b之时开启，在F之后断开，其实这种是跟第一种相同，只是一种改时罢了，因为我们可以确定在一次会话中第一次用数据库，有人可能会说在e之后断开不是更好，节省了ef过程的数据库联接开销，理论上是这样的，但是这是做不到的，因为我们不知道用了这次数据库后在这次会话中就不会再用了，所以我们只能在f点结束后统一断开及处理事务。<br />4),可能还有其它的方案是我不清楚的。<br />因此，我们可以看到在4方案没有明确定义之前，只有2和3是可比较的，对于数据库占有的时间来看，2方案是肯定优于3的，但是我们清楚数据库的开启及联接本身也是一个比较大的开销，就像一个电视机，多开些可能会浪费些电，但如果总是一开一关的话，电视机也容易坏。如要有一个统一的转化参考标准：一次开销代表多少，而占用的时间又代表多少，那么我们肯定可以选出一个最优方案来，但这看来是很难做到的(看来软件的设计远没有种田来的实在啊).<br />个人感觉应该采取第3种方案，因为一些非数据库的处理多半是内存中的处理及运算，应该很快(但话是不能绝对的，java的一些文件处理及远程调用等可能也很慢)。<br />如在数据库调用方面有何见解，望多探讨，以上属个人愚见，望能抛砖引玉。<img src ="http://www.blogjava.net/piliskys/aggbug/36540.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/piliskys/" target="_blank">霹雳火</a> 2006-03-21 08:45 <a href="http://www.blogjava.net/piliskys/archive/2006/03/21/36540.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>找跳马最短路径的算法</title><link>http://www.blogjava.net/piliskys/archive/2006/03/20/36320.html</link><dc:creator>霹雳火</dc:creator><author>霹雳火</author><pubDate>Mon, 20 Mar 2006 06:36:00 GMT</pubDate><guid>http://www.blogjava.net/piliskys/archive/2006/03/20/36320.html</guid><wfw:comment>http://www.blogjava.net/piliskys/comments/36320.html</wfw:comment><comments>http://www.blogjava.net/piliskys/archive/2006/03/20/36320.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/piliskys/comments/commentRss/36320.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/piliskys/services/trackbacks/36320.html</trackback:ping><description><![CDATA[
		<p>今天在网上看到一个{找跳马最短路径的算法} Find shortest way of a Chinese chess horse that jump from (0, 0) to (m, n) in a grid area of m*n, and output the step number and way points. For example, in a grid area of (3 * 2), a horse can jump as (0, 0)-&gt;(1, 2)-&gt;(2, 0)-&gt;(3,2). And step number is 3. 感觉在一个m*n的矩阵中跳要考虑边界问题，在此用java写了一下，没有考虑边界，以下程序只在无限二维中成立<br />代码如下 </p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img id="Codehighlighter1_0_114_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_114_Open_Text.style.display='none'; Codehighlighter1_0_114_Closed_Image.style.display='inline'; Codehighlighter1_0_114_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
				<img id="Codehighlighter1_0_114_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_0_114_Closed_Text.style.display='none'; Codehighlighter1_0_114_Open_Image.style.display='inline'; Codehighlighter1_0_114_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				<span id="Codehighlighter1_0_114_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span>
				<span id="Codehighlighter1_0_114_Open_Text">
						<span style="COLOR: #008000">/**</span>
						<span style="COLOR: #008000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * </span>
						<span style="COLOR: #808080">@author</span>
						<span style="COLOR: #008000"> : &lt;a href="piliskys@163.com"&gt;piliskys&lt;/a&gt;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * Date: 2006-2-22<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * Time: 13:50:56<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * 找跳马最短路径的算法<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * <br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /> </span>
						<span style="COLOR: #008000">*/</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img id="Codehighlighter1_138_2339_Open_Image" onclick="this.style.display='none'; Codehighlighter1_138_2339_Open_Text.style.display='none'; Codehighlighter1_138_2339_Closed_Image.style.display='inline'; Codehighlighter1_138_2339_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_138_2339_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_138_2339_Closed_Text.style.display='none'; Codehighlighter1_138_2339_Open_Image.style.display='inline'; Codehighlighter1_138_2339_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">public</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">class</span>
				<span style="COLOR: #000000"> HorsePro </span>
				<span id="Codehighlighter1_138_2339_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_138_2339_Open_Text">
						<span style="COLOR: #000000">{<br /><img id="Codehighlighter1_182_679_Open_Image" onclick="this.style.display='none'; Codehighlighter1_182_679_Open_Text.style.display='none'; Codehighlighter1_182_679_Closed_Image.style.display='inline'; Codehighlighter1_182_679_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_182_679_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_182_679_Closed_Text.style.display='none'; Codehighlighter1_182_679_Open_Image.style.display='inline'; Codehighlighter1_182_679_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">static</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">void</span>
						<span style="COLOR: #000000"> main(String[] arg) </span>
						<span id="Codehighlighter1_182_679_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_182_679_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        HorsePosition start </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">new</span>
								<span style="COLOR: #000000"> HorsePosition(</span>
								<span style="COLOR: #000000">0</span>
								<span style="COLOR: #000000">, </span>
								<span style="COLOR: #000000">0</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        HorsePosition end </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">new</span>
								<span style="COLOR: #000000"> HorsePosition(</span>
								<span style="COLOR: #000000">0</span>
								<span style="COLOR: #000000">,</span>
								<span style="COLOR: #000000">1</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">int</span>
								<span style="COLOR: #000000"> index</span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000">0</span>
								<span style="COLOR: #000000">;<br /><img id="Codehighlighter1_333_673_Open_Image" onclick="this.style.display='none'; Codehighlighter1_333_673_Open_Text.style.display='none'; Codehighlighter1_333_673_Closed_Image.style.display='inline'; Codehighlighter1_333_673_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_333_673_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_333_673_Closed_Text.style.display='none'; Codehighlighter1_333_673_Open_Image.style.display='inline'; Codehighlighter1_333_673_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">while</span>
								<span style="COLOR: #000000"> (</span>
								<span style="COLOR: #0000ff">true</span>
								<span style="COLOR: #000000">) </span>
								<span id="Codehighlighter1_333_673_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.blogjava.net/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_333_673_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />               index</span>
										<span style="COLOR: #000000">++</span>
										<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            HorsePosition her </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> getNext(start, end);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
										<span style="COLOR: #0000ff">if</span>
										<span style="COLOR: #000000"> (her.positionX </span>
										<span style="COLOR: #000000">==</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #000000">0</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #000000">&amp;&amp;</span>
										<span style="COLOR: #000000"> her.positionY </span>
										<span style="COLOR: #000000">==</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #000000">0</span>
										<span style="COLOR: #000000">||</span>
										<span style="COLOR: #000000">index</span>
										<span style="COLOR: #000000">==</span>
										<span style="COLOR: #000000">7</span>
										<span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
										<span style="COLOR: #0000ff">break</span>
										<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            start </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #0000ff">new</span>
										<span style="COLOR: #000000"> HorsePosition(start.positionX </span>
										<span style="COLOR: #000000">+</span>
										<span style="COLOR: #000000"> her.positionX, start.positionY </span>
										<span style="COLOR: #000000">+</span>
										<span style="COLOR: #000000"> her.positionY);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            System.out.println(</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">第[</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">+</span>
										<span style="COLOR: #000000">index</span>
										<span style="COLOR: #000000">+</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">]步=&gt;</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">+</span>
										<span style="COLOR: #000000">start);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img id="Codehighlighter1_687_692_Open_Image" onclick="this.style.display='none'; Codehighlighter1_687_692_Open_Text.style.display='none'; Codehighlighter1_687_692_Closed_Image.style.display='inline'; Codehighlighter1_687_692_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_687_692_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_687_692_Closed_Text.style.display='none'; Codehighlighter1_687_692_Open_Image.style.display='inline'; Codehighlighter1_687_692_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />      </span>
						<span id="Codehighlighter1_687_692_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span>
						<span id="Codehighlighter1_687_692_Open_Text">
								<span style="COLOR: #008000">/**</span>
								<span style="COLOR: #008000"> </span>
								<span style="COLOR: #008000">*/</span>
						</span>
						<span id="Codehighlighter1_693_725_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span>
						<span id="Codehighlighter1_693_725_Open_Text">
								<span style="COLOR: #008000">/**</span>
								<span style="COLOR: #008000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />       * 以下为构造一个位置类<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />       </span>
								<span style="COLOR: #008000">*/</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img id="Codehighlighter1_758_1037_Open_Image" onclick="this.style.display='none'; Codehighlighter1_758_1037_Open_Text.style.display='none'; Codehighlighter1_758_1037_Closed_Image.style.display='inline'; Codehighlighter1_758_1037_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_758_1037_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_758_1037_Closed_Text.style.display='none'; Codehighlighter1_758_1037_Open_Image.style.display='inline'; Codehighlighter1_758_1037_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">static</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">class</span>
						<span style="COLOR: #000000"> HorsePosition </span>
						<span id="Codehighlighter1_758_1037_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_758_1037_Open_Text">
								<span style="COLOR: #000000">{<br /><img id="Codehighlighter1_796_870_Open_Image" onclick="this.style.display='none'; Codehighlighter1_796_870_Open_Text.style.display='none'; Codehighlighter1_796_870_Closed_Image.style.display='inline'; Codehighlighter1_796_870_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_796_870_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_796_870_Closed_Text.style.display='none'; Codehighlighter1_796_870_Open_Image.style.display='inline'; Codehighlighter1_796_870_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        HorsePosition(</span>
								<span style="COLOR: #0000ff">int</span>
								<span style="COLOR: #000000"> a, </span>
								<span style="COLOR: #0000ff">int</span>
								<span style="COLOR: #000000"> b) </span>
								<span id="Codehighlighter1_796_870_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.blogjava.net/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_796_870_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
										<span style="COLOR: #0000ff">this</span>
										<span style="COLOR: #000000">.positionX </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> a;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
										<span style="COLOR: #0000ff">this</span>
										<span style="COLOR: #000000">.positionY </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> b;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">int</span>
								<span style="COLOR: #000000"> positionX;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">int</span>
								<span style="COLOR: #000000"> positionY;<br /><img id="Codehighlighter1_951_1031_Open_Image" onclick="this.style.display='none'; Codehighlighter1_951_1031_Open_Text.style.display='none'; Codehighlighter1_951_1031_Closed_Image.style.display='inline'; Codehighlighter1_951_1031_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_951_1031_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_951_1031_Closed_Text.style.display='none'; Codehighlighter1_951_1031_Open_Image.style.display='inline'; Codehighlighter1_951_1031_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">public</span>
								<span style="COLOR: #000000"> String toString() </span>
								<span id="Codehighlighter1_951_1031_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.blogjava.net/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_951_1031_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
										<span style="COLOR: #0000ff">return</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">[</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #000000">+</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #0000ff">this</span>
										<span style="COLOR: #000000">.positionX </span>
										<span style="COLOR: #000000">+</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">,</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #000000">+</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #0000ff">this</span>
										<span style="COLOR: #000000">.positionY </span>
										<span style="COLOR: #000000">+</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">]</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
								<img id="Codehighlighter1_1114_2335_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1114_2335_Open_Text.style.display='none'; Codehighlighter1_1114_2335_Closed_Image.style.display='inline'; Codehighlighter1_1114_2335_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_1114_2335_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1114_2335_Closed_Text.style.display='none'; Codehighlighter1_1114_2335_Open_Image.style.display='inline'; Codehighlighter1_1114_2335_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">static</span>
						<span style="COLOR: #000000"> HorsePosition getNext(HorsePosition a, HorsePosition b) </span>
						<span id="Codehighlighter1_1114_2335_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_1114_2335_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">int</span>
								<span style="COLOR: #000000"> x, y, z;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        x </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> b.positionX </span>
								<span style="COLOR: #000000">-</span>
								<span style="COLOR: #000000"> a.positionX;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        y </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> b.positionY </span>
								<span style="COLOR: #000000">-</span>
								<span style="COLOR: #000000"> a.positionY;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        z </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> Math.abs(x) </span>
								<span style="COLOR: #000000">+</span>
								<span style="COLOR: #000000"> Math.abs(y);<br /><img id="Codehighlighter1_1274_1764_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1274_1764_Open_Text.style.display='none'; Codehighlighter1_1274_1764_Closed_Image.style.display='inline'; Codehighlighter1_1274_1764_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1274_1764_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1274_1764_Closed_Text.style.display='none'; Codehighlighter1_1274_1764_Open_Image.style.display='inline'; Codehighlighter1_1274_1764_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">if</span>
								<span style="COLOR: #000000"> (z </span>
								<span style="COLOR: #000000">&gt;=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">3</span>
								<span style="COLOR: #000000">) </span>
								<span id="Codehighlighter1_1274_1764_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.blogjava.net/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_1274_1764_Open_Text">
										<span style="COLOR: #000000">{<br /><img id="Codehighlighter1_1319_1528_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1319_1528_Open_Text.style.display='none'; Codehighlighter1_1319_1528_Closed_Image.style.display='inline'; Codehighlighter1_1319_1528_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1319_1528_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1319_1528_Closed_Text.style.display='none'; Codehighlighter1_1319_1528_Open_Image.style.display='inline'; Codehighlighter1_1319_1528_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span>
										<span style="COLOR: #0000ff">if</span>
										<span style="COLOR: #000000"> (Math.abs(x) </span>
										<span style="COLOR: #000000">&gt;</span>
										<span style="COLOR: #000000"> Math.abs(y)) </span>
										<span id="Codehighlighter1_1319_1528_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
												<img src="http://www.blogjava.net/images/dot.gif" />
										</span>
										<span id="Codehighlighter1_1319_1528_Open_Text">
												<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
												<span style="COLOR: #0000ff">int</span>
												<span style="COLOR: #000000"> yy;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
												<span style="COLOR: #0000ff">if</span>
												<span style="COLOR: #000000"> (y </span>
												<span style="COLOR: #000000">==</span>
												<span style="COLOR: #000000"> </span>
												<span style="COLOR: #000000">0</span>
												<span style="COLOR: #000000">)  yy </span>
												<span style="COLOR: #000000">=</span>
												<span style="COLOR: #000000"> </span>
												<span style="COLOR: #000000">1</span>
												<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
												<span style="COLOR: #0000ff">else</span>
												<span style="COLOR: #000000">
														<br />
														<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                    yy </span>
												<span style="COLOR: #000000">=</span>
												<span style="COLOR: #000000"> y </span>
												<span style="COLOR: #000000">/</span>
												<span style="COLOR: #000000"> Math.abs(y);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
												<span style="COLOR: #0000ff">return</span>
												<span style="COLOR: #000000"> (</span>
												<span style="COLOR: #0000ff">new</span>
												<span style="COLOR: #000000"> HorsePosition(</span>
												<span style="COLOR: #000000">2</span>
												<span style="COLOR: #000000"> </span>
												<span style="COLOR: #000000">*</span>
												<span style="COLOR: #000000"> x </span>
												<span style="COLOR: #000000">/</span>
												<span style="COLOR: #000000"> Math.abs(x), yy));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />            }</span>
										</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #0000ff">else</span>
										<span style="COLOR: #000000">
												<br />
												<img id="Codehighlighter1_1547_1754_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1547_1754_Open_Text.style.display='none'; Codehighlighter1_1547_1754_Closed_Image.style.display='inline'; Codehighlighter1_1547_1754_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
												<img id="Codehighlighter1_1547_1754_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1547_1754_Closed_Text.style.display='none'; Codehighlighter1_1547_1754_Open_Image.style.display='inline'; Codehighlighter1_1547_1754_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span>
										<span id="Codehighlighter1_1547_1754_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
												<img src="http://www.blogjava.net/images/dot.gif" />
										</span>
										<span id="Codehighlighter1_1547_1754_Open_Text">
												<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
												<span style="COLOR: #0000ff">int</span>
												<span style="COLOR: #000000"> xx;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
												<span style="COLOR: #0000ff">if</span>
												<span style="COLOR: #000000"> (x </span>
												<span style="COLOR: #000000">==</span>
												<span style="COLOR: #000000"> </span>
												<span style="COLOR: #000000">0</span>
												<span style="COLOR: #000000">)  xx </span>
												<span style="COLOR: #000000">=</span>
												<span style="COLOR: #000000"> </span>
												<span style="COLOR: #000000">1</span>
												<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
												<span style="COLOR: #0000ff">else</span>
												<span style="COLOR: #000000">
														<br />
														<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                    xx </span>
												<span style="COLOR: #000000">=</span>
												<span style="COLOR: #000000"> x </span>
												<span style="COLOR: #000000">/</span>
												<span style="COLOR: #000000"> Math.abs(x);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
												<span style="COLOR: #0000ff">return</span>
												<span style="COLOR: #000000"> (</span>
												<span style="COLOR: #0000ff">new</span>
												<span style="COLOR: #000000"> HorsePosition(xx, </span>
												<span style="COLOR: #000000">2</span>
												<span style="COLOR: #000000"> </span>
												<span style="COLOR: #000000">*</span>
												<span style="COLOR: #000000"> y </span>
												<span style="COLOR: #000000">/</span>
												<span style="COLOR: #000000"> Math.abs(y)));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />            }</span>
										</span>
										<span style="COLOR: #000000">
												<br />
												<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
								</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">else</span>
								<span style="COLOR: #000000">
										<br />
										<img id="Codehighlighter1_1791_2066_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1791_2066_Open_Text.style.display='none'; Codehighlighter1_1791_2066_Closed_Image.style.display='inline'; Codehighlighter1_1791_2066_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
										<img id="Codehighlighter1_1791_2066_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1791_2066_Closed_Text.style.display='none'; Codehighlighter1_1791_2066_Open_Image.style.display='inline'; Codehighlighter1_1791_2066_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />         </span>
								<span style="COLOR: #0000ff">if</span>
								<span style="COLOR: #000000"> (z </span>
								<span style="COLOR: #000000">==</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">2</span>
								<span style="COLOR: #000000">)</span>
								<span id="Codehighlighter1_1791_2066_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.blogjava.net/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_1791_2066_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img id="Codehighlighter1_1814_1881_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1814_1881_Open_Text.style.display='none'; Codehighlighter1_1814_1881_Closed_Image.style.display='inline'; Codehighlighter1_1814_1881_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1814_1881_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1814_1881_Closed_Text.style.display='none'; Codehighlighter1_1814_1881_Open_Image.style.display='inline'; Codehighlighter1_1814_1881_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span>
										<span style="COLOR: #0000ff">if</span>
										<span style="COLOR: #000000">(x</span>
										<span style="COLOR: #000000">==</span>
										<span style="COLOR: #000000">0</span>
										<span style="COLOR: #000000">)</span>
										<span id="Codehighlighter1_1814_1881_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
												<img src="http://www.blogjava.net/images/dot.gif" />
										</span>
										<span id="Codehighlighter1_1814_1881_Open_Text">
												<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
												<span style="COLOR: #0000ff">return</span>
												<span style="COLOR: #000000">    </span>
												<span style="COLOR: #0000ff">new</span>
												<span style="COLOR: #000000"> HorsePosition(</span>
												<span style="COLOR: #000000">2</span>
												<span style="COLOR: #000000">,y</span>
												<span style="COLOR: #000000">/</span>
												<span style="COLOR: #000000">2</span>
												<span style="COLOR: #000000"> );<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />            }</span>
										</span>
										<span style="COLOR: #000000">
												<br />
												<img id="Codehighlighter1_1903_1970_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1903_1970_Open_Text.style.display='none'; Codehighlighter1_1903_1970_Closed_Image.style.display='inline'; Codehighlighter1_1903_1970_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
												<img id="Codehighlighter1_1903_1970_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1903_1970_Closed_Text.style.display='none'; Codehighlighter1_1903_1970_Open_Image.style.display='inline'; Codehighlighter1_1903_1970_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span>
										<span style="COLOR: #0000ff">if</span>
										<span style="COLOR: #000000">(y</span>
										<span style="COLOR: #000000">==</span>
										<span style="COLOR: #000000">0</span>
										<span style="COLOR: #000000">)</span>
										<span id="Codehighlighter1_1903_1970_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
												<img src="http://www.blogjava.net/images/dot.gif" />
										</span>
										<span id="Codehighlighter1_1903_1970_Open_Text">
												<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
												<span style="COLOR: #0000ff">return</span>
												<span style="COLOR: #000000">    </span>
												<span style="COLOR: #0000ff">new</span>
												<span style="COLOR: #000000"> HorsePosition(x</span>
												<span style="COLOR: #000000">/</span>
												<span style="COLOR: #000000">2</span>
												<span style="COLOR: #000000">,</span>
												<span style="COLOR: #000000">1</span>
												<span style="COLOR: #000000"> );<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />            }</span>
										</span>
										<span style="COLOR: #000000">
												<br />
												<img id="Codehighlighter1_1992_2055_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1992_2055_Open_Text.style.display='none'; Codehighlighter1_1992_2055_Closed_Image.style.display='inline'; Codehighlighter1_1992_2055_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
												<img id="Codehighlighter1_1992_2055_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1992_2055_Closed_Text.style.display='none'; Codehighlighter1_1992_2055_Open_Image.style.display='inline'; Codehighlighter1_1992_2055_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />          </span>
										<span style="COLOR: #0000ff">if</span>
										<span style="COLOR: #000000">(x</span>
										<span style="COLOR: #000000">*</span>
										<span style="COLOR: #000000">y</span>
										<span style="COLOR: #000000">!=</span>
										<span style="COLOR: #000000">0</span>
										<span style="COLOR: #000000">)</span>
										<span id="Codehighlighter1_1992_2055_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
												<img src="http://www.blogjava.net/images/dot.gif" />
										</span>
										<span id="Codehighlighter1_1992_2055_Open_Text">
												<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />             </span>
												<span style="COLOR: #0000ff">return</span>
												<span style="COLOR: #000000">    </span>
												<span style="COLOR: #0000ff">new</span>
												<span style="COLOR: #000000"> HorsePosition(</span>
												<span style="COLOR: #000000">2</span>
												<span style="COLOR: #000000">*</span>
												<span style="COLOR: #000000">x,</span>
												<span style="COLOR: #000000">-</span>
												<span style="COLOR: #000000">y );<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />          }</span>
										</span>
										<span style="COLOR: #000000">
												<br />
												<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />         }</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img id="Codehighlighter1_2090_2269_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2090_2269_Open_Text.style.display='none'; Codehighlighter1_2090_2269_Closed_Image.style.display='inline'; Codehighlighter1_2090_2269_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
										<img id="Codehighlighter1_2090_2269_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2090_2269_Closed_Text.style.display='none'; Codehighlighter1_2090_2269_Open_Image.style.display='inline'; Codehighlighter1_2090_2269_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />         </span>
								<span style="COLOR: #0000ff">else</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">if</span>
								<span style="COLOR: #000000">(z</span>
								<span style="COLOR: #000000">==</span>
								<span style="COLOR: #000000">1</span>
								<span style="COLOR: #000000">)</span>
								<span id="Codehighlighter1_2090_2269_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.blogjava.net/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_2090_2269_Open_Text">
										<span style="COLOR: #000000">{ </span>
										<span style="COLOR: #008000">//</span>
										<span style="COLOR: #008000">说明z==1的情况了</span>
										<span style="COLOR: #008000">
												<br />
												<img id="Codehighlighter1_2126_2194_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2126_2194_Open_Text.style.display='none'; Codehighlighter1_2126_2194_Closed_Image.style.display='inline'; Codehighlighter1_2126_2194_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
												<img id="Codehighlighter1_2126_2194_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2126_2194_Closed_Text.style.display='none'; Codehighlighter1_2126_2194_Open_Image.style.display='inline'; Codehighlighter1_2126_2194_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />
										</span>
										<span style="COLOR: #000000">             </span>
										<span style="COLOR: #0000ff">if</span>
										<span style="COLOR: #000000">(x</span>
										<span style="COLOR: #000000">==</span>
										<span style="COLOR: #000000">0</span>
										<span style="COLOR: #000000">)</span>
										<span id="Codehighlighter1_2126_2194_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
												<img src="http://www.blogjava.net/images/dot.gif" />
										</span>
										<span id="Codehighlighter1_2126_2194_Open_Text">
												<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />               </span>
												<span style="COLOR: #0000ff">return</span>
												<span style="COLOR: #000000">     </span>
												<span style="COLOR: #0000ff">new</span>
												<span style="COLOR: #000000"> HorsePosition(</span>
												<span style="COLOR: #000000">1</span>
												<span style="COLOR: #000000">,</span>
												<span style="COLOR: #000000">2</span>
												<span style="COLOR: #000000">*</span>
												<span style="COLOR: #000000">y );<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />             }</span>
										</span>
										<span style="COLOR: #000000">
												<br />
												<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />             </span>
										<span style="COLOR: #0000ff">else</span>
										<span style="COLOR: #000000">
												<br />
												<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
										<span style="COLOR: #0000ff">return</span>
										<span style="COLOR: #000000">     </span>
										<span style="COLOR: #0000ff">new</span>
										<span style="COLOR: #000000"> HorsePosition(</span>
										<span style="COLOR: #000000">2</span>
										<span style="COLOR: #000000">*</span>
										<span style="COLOR: #000000">x,</span>
										<span style="COLOR: #000000">1</span>
										<span style="COLOR: #000000"> );<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />         }</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />      </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000">以下说明完成了</span>
								<span style="COLOR: #008000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								</span>
								<span style="COLOR: #000000">       </span>
								<span style="COLOR: #0000ff">return</span>
								<span style="COLOR: #000000">  </span>
								<span style="COLOR: #0000ff">new</span>
								<span style="COLOR: #000000">   HorsePosition(</span>
								<span style="COLOR: #000000">0</span>
								<span style="COLOR: #000000">,</span>
								<span style="COLOR: #000000">0</span>
								<span style="COLOR: #000000"> );<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
		</div>
<img src ="http://www.blogjava.net/piliskys/aggbug/36320.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/piliskys/" target="_blank">霹雳火</a> 2006-03-20 14:36 <a href="http://www.blogjava.net/piliskys/archive/2006/03/20/36320.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数字转换成大写金额</title><link>http://www.blogjava.net/piliskys/archive/2006/03/20/36319.html</link><dc:creator>霹雳火</dc:creator><author>霹雳火</author><pubDate>Mon, 20 Mar 2006 06:34:00 GMT</pubDate><guid>http://www.blogjava.net/piliskys/archive/2006/03/20/36319.html</guid><wfw:comment>http://www.blogjava.net/piliskys/comments/36319.html</wfw:comment><comments>http://www.blogjava.net/piliskys/archive/2006/03/20/36319.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/piliskys/comments/commentRss/36319.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/piliskys/services/trackbacks/36319.html</trackback:ping><description><![CDATA[
		<p>早此日子，写了个数字转为金额的，今天在电脑上找到的，虽然网上这类代码很多，但毕竟花了些心思，所以在此记上，javascript实现的，代码如下：<br /></p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">html</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">body</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">form</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">input type</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">text</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> value</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">1034354.245</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> name</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">text1</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">/&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">input type</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">button</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> value</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">out</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> onclick</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">piliskys()</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">/&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">form</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">body</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">&lt;/</span>
				<span style="COLOR: #000000">html</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">script</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img id="Codehighlighter1_185_297_Open_Image" onclick="this.style.display='none'; Codehighlighter1_185_297_Open_Text.style.display='none'; Codehighlighter1_185_297_Closed_Image.style.display='inline'; Codehighlighter1_185_297_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_185_297_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_185_297_Closed_Text.style.display='none'; Codehighlighter1_185_297_Open_Image.style.display='inline'; Codehighlighter1_185_297_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">function</span>
				<span style="COLOR: #000000"> piliskys()</span>
				<span id="Codehighlighter1_185_297_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_185_297_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span>
						<span style="COLOR: #0000ff">var</span>
						<span style="COLOR: #000000"> test1</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> document.all.text1.value;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />       <br /><img id="Codehighlighter1_251_280_Open_Image" onclick="this.style.display='none'; Codehighlighter1_251_280_Open_Text.style.display='none'; Codehighlighter1_251_280_Closed_Image.style.display='inline'; Codehighlighter1_251_280_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_251_280_Closed_Image" style="DISPLAY: none" onc