﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-java之家</title><link>http://www.blogjava.net/kang-ak/</link><description>开发心得</description><language>zh-cn</language><lastBuildDate>Wed, 06 May 2026 00:03:47 GMT</lastBuildDate><pubDate>Wed, 06 May 2026 00:03:47 GMT</pubDate><ttl>60</ttl><item><title>页面跳转</title><link>http://www.blogjava.net/kang-ak/archive/2007/12/14/167749.html</link><dc:creator>java fan nb</dc:creator><author>java fan nb</author><pubDate>Fri, 14 Dec 2007 05:15:00 GMT</pubDate><guid>http://www.blogjava.net/kang-ak/archive/2007/12/14/167749.html</guid><wfw:comment>http://www.blogjava.net/kang-ak/comments/167749.html</wfw:comment><comments>http://www.blogjava.net/kang-ak/archive/2007/12/14/167749.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kang-ak/comments/commentRss/167749.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kang-ak/services/trackbacks/167749.html</trackback:ping><description><![CDATA[<div class="postText">
<p>　　&nbsp;对于开发对于页面连接尤如蜘蛛网一样，经常会有一堆具有千头万绪的关联页面组成的大中型Web应用来说，如何组织及处理页面的跳转成为一个MVC框架非常关键因素。Struts1之所以能得到大家的认可，是因为他基本解决了数据与视图分离的问题，之所以Struts升级一个版本到Struts2后不再&#8220;Struts&#8221;了，核心原因除了框架核心技术落后、很多地方受限制以外，一个原因是他无法很好地组织及处理页面跳转问题。当然尽管升级到了Struts2，但相对于Rails等新兴MVC的框架来说，显得死板了很多。<br />
&nbsp;　　而EasyJWeb在页面组织及处理页面跳转等方面，提供了很多更加灵活的功能，很多思想来自于Spring MVC、Rails等一些新兴Web框架的精髓，他能让你用比较简洁的代码、甚至不用代码来实现页面的跳转。<br />
　　在Web应用程序开发中，我们经常遇到如下的需求：<br />
　　1、从这个页面连接到另外一个页面；<br />
　　2、在服务器执行完某一段程序后，把输出导向另外一个页面；<br />
　　3、在服务器端执行完某一段程序后，把输出导向到另外一段程序继续执行；<br />
　　4、在服务器程序执行完后，选择使用一个页面呈现用户输出；<br />
　　5、页面跳转要具有较强的环境适应能力，比如部署在跟目录下跟部署到其它Context目录下都能执行正确的跳转；<br />
　　6、还有更变态的，比如EasyJF官网，要求使用<a href="http://www.easyjf.com/news.ejf" target="_blank">动态地址</a>访问的时候，看到的地址全是动态，当使用<a href="http://www.easyjf.com/index.html" target="_blank">静态地址</a>访问的时候，地址全是静态的，Java Web服务器不能工作了，Apache或IIS也要保证网页能正常访问。<br />
　　7、有的人喜欢使用/user/edit/1这样的url，有的人喜欢使用/user.ejf?cmd=edit&amp;id=1这样的url，我们要求不管使用哪一种url样式访问页面，连接都会非常友好的变成用户喜爱的形式。</p>
<p>　　&nbsp;可以说，现在很少有框架能完全满足或者为用户考虑到如此复杂多变而对于我们国人来说应用性又非常广泛的需求。一些框架即使提供上面一些功能也是以书写复杂的代码及配置文件为代价的。在EasyJWeb中，提供了上面所列的这些功能，并提供了非常简洁的调用接口及方法。<br />
　　&nbsp;针对上面的几点，EasyJWeb的解决方案：<br />
　　1,这个用&lt;a&gt;标签，不用说了。<br />
　　2、在服务器执行完某一段程序后，把输出导向另外一个页面；<br />
　　<strong>返回html类型的Page对象。<br />
</strong>　　3、在服务器端执行完某一段程序后，把输出导向到另外一段程序继续执行；<br />
　　<strong>&nbsp;使用forward或者go方法。</strong><br />
　　4、在服务器程序执行完后，选择使用一个页面呈现用户输出；<br />
　　&nbsp;<strong>使用page方法。<br />
</strong>　　5、页面跳转要具有较强的环境适应能力，比如部署在跟目录下跟部署到其它Context目录下都能执行正确的跳转；<br />
　　<strong>在页面模板中使用$html.url，比如：&lt;a href="$html.url('user.list')"&gt;用户列表&lt;/a&gt;。<br />
</strong>　　6、不同地址样式转移<br />
　　<strong>在页面模板中使用$html.forward，比如&lt;a href="$html. forward'('news.technic')"&gt;技术前沿&lt;/a&gt;。这样动态的时候访问到的是news.ejf?cmd= technic，静态的时候访问到的是/news/technic.html。</strong><br />
　　7、传统及现代的URL样式转换<br />
　　<strong>&nbsp;仍然是使用$html.url，或$html.forward标签，他能感知你的url样式。比如：&lt;a href="$html.url('user.add')"&gt;添加用户&lt;/a&gt;。你使用user.ejf?cmd=lsit,访问应用，则当点添加user.ejf?cmd=add。而如果你使用/ejf/user/list访问应用，则编辑按钮的连接变成ejf/user/add。<br />
</strong>　　<br />
　　在代码中，除了可以使用最原始的return new Page()方式返回用户的视图模板以外，还可以使用一些快捷方法来实现灵活的视图查询及跳转。比如，go、forward、page等方法。下面看一个用户添删改查的示例中的Action代码如下：<br />
</p>
<div style="border-right: windowtext 0.5pt solid; padding-right: 5.4pt; border-top: windowtext 0.5pt solid; padding-left: 5.4pt; background: #e6e6e6; padding-bottom: 4px; border-left: windowtext 0.5pt solid; width: 95%; word-break: break-all; padding-top: 4px; border-bottom: windowtext 0.5pt solid">
<div><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.easyjf.container.annonation.Inject;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.easyjf.core.support.query.QueryObject;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.easyjf.util.CommUtil;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.easyjf.web.WebForm;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.easyjf.web.core.AbstractPageCmdAction;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.easyjf.web.tools.IPageList;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img id="_305_1412_Open_Image" onclick="this.style.display='none'; document.getElementById('_305_1412_Open_Text').style.display='none'; document.getElementById('_305_1412_Closed_Image').style.display='inline'; document.getElementById('_305_1412_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="_305_1412_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('_305_1412_Closed_Text').style.display='none'; document.getElementById('_305_1412_Open_Image').style.display='inline'; document.getElementById('_305_1412_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;UserAction&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;AbstractPageCmdAction&nbsp;</span><span id="_305_1412_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="_305_1412_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;@Inject<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;UserService&nbsp;service;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;<br />
<img id="_395_424_Open_Image" onclick="this.style.display='none'; document.getElementById('_395_424_Open_Text').style.display='none'; document.getElementById('_395_424_Closed_Image').style.display='inline'; document.getElementById('_395_424_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_395_424_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('_395_424_Closed_Text').style.display='none'; document.getElementById('_395_424_Open_Image').style.display='inline'; document.getElementById('_395_424_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setService(UserService&nbsp;service)&nbsp;</span><span id="_395_424_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="_395_424_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.service&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;service;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;}</span></span><span style="color: #000000"><br />
<img id="_427_462_Open_Image" onclick="this.style.display='none'; document.getElementById('_427_462_Open_Text').style.display='none'; document.getElementById('_427_462_Closed_Image').style.display='inline'; document.getElementById('_427_462_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_427_462_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('_427_462_Closed_Text').style.display='none'; document.getElementById('_427_462_Open_Image').style.display='inline'; document.getElementById('_427_462_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;</span><span id="_427_462_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">/**&nbsp;*/</span><span id="_427_462_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;*&nbsp;显示添加用户的界面user/edit.html<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;add()<br />
<img id="_484_503_Open_Image" onclick="this.style.display='none'; document.getElementById('_484_503_Open_Text').style.display='none'; document.getElementById('_484_503_Closed_Image').style.display='inline'; document.getElementById('_484_503_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_484_503_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('_484_503_Closed_Text').style.display='none'; document.getElementById('_484_503_Open_Image').style.display='inline'; document.getElementById('_484_503_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;</span><span id="_484_503_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="_484_503_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;page(</span><span style="color: #000000">"</span><span style="color: #000000">edit</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;edit(WebForm&nbsp;form)<br />
<img id="_538_645_Open_Image" onclick="this.style.display='none'; document.getElementById('_538_645_Open_Text').style.display='none'; document.getElementById('_538_645_Closed_Image').style.display='inline'; document.getElementById('_538_645_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_538_645_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('_538_645_Closed_Text').style.display='none'; document.getElementById('_538_645_Open_Image').style.display='inline'; document.getElementById('_538_645_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;</span><span id="_538_645_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="_538_645_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;String&nbsp;id</span><span style="color: #000000">=</span><span style="color: #000000">(String)form.get(</span><span style="color: #000000">"</span><span style="color: #000000">id</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;User&nbsp;user</span><span style="color: #000000">=</span><span style="color: #0000ff">this</span><span style="color: #000000">.service.getUser(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Long(id));<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;form.addPo(user);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;save(WebForm&nbsp;form)<br />
<img id="_680_817_Open_Image" onclick="this.style.display='none'; document.getElementById('_680_817_Open_Text').style.display='none'; document.getElementById('_680_817_Closed_Image').style.display='inline'; document.getElementById('_680_817_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_680_817_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('_680_817_Closed_Text').style.display='none'; document.getElementById('_680_817_Open_Image').style.display='inline'; document.getElementById('_680_817_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;</span><span id="_680_817_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="_680_817_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;User&nbsp;user</span><span style="color: #000000">=</span><span style="color: #000000">form.toPo(User.</span><span style="color: #0000ff">class</span><span style="color: #000000">);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(hasErrors())<br />
<img id="_737_769_Open_Image" onclick="this.style.display='none'; document.getElementById('_737_769_Open_Text').style.display='none'; document.getElementById('_737_769_Closed_Image').style.display='inline'; document.getElementById('_737_769_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_737_769_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('_737_769_Closed_Text').style.display='none'; document.getElementById('_737_769_Open_Image').style.display='inline'; document.getElementById('_737_769_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;</span><span id="_737_769_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="_737_769_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;page(</span><span style="color: #000000">"</span><span style="color: #000000">edit</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;service.saveUser(user);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;forward(</span><span style="color: #000000">"</span><span style="color: #000000">list</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;update(WebForm&nbsp;form)<br />
<img id="_854_1066_Open_Image" onclick="this.style.display='none'; document.getElementById('_854_1066_Open_Text').style.display='none'; document.getElementById('_854_1066_Closed_Image').style.display='inline'; document.getElementById('_854_1066_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_854_1066_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('_854_1066_Closed_Text').style.display='none'; document.getElementById('_854_1066_Open_Image').style.display='inline'; document.getElementById('_854_1066_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;</span><span id="_854_1066_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="_854_1066_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;String&nbsp;id</span><span style="color: #000000">=</span><span style="color: #000000">(String)form.get(</span><span style="color: #000000">"</span><span style="color: #000000">id</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;User&nbsp;user</span><span style="color: #000000">=</span><span style="color: #0000ff">this</span><span style="color: #000000">.service.getUser(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Long(id));<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;form.toPo(user,</span><span style="color: #0000ff">true</span><span style="color: #000000">);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(hasErrors())<br />
<img id="_984_1016_Open_Image" onclick="this.style.display='none'; document.getElementById('_984_1016_Open_Text').style.display='none'; document.getElementById('_984_1016_Closed_Image').style.display='inline'; document.getElementById('_984_1016_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_984_1016_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('_984_1016_Closed_Text').style.display='none'; document.getElementById('_984_1016_Open_Image').style.display='inline'; document.getElementById('_984_1016_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;</span><span id="_984_1016_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="_984_1016_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;page(</span><span style="color: #000000">"</span><span style="color: #000000">edit</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;service.updateUser(user);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;forward(</span><span style="color: #000000">"</span><span style="color: #000000">list</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;delete(WebForm&nbsp;form)<br />
<img id="_1103_1229_Open_Image" onclick="this.style.display='none'; document.getElementById('_1103_1229_Open_Text').style.display='none'; document.getElementById('_1103_1229_Closed_Image').style.display='inline'; document.getElementById('_1103_1229_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_1103_1229_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('_1103_1229_Closed_Text').style.display='none'; document.getElementById('_1103_1229_Open_Image').style.display='inline'; document.getElementById('_1103_1229_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;</span><span id="_1103_1229_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="_1103_1229_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;String&nbsp;id</span><span style="color: #000000">=</span><span style="color: #000000">(String)form.get(</span><span style="color: #000000">"</span><span style="color: #000000">id</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;User&nbsp;user</span><span style="color: #000000">=</span><span style="color: #0000ff">this</span><span style="color: #000000">.service.getUser(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Long(id));<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;service.delUser(user);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;go(</span><span style="color: #000000">"</span><span style="color: #000000">list</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;list(WebForm&nbsp;form)<br />
<img id="_1264_1410_Open_Image" onclick="this.style.display='none'; document.getElementById('_1264_1410_Open_Text').style.display='none'; document.getElementById('_1264_1410_Closed_Image').style.display='inline'; document.getElementById('_1264_1410_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_1264_1410_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('_1264_1410_Closed_Text').style.display='none'; document.getElementById('_1264_1410_Open_Image').style.display='inline'; document.getElementById('_1264_1410_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;</span><span id="_1264_1410_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="_1264_1410_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;QueryObject&nbsp;qo</span><span style="color: #000000">=</span><span style="color: #000000">form.toPo(QueryObject.</span><span style="color: #0000ff">class</span><span style="color: #000000">);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;IPageList&nbsp;pageList</span><span style="color: #000000">=</span><span style="color: #000000">service.queryUser(qo);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;CommUtil.saveIPageList2WebForm(pageList,&nbsp;form);&nbsp;&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />UserService接口：<br />
<img id="_1459_1849_Open_Image" onclick="this.style.display='none'; document.getElementById('_1459_1849_Open_Text').style.display='none'; document.getElementById('_1459_1849_Closed_Image').style.display='inline'; document.getElementById('_1459_1849_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="_1459_1849_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('_1459_1849_Closed_Text').style.display='none'; document.getElementById('_1459_1849_Open_Image').style.display='inline'; document.getElementById('_1459_1849_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">interface</span><span style="color: #000000">&nbsp;UserService&nbsp;</span><span id="_1459_1849_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="_1459_1849_Open_Text"><span style="color: #000000">{<br />
<img id="_1462_1513_Open_Image" onclick="this.style.display='none'; document.getElementById('_1462_1513_Open_Text').style.display='none'; document.getElementById('_1462_1513_Closed_Image').style.display='inline'; document.getElementById('_1462_1513_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_1462_1513_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('_1462_1513_Closed_Text').style.display='none'; document.getElementById('_1462_1513_Open_Image').style.display='inline'; document.getElementById('_1462_1513_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;</span><span id="_1462_1513_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">/**&nbsp;*/</span><span id="_1462_1513_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;*&nbsp;根据id查询用户<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;*&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;id<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@return</span><span style="color: #008000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;User&nbsp;getUser(Long&nbsp;id);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="_1541_1578_Open_Image" onclick="this.style.display='none'; document.getElementById('_1541_1578_Open_Text').style.display='none'; document.getElementById('_1541_1578_Closed_Image').style.display='inline'; document.getElementById('_1541_1578_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_1541_1578_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('_1541_1578_Closed_Text').style.display='none'; document.getElementById('_1541_1578_Open_Image').style.display='inline'; document.getElementById('_1541_1578_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;</span><span id="_1541_1578_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">/**&nbsp;*/</span><span id="_1541_1578_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;*&nbsp;保存用户<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;*&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;user<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;saveUser(User&nbsp;user);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="_1609_1648_Open_Image" onclick="this.style.display='none'; document.getElementById('_1609_1648_Open_Text').style.display='none'; document.getElementById('_1609_1648_Closed_Image').style.display='inline'; document.getElementById('_1609_1648_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_1609_1648_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('_1609_1648_Closed_Text').style.display='none'; document.getElementById('_1609_1648_Open_Image').style.display='inline'; document.getElementById('_1609_1648_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;</span><span id="_1609_1648_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">/**&nbsp;*/</span><span id="_1609_1648_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;*&nbsp;修改用户信息<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;*&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;user<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;updateUser(User&nbsp;user);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="_1681_1718_Open_Image" onclick="this.style.display='none'; document.getElementById('_1681_1718_Open_Text').style.display='none'; document.getElementById('_1681_1718_Closed_Image').style.display='inline'; document.getElementById('_1681_1718_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_1681_1718_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('_1681_1718_Closed_Text').style.display='none'; document.getElementById('_1681_1718_Open_Image').style.display='inline'; document.getElementById('_1681_1718_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;</span><span id="_1681_1718_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">/**&nbsp;*/</span><span id="_1681_1718_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;*&nbsp;删除用户<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;*&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;user<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;delUser(User&nbsp;user);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="_1748_1805_Open_Image" onclick="this.style.display='none'; document.getElementById('_1748_1805_Open_Text').style.display='none'; document.getElementById('_1748_1805_Closed_Image').style.display='inline'; document.getElementById('_1748_1805_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_1748_1805_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('_1748_1805_Closed_Text').style.display='none'; document.getElementById('_1748_1805_Open_Image').style.display='inline'; document.getElementById('_1748_1805_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;</span><span id="_1748_1805_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">/**&nbsp;*/</span><span id="_1748_1805_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;*&nbsp;查询用户信息<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;query&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@return</span><span style="color: #008000">&nbsp;分页信息及记录集<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;IPageList&nbsp;queryUser(IQueryObject&nbsp;query);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
</span></div>
</div>
</div>
<img src ="http://www.blogjava.net/kang-ak/aggbug/167749.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kang-ak/" target="_blank">java fan nb</a> 2007-12-14 13:15 <a href="http://www.blogjava.net/kang-ak/archive/2007/12/14/167749.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>随机数</title><link>http://www.blogjava.net/kang-ak/archive/2007/12/14/167681.html</link><dc:creator>java fan nb</dc:creator><author>java fan nb</author><pubDate>Fri, 14 Dec 2007 02:06:00 GMT</pubDate><guid>http://www.blogjava.net/kang-ak/archive/2007/12/14/167681.html</guid><wfw:comment>http://www.blogjava.net/kang-ak/comments/167681.html</wfw:comment><comments>http://www.blogjava.net/kang-ak/archive/2007/12/14/167681.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kang-ak/comments/commentRss/167681.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kang-ak/services/trackbacks/167681.html</trackback:ping><description><![CDATA[<p>import java.util.ArrayList;<br />
import java.util.List;<br />
import java.util.Random;<br />
public class PrimeNumberTest {<br />
&nbsp;/** Creates a new instance of PrimeNumberTest */<br />
&nbsp;public PrimeNumberTest() { } <br />
public static void main(String[] args){<br />
&nbsp;//获得一个4位数的随机大素数 <br />
long longVar4 = createRadomPrimeNunber(4); <br />
System.out.println(longVar4);<br />
&nbsp;//获得一个5位数的随机大素数 <br />
long longVar5 = createRadomPrimeNunber(5); <br />
System.out.println(longVar5);<br />
&nbsp;} <br />
public static long createRadomPrimeNunber(int n){<br />
&nbsp;long recLong = 0; <br />
List list = listAllPrimeNumber(n); <br />
Random rd = new Random(); <br />
int randomIndex = Math.abs( rd.nextInt()%list.size()); <br />
recLong = ((Long)list.get(randomIndex)).longValue(); <br />
return recLong; <br />
}<br />
&nbsp;public static List listAllPrimeNumber(int n){ <br />
List list = new ArrayList(); <br />
long low = (long)Math.pow(10,n-1);<br />
&nbsp;long high = (long)Math.pow(10,n) - 1; <br />
for(long i= low;i &lt; high;i++){ <br />
if( isSushu(i)) { <br />
list.add(new Long(i)); <br />
} }<br />
&nbsp;return list; <br />
}<br />
&nbsp;public static boolean isSushu(long x){<br />
//定义一个判断一个数是否是素数的函数 <br />
if(x&lt;2) return false; if( x==2)return true; <br />
for(long i=2;<br />
i&lt;= (long)Math.sqrt(x);i++)<br />
&nbsp;if(x%i==0) <br />
return false; <br />
return true;<br />
&nbsp;}}</p>
<br />
<br />
<br />
例二<br />
<p>import java.util.Random;<br />
/**<br />
&nbsp;* Java实用工具类库中的类java.util.Random提供了产生各种类型随机数的方法。<br />
&nbsp;* 它可以产生int、long、float、double以及Goussian等类型的随机数。<br />
&nbsp;* java.lang.Math中的方法random()只产生double型的随机数。<br />
&nbsp;*/<br />
public class RandomNumber{</p>
<p>&nbsp;public static void main(String[] args) {</p>
<p>&nbsp;&nbsp;// 使用java.lang.Math的random方法生成随机数<br />
&nbsp;&nbsp;System.out.println("Math.random(): " + Math.random());</p>
<p>&nbsp;&nbsp;// 使用不带参数的构造方法构造java.util.Random对象<br />
&nbsp;&nbsp;System.out.println("使用不带参数的构造方法构造的Random对象:");<br />
&nbsp;&nbsp;Random rd1 = new Random();<br />
&nbsp;&nbsp;// 产生各种类型的随机数<br />
&nbsp;&nbsp;// 按均匀分布产生整数<br />
&nbsp;&nbsp;System.out.println("int: " + rd1.nextInt());<br />
&nbsp;&nbsp;// 按均匀分布产生长整数<br />
&nbsp;&nbsp;System.out.println("long: " + rd1.nextLong());<br />
&nbsp;&nbsp;// 按均匀分布产生大于等于0，小于1的float数[0, 1)<br />
&nbsp;&nbsp;System.out.println("float: " + rd1.nextFloat());<br />
&nbsp;&nbsp;// 按均匀分布产生[0, 1)范围的double数<br />
&nbsp;&nbsp;System.out.println("double: " + rd1.nextDouble());<br />
&nbsp;&nbsp;// 按正态分布产生随机数<br />
&nbsp;&nbsp;System.out.println("Gaussian: " + rd1.nextGaussian());</p>
<p>&nbsp;&nbsp;// 生成一系列随机数<br />
&nbsp;&nbsp;System.out.print("随机整数序列:");<br />
&nbsp;&nbsp;for (int i = 0; i &lt; 5; i++) {<br />
&nbsp;&nbsp;&nbsp;System.out.print(rd1.nextInt() + "&nbsp; ");<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;System.out.println();</p>
<p>&nbsp;&nbsp;// 指定随机数产生的范围<br />
&nbsp;&nbsp;System.out.print("[0,10)范围内随机整数序列: ");<br />
&nbsp;&nbsp;for (int i = 0; i &lt; 10; i++) {<br />
&nbsp;&nbsp;&nbsp;// Random的nextInt(int n)方法返回一个[0, n)范围内的随机数<br />
&nbsp;&nbsp;&nbsp;System.out.print(rd1.nextInt(10) + "&nbsp; ");<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;System.out.println();<br />
&nbsp;&nbsp;System.out.print("[5,23)范围内随机整数序列: ");<br />
&nbsp;&nbsp;for (int i = 0; i &lt; 10; i++) {<br />
&nbsp;&nbsp;&nbsp;// 因为nextInt(int n)方法的范围是从0开始的，<br />
&nbsp;&nbsp;&nbsp;// 所以需要把区间[5,28)转换成5 + [0, 23)。<br />
&nbsp;&nbsp;&nbsp;System.out.print(5 + rd1.nextInt(23) + "&nbsp; ");<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;System.out.println();<br />
&nbsp;&nbsp;System.out.print("利用nextFloat()生成[0,99)范围内的随机整数序列: ");<br />
&nbsp;&nbsp;for (int i = 0; i &lt; 10; i++) {<br />
&nbsp;&nbsp;&nbsp;System.out.print((int) (rd1.nextFloat() * 100) + "&nbsp; ");<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;System.out.println();<br />
&nbsp;&nbsp;System.out.println();</p>
<p>&nbsp;&nbsp;// 使用带参数的构造方法构造Random对象<br />
&nbsp;&nbsp;// 构造函数的参数是long类型，是生成随机数的种子。<br />
&nbsp;&nbsp;System.out.println("使用带参数的构造方法构造的Random对象:");<br />
&nbsp;&nbsp;Random ran2 = new Random(10);<br />
&nbsp;&nbsp;// 对于种子相同的Random对象，生成的随机数序列是一样的。<br />
&nbsp;&nbsp;System.out.println("使用种子为10的Random对象生成[0,10)内随机整数序列: ");<br />
&nbsp;&nbsp;for (int i = 0; i &lt; 10; i++) {<br />
&nbsp;&nbsp;&nbsp;System.out.print(ran2.nextInt(10) + "&nbsp; ");<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;System.out.println();<br />
&nbsp;&nbsp;Random ran3 = new Random(10);<br />
&nbsp;&nbsp;System.out.println("使用另一个种子为10的Random对象生成[0,10)内随机整数序列: ");<br />
&nbsp;&nbsp;for (int i = 0; i &lt; 10; i++) {<br />
&nbsp;&nbsp;&nbsp;System.out.print(ran3.nextInt(10) + "&nbsp; ");<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;System.out.println();<br />
&nbsp;&nbsp;// ran2和ran3生成的随机数序列是一样的，如果使用两个没带参数构造函数生成的Random对象，<br />
&nbsp;&nbsp;// 则不会出现这种情况，这是因为在没带参数构造函数生成的Random对象的种子缺省是当前系统时间的毫秒数。</p>
<p>&nbsp;&nbsp;// 另外，直接使用Random无法避免生成重复的数字，如果需要生成不重复的随机数序列，需要借助数组和集合类<br />
&nbsp;&nbsp;//本书第4章将给出解决方法。<br />
&nbsp;}<br />
}</p>
<p>运行结果：<br />
C:\&gt;java&nbsp; RandomNumber<br />
Math.random(): 0.525171492959965<br />
使用不带参数的构造方法构造的Random对象:<br />
int: 636539740<br />
long: -752663949229005813<br />
float: 0.87349784<br />
double: 0.4065973309853902<br />
Gaussian: 0.4505871918488808<br />
随机整数序列:1936784917&nbsp; 1339857386&nbsp; -1185229615&nbsp; 1883411721&nbsp; 1409219372<br />
[0,10)范围内随机整数序列: 1&nbsp; 1&nbsp; 5&nbsp; 5&nbsp; 9&nbsp; 0&nbsp; 1&nbsp; 0&nbsp; 2&nbsp; 4<br />
[5,23)范围内随机整数序列: 9&nbsp; 13&nbsp; 26&nbsp; 18&nbsp; 11&nbsp; 27&nbsp; 26&nbsp; 12&nbsp; 21&nbsp; 8<br />
利用nextFloat()生成[0,99)范围内的随机整数序列: 1&nbsp; 47&nbsp; 72&nbsp; 59&nbsp; 49&nbsp; 86&nbsp; 80&nbsp; 88&nbsp; 55&nbsp;&nbsp; 82</p>
<p>使用带参数的构造方法构造的Random对象:<br />
使用种子为10的Random对象生成[0,10)内随机整数序列:<br />
3&nbsp; 0&nbsp; 3&nbsp; 0&nbsp; 6&nbsp; 6&nbsp; 7&nbsp; 8&nbsp; 1&nbsp; 4<br />
使用另一个种子为10的Random对象生成[0,10)内随机整数序列:<br />
3&nbsp; 0&nbsp; 3&nbsp; 0&nbsp; 6&nbsp; 6&nbsp; 7&nbsp; 8&nbsp; 1&nbsp; 4<br />
<br />
<br />
<br />
例三:带随机种子的随机数<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp; import &nbsp; java.util.*; &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; public &nbsp; class &nbsp; test &nbsp; { &nbsp; <br />
&nbsp; public &nbsp; static &nbsp; void &nbsp; main(String[] &nbsp; args) &nbsp; { &nbsp; <br />
&nbsp; Random &nbsp; rand &nbsp; = &nbsp; new &nbsp; Random(); &nbsp; <br />
&nbsp; for(int &nbsp; i &nbsp; = &nbsp; 0; &nbsp; i &nbsp; &lt; &nbsp; 10; &nbsp; i++) &nbsp; { &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rand.setSeed(i); &nbsp; <br />
&nbsp; System.out.println(rand.nextInt()); &nbsp; <br />
&nbsp; } &nbsp; <br />
&nbsp; } &nbsp; <br />
&nbsp; }&nbsp;&nbsp; <br />
<br />
</p>
<img src ="http://www.blogjava.net/kang-ak/aggbug/167681.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kang-ak/" target="_blank">java fan nb</a> 2007-12-14 10:06 <a href="http://www.blogjava.net/kang-ak/archive/2007/12/14/167681.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> 如何快速生成100万不重复的8位编号</title><link>http://www.blogjava.net/kang-ak/archive/2007/12/14/167672.html</link><dc:creator>java fan nb</dc:creator><author>java fan nb</author><pubDate>Fri, 14 Dec 2007 01:47:00 GMT</pubDate><guid>http://www.blogjava.net/kang-ak/archive/2007/12/14/167672.html</guid><wfw:comment>http://www.blogjava.net/kang-ak/comments/167672.html</wfw:comment><comments>http://www.blogjava.net/kang-ak/archive/2007/12/14/167672.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/kang-ak/comments/commentRss/167672.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kang-ak/services/trackbacks/167672.html</trackback:ping><description><![CDATA[<p style="background: #ccffff; margin: 0cm 0cm 0pt"><font size="3"><strong><span style="color: red; font-family: 宋体">生成</span><span style="color: red"><font face="Times New Roman">100</font></span></strong><strong><span style="color: red; font-family: 宋体">万条</span><span style="color: red"><font face="Times New Roman">8</font></span></strong><strong><span style="color: red; font-family: 宋体">位不重复数据的示例</span></strong></font></p>
<div style="border-right: medium none; padding-right: 0cm; border-top: windowtext 1pt solid; padding-left: 0cm; background: #f3f3f3; padding-bottom: 1pt; border-left: medium none; padding-top: 1pt; border-bottom: windowtext 1pt solid">
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; color: blue; font-family: 'Courier New'">USE</span><span style="font-size: 9pt; font-family: 'Courier New'"> tempdb</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; font-family: 'Courier New'">GO</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; color: green; font-family: 'Courier New'">-- </span><span style="font-size: 9pt; color: green; font-family: 宋体">创建测试表</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; color: blue; font-family: 'Courier New'">CREATE</span><span style="font-size: 9pt; font-family: 'Courier New'"> <span style="color: blue">TABLE</span> tb<span style="color: gray">(</span>id <span style="color: blue">char</span><span style="color: gray">(</span>8<span style="color: gray">))</span></span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; color: green; font-family: 'Courier New'">-- </span><span style="font-size: 9pt; color: green; font-family: 宋体">创建用于自动过滤重复值的唯一索引</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; color: blue; font-family: 'Courier New'">CREATE</span><span style="font-size: 9pt; font-family: 'Courier New'"> <span style="color: blue">UNIQUE</span> <span style="color: blue">INDEX</span> IX_tb <span style="color: blue">ON</span> tb<span style="color: gray">(</span>id<span style="color: gray">)</span></span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; color: blue; font-family: 'Courier New'">WITH</span><span style="font-size: 9pt; font-family: 'Courier New'"> IGNORE_DUP_KEY </span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; font-family: 'Courier New'">GO</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; color: green; font-family: 'Courier New'">-- </span><span style="font-size: 9pt; color: green; font-family: 宋体">测试数据插入的处理时间</span><span style="font-size: 9pt; color: green; font-family: 'Courier New'">, </span><span style="font-size: 9pt; color: green; font-family: 宋体">记录开始处理的时间点</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; color: blue; font-family: 'Courier New'">DECLARE</span><span style="font-size: 9pt; font-family: 'Courier New'"> @dt <span style="color: blue">datetime</span></span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; color: blue; font-family: 'Courier New'">SET</span><span style="font-size: 9pt; font-family: 'Courier New'"> @dt <span style="color: gray">=</span> <span style="color: fuchsia">GETDATE</span><span style="color: gray">()</span></span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; color: green; font-family: 'Courier New'">-- </span><span style="font-size: 9pt; color: green; font-family: 宋体">插入随机数据</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; color: blue; font-family: 'Courier New'">SET</span><span style="font-size: 9pt; font-family: 'Courier New'"> <span style="color: blue">NOCOUNT</span> <span style="color: blue">ON</span></span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; color: blue; font-family: 'Courier New'">DECLARE</span><span style="font-size: 9pt; font-family: 'Courier New'"> @row <span style="color: blue">int</span></span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; color: blue; font-family: 'Courier New'">SET</span><span style="font-size: 9pt; font-family: 'Courier New'"> @row <span style="color: gray">=</span> 1000000&nbsp;<span style="color: green">-- </span></span><span style="font-size: 9pt; color: green; font-family: 宋体">设置总记录数</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; color: blue; font-family: 'Courier New'">WHILE</span><span style="font-size: 9pt; font-family: 'Courier New'"> @row <span style="color: gray">&gt;</span>0</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; color: blue; font-family: 'Courier New'">BEGIN</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; font-family: 'Courier New'">&nbsp;&nbsp;&nbsp; <span style="color: green">-- </span></span><span style="font-size: 9pt; color: green; font-family: 宋体">显示提示信息</span><span style="font-size: 9pt; color: green; font-family: 'Courier New'">, </span><span style="font-size: 9pt; color: green; font-family: 宋体">表示还需要插入多行数据</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; font-family: 'Courier New'">&nbsp;&nbsp;&nbsp; <span style="color: blue">RAISERROR</span><span style="color: gray">(</span><span style="color: red">'need %d rows'</span><span style="color: gray">,</span> 10<span style="color: gray">,</span> 1<span style="color: gray">,</span> @row<span style="color: gray">)</span> <span style="color: blue">WITH</span> NOWAIT</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; font-family: 'Courier New'">&nbsp;&nbsp;&nbsp; <span style="color: green">-- </span></span><span style="font-size: 9pt; color: green; font-family: 宋体">插入随机的位编码数据</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; font-family: 'Courier New'">&nbsp;&nbsp;&nbsp; <span style="color: blue">SET</span> <span style="color: blue">ROWCOUNT</span> @row</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; font-family: 'Courier New'">&nbsp;&nbsp;&nbsp; <span style="color: blue">INSERT</span> tb <span style="color: blue">SELECT</span></span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; font-family: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id <span style="color: gray">=</span> <span style="color: gray">RIGHT(</span>100000000 <span style="color: gray">+</span> <span style="color: fuchsia">CONVERT</span><span style="color: gray">(</span><span style="color: blue">bigint</span><span style="color: gray">,</span> <span style="color: fuchsia">ABS</span><span style="color: gray">(</span><span style="color: fuchsia">CHECKSUM</span><span style="color: gray">(</span><span style="color: fuchsia">NEWID</span><span style="color: gray">()))),</span> 8<span style="color: gray">)</span></span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; font-family: 'Courier New'">&nbsp;&nbsp;&nbsp; <span style="color: blue">FROM</span> syscolumns c1<span style="color: gray">,</span> syscolumns c2</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; font-family: 'Courier New'">&nbsp;&nbsp;&nbsp; <span style="color: blue">SET</span> @row <span style="color: gray">=</span> @row <span style="color: gray">-</span> <span style="color: fuchsia">@@ROWCOUNT</span></span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; color: blue; font-family: 'Courier New'">END</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; color: green; font-family: 'Courier New'">-- </span><span style="font-size: 9pt; color: green; font-family: 宋体">显示插入数据使用的时间</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; color: blue; font-family: 'Courier New'">SELECT</span><span style="font-size: 9pt; font-family: 'Courier New'"> BeginDate <span style="color: gray">=</span> @dt<span style="color: gray">,</span> EndDate <span style="color: gray">=</span> <span style="color: fuchsia">GETDATE</span><span style="color: gray">(),</span> </span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; font-family: 'Courier New'">&nbsp;&nbsp;&nbsp; Second <span style="color: gray">=</span> <span style="color: fuchsia">DATEDIFF</span><span style="color: gray">(</span>Second<span style="color: gray">,</span> @dt<span style="color: gray">,</span> <span style="color: fuchsia">GETDATE</span><span style="color: gray">()),</span></span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; font-family: 'Courier New'">GO</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; color: green; font-family: 'Courier New'">-- </span><span style="font-size: 9pt; color: green; font-family: 宋体">显示最终的结果记录是否正确</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; color: blue; font-family: 'Courier New'">SELECT</span><span style="font-size: 9pt; font-family: 'Courier New'"> <span style="color: fuchsia">COUNT</span><span style="color: gray">(*)</span> <span style="color: blue">FROM</span> tb</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; font-family: 'Courier New'">GO</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; color: green; font-family: 'Courier New'">-- </span><span style="font-size: 9pt; color: green; font-family: 宋体">删除测试</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; color: blue; font-family: 'Courier New'">DROP</span><span style="font-size: 9pt; font-family: 'Courier New'"> <span style="color: blue">TABLE</span> tb</span></p>
</div>
<p style="background: #ccffff; margin: 0cm 0cm 0pt"><strong><font size="3"><span style="color: red; font-family: 宋体">解决中用到的技巧：</span></font></strong></p>
<div style="border-right: medium none; padding-right: 0cm; border-top: windowtext 1pt solid; padding-left: 0cm; background: #f3f3f3; padding-bottom: 1pt; border-left: medium none; padding-top: 1pt; border-bottom: windowtext 1pt solid">
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt 21pt; border-left: medium none; text-indent: -21pt; padding-top: 0cm; border-bottom: medium none; tab-stops: list 21.0pt"><span style="color: blue"><font face="Times New Roman"><font size="3">1．</font><span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp; </font></span></span><font size="3"><span style="color: blue; font-family: 宋体">控制产生的数据不重复，直接使用唯一索引中的</span></font><span style="font-size: 9pt; color: red; font-family: 'Courier New'">IGNORE_DUP_KEY</span><span style="font-size: 9pt; color: blue; font-family: 宋体">选项，使插入数据中的重复值自动过滤，避免手工处理重复</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt 21pt; border-left: medium none; text-indent: -21pt; padding-top: 0cm; border-bottom: medium none; tab-stops: list 21.0pt"><span style="color: blue"><font face="Times New Roman"><font size="3">2．</font><span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp; </font></span></span><font size="3"><span style="color: blue; font-family: 宋体">使用</span><font face="Times New Roman"><span style="color: red">CHECKSUM</span></font><span style="color: blue; font-family: 宋体">配合</span><font face="Times New Roman"><span style="color: red">NEWID()</span></font><span style="color: blue; font-family: 宋体">函数，使生成的数据尽量随机，一般生成随机数会考虑使用</span><font face="Times New Roman"><span style="color: red">RAND()</span></font><span style="color: blue; font-family: 宋体">函数，但这个函数是产生伪随机值，用下面的语句测试一下，会发现产生的数据全部是一样的，这不适用于想批量生成多个随机数，而</span><font face="Times New Roman"><span style="color: red">NEWID()</span></font><span style="color: blue; font-family: 宋体">函数生成的是</span><span style="color: blue"><font face="Times New Roman">GUID</font></span><span style="color: blue; font-family: 宋体">，基本上不会有重复的，再通过</span><span style="color: red"><font face="Times New Roman">CHECKSUM</font></span><span style="color: blue; font-family: 宋体">将其转化成数字，这样产生重复的可能性会比较小</span></font></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ffcc99; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; color: blue; font-family: 'Courier New'">SELECT</span><span style="font-size: 9pt; font-family: 'Courier New'"> <span style="color: blue">TOP</span> 10</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ffcc99; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; text-align: left" align="left"><span style="font-size: 9pt; font-family: 'Courier New'">&nbsp;&nbsp;&nbsp; <span style="color: fuchsia">RAND</span><span style="color: gray">()</span></span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ffcc99; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none"><span style="font-size: 9pt; color: blue; font-family: 'Courier New'">FROM</span><span style="font-size: 9pt; font-family: 'Courier New'"> sysobjects</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #f3f3f3; padding-bottom: 0cm; margin: 0cm 0cm 0pt 21pt; border-left: medium none; text-indent: -21pt; padding-top: 0cm; border-bottom: medium none; tab-stops: list 21.0pt"><span style="color: blue"><font face="Times New Roman"><font size="3">3．</font><span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp; </font></span></span><font size="3"><span style="color: blue; font-family: 宋体">在效率控制，使用循环</span><span style="color: blue"><font face="Times New Roman">+</font></span><span style="color: blue; font-family: 宋体">批量生成的方式，而不是传统的逐个生成。在</span><span style="color: blue"><font face="Times New Roman">SQL Server</font></span><span style="color: blue; font-family: 宋体">中，每个插入语句都会有一个内部的事务处理，如果逐条插入，则事务的开销太大，效率势必非常低；不考虑一次性生成</span><span style="color: blue"><font face="Times New Roman">100</font></span><span style="color: blue; font-family: 宋体">万数据，一则因为生成的数据可能有重复的，去掉重复就没有</span><span style="color: blue"><font face="Times New Roman">100</font></span><span style="color: blue; font-family: 宋体">万了，二则一次性生成</span><span style="color: blue"><font face="Times New Roman">100</font></span><span style="color: blue; font-family: 宋体">万数据，消耗的内存和</span><span style="color: blue"><font face="Times New Roman">CPU</font></span><span style="color: blue; font-family: 宋体">资源也很高，一般的电脑可能承受不住</span></font></p>
</div>
 <img src ="http://www.blogjava.net/kang-ak/aggbug/167672.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kang-ak/" target="_blank">java fan nb</a> 2007-12-14 09:47 <a href="http://www.blogjava.net/kang-ak/archive/2007/12/14/167672.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>