<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_chinafine</title><subtitle type="text">Asp.net,Windows Mobile,Windows Server 醉心于.NET</subtitle><id>http://feed.cnblogs.com/blog/u/22981/rss</id><updated>2011-12-24T03:42:41Z</updated><author><name>chinaifne</name><uri>http://www.cnblogs.com/chinafine/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chinafine/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/22981/rss"/><entry><id>http://www.cnblogs.com/chinafine/archive/2011/11/21/2256648.html</id><title type="text">http://www.cnblogs.com/fengyin/archive/2011/01/18/1938628.html 前端优化</title><summary type="text">http://www.cnblogs.com/fengyin/archive/2011/01/18/1938628.html http://www.dbanotes.net/web-performance.html</summary><published>2011-11-20T16:49:00Z</published><updated>2011-11-20T16:49:00Z</updated><author><name>chinaifne</name><uri>http://www.cnblogs.com/chinafine/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chinafine/archive/2011/11/21/2256648.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chinafine/archive/2011/11/21/2256648.html"/><content type="html">&lt;p&gt;&lt;a href="http://www.cnblogs.com/fengyin/archive/2011/01/18/1938628.html"&gt;http://www.cnblogs.com/fengyin/archive/2011/01/18/1938628.html&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dbanotes.net/web-performance.html"&gt;http://www.dbanotes.net/web-performance.html&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/chinafine/aggbug/2256648.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chinafine/archive/2011/11/21/2256648.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chinafine/archive/2011/11/21/2256643.html</id><title type="text">http://hi.baidu.com/suofang/home这个兄弟的博客中一些不错的前羰优化工具，今天看不完，改天接着看</title><summary type="text">http://hi.baidu.com/suofang/home</summary><published>2011-11-20T16:31:00Z</published><updated>2011-11-20T16:31:00Z</updated><author><name>chinaifne</name><uri>http://www.cnblogs.com/chinafine/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chinafine/archive/2011/11/21/2256643.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chinafine/archive/2011/11/21/2256643.html"/><content type="html">&lt;a href="http://hi.baidu.com/suofang/home"&gt;http://hi.baidu.com/suofang/home&lt;/a&gt;&lt;img src="http://www.cnblogs.com/chinafine/aggbug/2256643.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chinafine/archive/2011/11/21/2256643.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chinafine/archive/2011/09/15/2177746.html</id><title type="text">iframe中子父窗口互调的js方法</title><summary type="text">一、父窗口调用iframe子窗口方法 1、HTML语法：&lt;iframe name="myFrame" src="child.html"&gt;&lt;/iframe&gt; 2、父窗口调用子窗口：myFrame.window.functionName(); 3、子窗品调用父窗口：parent.functionName(); 简单地说,也就是在子窗口中调用的变量或函数前加个parent.就行 4、父窗口页面源码： 复制代码 代码如下:&lt;html&gt; &lt;head&gt; &lt;script type="text/javasc</summary><published>2011-09-15T08:46:00Z</published><updated>2011-09-15T08:46:00Z</updated><author><name>chinaifne</name><uri>http://www.cnblogs.com/chinafine/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chinafine/archive/2011/09/15/2177746.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chinafine/archive/2011/09/15/2177746.html"/><content type="html">&lt;p&gt;一、父窗口调用iframe子窗口方法 &lt;br /&gt;1、HTML语法：&amp;lt;iframe name="myFrame" src="child.html"&amp;gt;&amp;lt;/iframe&amp;gt; &lt;br /&gt;2、父窗口调用子窗口：myFrame.window.functionName(); &lt;br /&gt;3、子窗品调用父窗口：parent.functionName(); &lt;br /&gt;简单地说,也就是在子窗口中调用的变量或函数前加个parent.就行 &lt;br /&gt;4、父窗口页面源码： &lt;br /&gt;复制代码 代码如下:&lt;br /&gt;&amp;lt;html&amp;gt; &lt;br /&gt;&amp;lt;head&amp;gt; &lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt; &lt;br /&gt;function say() { &lt;br /&gt;alert("parent.html------&amp;gt;I'm at parent.html"); &lt;br /&gt;} &lt;br /&gt;function callChild() &lt;br /&gt;{ &lt;br /&gt;//document.frames("myFrame").f1(); &lt;br /&gt;myFrame.window.say(); &lt;br /&gt;} &lt;br /&gt;&amp;lt;/script&amp;gt; &lt;br /&gt;&amp;lt;/head&amp;gt; &lt;br /&gt;&amp;lt;body&amp;gt; &lt;br /&gt;&amp;lt;input type=button value="调用child.html中的函数say()" onclick="callChild()"&amp;gt; &lt;br /&gt;&amp;lt;iframe name="myFrame" src="child.html"&amp;gt;&amp;lt;/iframe&amp;gt; &lt;br /&gt;&amp;lt;/body&amp;gt; &lt;br /&gt;&amp;lt;/html&amp;gt; &lt;/p&gt;&lt;p&gt;5、子窗口页面： &lt;br /&gt;复制代码 代码如下:&lt;br /&gt;&amp;lt;html&amp;gt; &lt;br /&gt;&amp;lt;head&amp;gt; &lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt; &lt;br /&gt;function say() &lt;br /&gt;{ &lt;br /&gt;alert("child.html---&amp;gt;I'm at child.html"); &lt;br /&gt;} &lt;br /&gt;function callParent() { &lt;br /&gt;parent.say(); &lt;br /&gt;} &lt;br /&gt;&amp;lt;/script&amp;gt; &lt;br /&gt;&amp;lt;/head&amp;gt; &lt;br /&gt;&amp;lt;body&amp;gt; &lt;br /&gt;&amp;lt;input type=button value="调用parent.html中的say()函数" onclick="callParent()"&amp;gt; &lt;br /&gt;&amp;lt;/body&amp;gt; &lt;br /&gt;&amp;lt;/html&amp;gt; &lt;/p&gt;&lt;p&gt;二、iframe 父窗口和子窗口相互的调用方法 &lt;br /&gt;1、IE中使用方法： &lt;br /&gt;父窗口调用子窗口：iframe_ID.iframe_document_object.object_attribute = attribute_value &lt;br /&gt;例子：onClick="iframe_text.myH1.innerText='http://www.pint.com';" &lt;br /&gt;子窗口调用父窗口：parent.parent_document_object.object_attribute = attribute_value &lt;br /&gt;例子：onclick="parent.myH1.innerText='http://www.pint.com';" &lt;br /&gt;2、Firefox中使用方法： &lt;br /&gt;上面在IE下没有问题，但在firefox下不正常。在firefox下，应该是如下调用方法： &lt;br /&gt;父窗口调用子窗口：window.frames["iframe_ID"].document.getElementById("iframe_document_object"&amp;shy;).object_attribute = attribute_value &lt;br /&gt;例： window.frames["iframe_text"].document.getElementById("myH1").innerHTML= "&lt;a href="http://hi.jb51.net/"&gt;http://hi.jb51.net/&lt;/a&gt;"; &lt;br /&gt;子窗口调用父窗口：parent.document.getElementById("parent_document_object").object_attribute = attribute_value &lt;br /&gt;例： parent.document.getElementById("myH1").innerHTML = "&lt;a href="http://jb51.net/"&gt;http://jb51.net/&lt;/a&gt;"; &lt;br /&gt;3、完整的例子 &lt;br /&gt;test.htm &lt;br /&gt;复制代码 代码如下:&lt;br /&gt;&amp;lt;HTML&amp;gt; &lt;br /&gt;&amp;lt;HEAD&amp;gt; &lt;br /&gt;&amp;lt;TITLE&amp;gt; Test Page &amp;lt;/TITLE&amp;gt; &lt;br /&gt;&amp;lt;script src="prototype-1.4.0.js"&amp;gt;&amp;lt;/script&amp;gt; &lt;br /&gt;&amp;lt;script language="javascript"&amp;gt; &lt;br /&gt;function show() &lt;br /&gt;{ &lt;br /&gt;window.frames["iframe_text"].document.getElementById("myH1").innerHTML = "&lt;a href="http://hi.jb51.net/"&gt;http://hi.jb51.net/&lt;/a&gt;"; &lt;br /&gt;} &lt;br /&gt;&amp;lt;/script&amp;gt; &lt;br /&gt;&amp;lt;/HEAD&amp;gt; &lt;br /&gt;&amp;lt;BODY&amp;gt; &lt;br /&gt;&amp;lt;iframe height="350" width="600" src="iframe_test.htm" name="iframe_text"&amp;gt;&amp;lt;/iframe&amp;gt; &lt;br /&gt;&amp;lt;form action="" method="post"&amp;gt; &lt;br /&gt;&amp;lt;input name="haha" id="haha" type="text" maxlength="30" value="haha" /&amp;gt; &lt;br /&gt;&amp;lt;br /&amp;gt; &lt;br /&gt;&amp;lt;textarea cols="50" rows="5" id="getAttributeMethod"&amp;gt;&amp;lt;/textarea&amp;gt; &lt;br /&gt;&amp;lt;input type="button" onClick="show();" value="提交"/&amp;gt; &lt;br /&gt;&amp;lt;/form&amp;gt; &lt;br /&gt;&amp;lt;h1 id="myH1"&amp;gt;d&amp;lt;/h1&amp;gt; &lt;br /&gt;&amp;lt;/BODY&amp;gt; &lt;br /&gt;&amp;lt;/HTML&amp;gt; &lt;/p&gt;&lt;p&gt;frame_test.htm &lt;br /&gt;代码如下:&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt; &lt;br /&gt;&amp;lt;html xmlns="&lt;a href="http://www.w3.org/1999/xhtml"&gt;http://www.w3.org/1999/xhtml&lt;/a&gt;"&amp;gt; &lt;br /&gt;&amp;lt;head&amp;gt; &lt;br /&gt;&amp;lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312" /&amp;gt; &lt;br /&gt;&amp;lt;title&amp;gt;无标题文档&amp;lt;/title&amp;gt; &lt;br /&gt;&amp;lt;/head&amp;gt; &lt;br /&gt;&amp;lt;script language="javascript"&amp;gt; &lt;br /&gt;function show() &lt;br /&gt;{ &lt;br /&gt;parent.document.getElementById("myH1").innerHTML = &lt;a href="http://jb51.net/"&gt;http://jb51.net/&lt;/a&gt;; &lt;br /&gt;} &lt;br /&gt;&amp;lt;/script&amp;gt; &lt;br /&gt;&amp;lt;body&amp;gt; &lt;br /&gt;&amp;lt;h1 id="myH1"&amp;gt;ha&amp;lt;/h1&amp;gt; &lt;br /&gt;&amp;lt;form action="" method="post"&amp;gt; &lt;br /&gt;&amp;lt;input name="abc" id="abc" type="text" maxlength="30" value="abc" /&amp;gt; &lt;br /&gt;&amp;lt;br /&amp;gt; &lt;br /&gt;&amp;lt;textarea cols="50" rows="10" id="text"&amp;gt;&amp;lt;/textarea&amp;gt; &lt;br /&gt;&amp;lt;br /&amp;gt; &lt;br /&gt;&amp;lt;input type="button" value="提交" onclick="show();"/&amp;gt; &lt;br /&gt;&amp;lt;/form&amp;gt; &lt;br /&gt;&amp;lt;/body&amp;gt; &lt;br /&gt;&amp;lt;/html&amp;gt; &lt;/p&gt;&lt;p&gt;test.htm里面firefox下访问iframe 必须用name，不能用id，所以要改为name="iframe_test" 三、在c#中如何动态改变iframe的src值，动态指向一个网页 &lt;br /&gt;1)如果是javascript脚本 &lt;br /&gt;给iframe加一个ID如&amp;lt;iframe id=frmList&amp;#8230;&amp;#8230; &lt;br /&gt;在脚本写 &lt;br /&gt;frmList.document.location=strNewUrl &lt;br /&gt;2)如果是后台程序 &lt;br /&gt;给iframe加一个ID，再加上runat=server 如&amp;lt;iframe id=frmList runat=server &amp;#8230;&amp;#8230; &lt;br /&gt;在程序里写 &lt;br /&gt;frmList.Attributes.Add("src",strNewUrl); &lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/chinafine/aggbug/2177746.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chinafine/archive/2011/09/15/2177746.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chinafine/archive/2011/09/13/2174622.html</id><title type="text">Struts中出现DispatchMapping[***] does not define a handler property 的解决办法</title><summary type="text">第一次用那个DispatchAction就包了一个这样的错误。找了好久才搞明白解决：在struts-config.xml中配置了一个parameter="method",所以在链接路径时agentReworkData.do应改为:...agentReworkData.do?method=agentReworkData</summary><published>2011-09-13T05:32:00Z</published><updated>2011-09-13T05:32:00Z</updated><author><name>chinaifne</name><uri>http://www.cnblogs.com/chinafine/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chinafine/archive/2011/09/13/2174622.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chinafine/archive/2011/09/13/2174622.html"/><content type="html">&lt;p&gt;第一次用那个DispatchAction就包了一个这样的错误。找了好久才搞明白&lt;br /&gt;解决：在struts-config.xml中配置了一个parameter="method",&lt;/p&gt;&lt;p&gt;所以在链接路径时agentReworkData.do应改为:...agentReworkData.do?method=agentReworkData&lt;/p&gt;&lt;img src="http://www.cnblogs.com/chinafine/aggbug/2174622.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chinafine/archive/2011/09/13/2174622.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chinafine/archive/2011/03/15/1985129.html</id><title type="text">Java中计算时间差</title><summary type="text">现在是2004-03-26 13：31：40过去是：2004-01-02 11：30：24要获得两个日期差，差的形式为：XX天XX小时XX分XX秒方法一：DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");try{ Date d1 = df.parse("2004-03-26 13:31:40"); Date d2 = df.parse("2004-01-02 11:30:24"); long diff = d1.getTime() - d2.getTime(); l</summary><published>2011-03-15T10:04:00Z</published><updated>2011-03-15T10:04:00Z</updated><author><name>chinaifne</name><uri>http://www.cnblogs.com/chinafine/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chinafine/archive/2011/03/15/1985129.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chinafine/archive/2011/03/15/1985129.html"/><content type="html">现在是2004-03-26 13：31：40&lt;br /&gt;过去是：2004-01-02 11：30：24&lt;br /&gt;要获得两个日期差，差的形式为：XX天XX小时XX分XX秒&lt;br /&gt;&lt;br /&gt;方法一：&lt;br /&gt;DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");&lt;br /&gt;&lt;br /&gt;try&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date d1 = df.parse("2004-03-26 13:31:40");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date d2 = df.parse("2004-01-02 11:30:24");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; long diff = d1.getTime() - d2.getTime();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; long days = diff / (1000 * 60 * 60 * 24);&lt;br /&gt;}&lt;br /&gt;catch (Exception e)&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;方法二：&lt;br /&gt;&amp;nbsp;&amp;nbsp; SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");&lt;br /&gt;&amp;nbsp;&amp;nbsp; java.util.Date now = df.parse("2004-03-26 13:31:40");&lt;br /&gt;&amp;nbsp;&amp;nbsp; java.util.Date date=df.parse("2004-01-02 11:30:24");&lt;br /&gt;&amp;nbsp;&amp;nbsp; long l=now.getTime()-date.getTime();&lt;br /&gt;&amp;nbsp;&amp;nbsp; long day=l/(24*60*60*1000);&lt;br /&gt;&amp;nbsp;&amp;nbsp; long hour=(l/(60*60*1000)-day*24);&lt;br /&gt;&amp;nbsp;&amp;nbsp; long min=((l/(60*1000))-day*24*60-hour*60);&lt;br /&gt;&amp;nbsp;&amp;nbsp; long s=(l/1000-day*24*60*60-hour*60*60-min*60);&lt;br /&gt;&amp;nbsp;&amp;nbsp; System.out.println(""+day+"天"+hour+"小时"+min+"分"+s+"秒");&lt;br /&gt;&lt;br /&gt;方法三：&lt;br /&gt;&amp;nbsp;&amp;nbsp; SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");&lt;br /&gt;&amp;nbsp;&amp;nbsp; java.util.Date begin=dfs.parse("2004-01-02 11:30:24");&lt;br /&gt;&amp;nbsp;&amp;nbsp; java.util.Date end = dfs.parse("2004-03-26 13:31:40");&lt;br /&gt;&amp;nbsp;&amp;nbsp; long between=(end.getTime()-begin.getTime())/1000;//除以1000是为了转换成秒&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; long day1=between/(24*3600);&lt;br /&gt;&amp;nbsp;&amp;nbsp; long hour1=between%(24*3600)/3600;&lt;br /&gt;&amp;nbsp;&amp;nbsp; long minute1=between%3600/60;&lt;br /&gt;&amp;nbsp;&amp;nbsp; long second1=between%60/60;&lt;br /&gt;&amp;nbsp;&amp;nbsp; System.out.println(""+day1+"天"+hour1+"小时"+minute1+"分"+second1+"秒");&lt;br /&gt;&lt;img src="http://www.cnblogs.com/chinafine/aggbug/1985129.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chinafine/archive/2011/03/15/1985129.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chinafine/archive/2011/01/11/1933352.html</id><title type="text">checkstyle配置文件说明</title><summary type="text">属性说明 basedir代码所在的位置 AbstractClassNameformat: 定义抽象类的命名规则 PackageNameformat: 定义包名的命名规则 TypeNameformat: 定义类和接口的命名规则tokens: 定义规则适用的类型，例如：CLASS_DEF表示类，INTERFACE_DEF 表示接口 ParameterNameformat: 定义参数名的命名规则 Par...</summary><published>2011-01-11T14:52:00Z</published><updated>2011-01-11T14:52:00Z</updated><author><name>chinaifne</name><uri>http://www.cnblogs.com/chinafine/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chinafine/archive/2011/01/11/1933352.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chinafine/archive/2011/01/11/1933352.html"/><content type="html">&lt;p&gt;&amp;nbsp; &lt;p&gt;属性&lt;br&gt;说明 &lt;p&gt;basedir&lt;br&gt;代码所在的位置 &lt;p&gt;AbstractClassName&lt;br&gt;format: 定义抽象类的命名规则 &lt;p&gt;PackageName&lt;br&gt;format: 定义包名的命名规则 &lt;p&gt;TypeName&lt;br&gt;format: 定义类和接口的命名规则&lt;br&gt;tokens: 定义规则适用的类型，例如：CLASS_DEF表示类，INTERFACE_DEF 表示接口 &lt;p&gt;ParameterName&lt;br&gt;format: 定义参数名的命名规则 &lt;p&gt;ParameterNumber&lt;br&gt;max: 定义最多有多少个参数&lt;br&gt;tokens: 定义检查的类型 &lt;p&gt;StaticVariableName&lt;br&gt;format: 定义静态变量的命名规则 &lt;p&gt;MethodName&lt;br&gt;format: 定义方法名的命名规则 &lt;p&gt;LeftCurly&lt;br&gt;option: 定义左大括号'{'显示位置，eol在同一行显示，nl在下一行显示&lt;br&gt;maxLineLength: 大括号'{'所在行行最多容纳的字符数&lt;br&gt;tokens: 该属性适用的类型，例：CLASS_DEF,INTERFACE_DEF,METHOD_DEF,CTOR_DEF &lt;p&gt;LineLength&lt;br&gt;max: 定义一行所能容许的字符数&lt;br&gt;ignorePattern: 定义可以忽略的格式 &lt;p&gt;MethodLength&lt;br&gt;检查方法的行数&lt;br&gt;max: 最多容许的行数&lt;br&gt;countEmpty: 是否计算空行&lt;br&gt;tokens: 定义检查的类型 &lt;p&gt;RightCurly&lt;br&gt;option: 右大括号是否单独一行显示&lt;br&gt;tokens: 定义检查的类型 &lt;p&gt;PackageHtml&lt;br&gt;检查对每一个包是否生成了package.html文件&lt;br&gt;fileExtensions: 指定要检查的文件的类型，如果只包含java文件，就不必指定 &lt;p&gt;JavadocType&lt;br&gt;检查类或者接口的javadoc注释&lt;br&gt;authorFormat: 检查author标签的格式&lt;br&gt;versionFormat: 检查version标签的格式&lt;br&gt;scope: 可以检查的类的范围，例如：public只能检查public修饰的类，private可以检查所有的类&lt;br&gt;excludeScope: 不能检查的类的范围，例如：public，public的类将不被检查，但访问权限小于public的类仍然会检查，其他的权限以此类推&lt;br&gt;tokens: 该属性适用的类型，例如：CLASS_DEF,INTERFACE_DEF &lt;p&gt;JavadocMethod&lt;br&gt;检查方法的javadoc的注释&lt;br&gt;scope: 可以检查的方法的范围，例如：public只能检查public修饰的方法，private可以检查所有的方法&lt;br&gt;allowMissingParamTags: 是否忽略对参数注释的检查&lt;br&gt;allowMissingThrowsTags: 是否忽略对throws注释的检查&lt;br&gt;allowMissingReturnTag: 是否忽略对return注释的检查 &lt;p&gt;JavadocVariable&lt;br&gt;检查类变量的注释&lt;br&gt;scope: 检查变量的范围，例如：public只能检查public修饰的变量，private可以检查所有的变量 &lt;p&gt;JavadocStyle&lt;br&gt;scope: &lt;br&gt;excludeScope: &lt;br&gt;checkFirstSentence: &lt;br&gt;checkEmptyJavadoc: &lt;br&gt;checkHtml: &lt;br&gt;tokens:  &lt;p&gt;LocalVariableName&lt;br&gt;format: 定义局部变量的命名规则 &lt;p&gt;LocalFinalVariableName&lt;br&gt;format: 定义局部常量的命名规则 &lt;p&gt;ConstantName&lt;br&gt;format: 定义全局常量的命名规则 &lt;p&gt;MemberName&lt;br&gt;format: 定义非静态成员变量的命名规则&lt;br&gt;applyToPublic: 是否适用于public的成员变量&lt;br&gt;applyToProtected: 是否适用于protected的成员变量&lt;br&gt;applyToPackage: 是否适用于package的成员变量&lt;br&gt;applyToPrivate: 是否适用于private的成员变量 &lt;p&gt;AvoidStarImport&lt;br&gt;必须导入类的完整路径，即不能使用*导入所需的类&lt;br&gt;excludes: 定义可以使用*导入的包 &lt;p&gt;ImportOrder&lt;br&gt;定义导入包的顺序&lt;br&gt;groups: 定义导入包的顺序，默认以字母顺序导入&lt;br&gt;ordered: 定义包是否必须按规定的顺序显示&lt;br&gt;separated: 定义包与包之间是否应添加空白行&lt;br&gt;caseSensitive: 是否区分包名的大小写 &lt;p&gt;IllegalImport&lt;br&gt;检查是否从非法的包中导入了类&lt;br&gt;illegalPkgs: 定义非法的包名称 &lt;p&gt;UnusedImports&lt;br&gt;检查是否导入的包没有使用 &lt;p&gt;RedundantImport&lt;br&gt;检查是否导入了不必显示导入的类 &lt;p&gt;EmptyForInitializerPad&lt;br&gt;检查for语句初始化变量的格式&lt;br&gt;option: 定义初始化语句中是否使用空格，例如：space表示使用空格，则for(int i = 0; i &amp;lt; 100; i++)就是符合格式要求的，而for(int i=0; i&amp;lt;100;i++)就不符合要求 &lt;p&gt;EmptyForIteratorPad&lt;br&gt;检查for iterator语句是否使用空格&lt;br&gt;option: 定义初始化语句是否使用空格，例如：space表示使用空格，则for(Iterator iterator = List.iterator(); iterator.hasNext(); iterator.next())就是形式合理的，否则就是形式不合理的 &lt;p&gt;ExecutableStatementCount&lt;br&gt;检查要执行的语句的数目&lt;br&gt;max: 定义所能容许的语句的最多数目&lt;br&gt;tokens: 定义可以检查的类型，例如：CTOR_DEF,METHOD_DEF,STATIC_INIT,INSTANCE_INIT &lt;p&gt;FileLength&lt;br&gt;max: 定义一个文件所能容许的行数 &lt;p&gt;AnonInnerLength&lt;br&gt;检查匿名内部类&lt;br&gt;max: 定义匿名内部类最多容许的行数 &lt;p&gt;MethodParamPad&lt;br&gt;检查方法参数的格式&lt;br&gt;allowLineBreaks: 参数是否允许在不同行（注：没有作用）&lt;br&gt;option: 在参数和括号、参数和标识符之间是否包含空格 &lt;p&gt;OperatorWrap&lt;br&gt;检查运算符是否在应在同一行&lt;br&gt;option: 定义运算符的位置，eol在同一行，nl在下一行&lt;br&gt;tokens: 定义检查的类型 &lt;p&gt;ParenPad&lt;br&gt;检查左小括号'('后边和右小括号')'前边是否有空格&lt;br&gt;option: space表示有空格，nospace表示没有空格&lt;br&gt;tokens: 定义检查的类型 &lt;p&gt;TypecastParenPad&lt;br&gt;暂不清楚 &lt;p&gt;TabCharacter&lt;br&gt;检查源码中是否包含\t &lt;p&gt;WhitespaceAfter&lt;br&gt;检查类型后是否包含空格&lt;br&gt;tokens: 检查的类型 &lt;p&gt;WhitespaceAround&lt;br&gt;暂不清楚 &lt;p&gt;ModifierOrder&lt;br&gt;检查修饰符的顺序，默认是 public,protected,private,abstract,static,final,transient,volatile,synchronized,native,strictfp（注：定义不起作用） &lt;p&gt;RedundantModifier &lt;p&gt;RedundantModifier&lt;br&gt;检查是否有多余的修饰符，例如：接口中的方法不必使用public、abstract修饰&lt;br&gt;tokens: 检查的类型 &lt;p&gt;EmptyBlock&lt;br&gt;检查是否有空代码块&lt;br&gt;option: 定义代码块中应该包含的内容，例如：stmt表示语句&lt;br&gt;tokens: 检查的类型 &lt;p&gt;NeedBraces&lt;br&gt;检查是否应该使用括号的地方没有加括号&lt;br&gt;tokens: 定义检查的类型 &lt;p&gt;AvoidNestedBlocks&lt;br&gt;检查是否有嵌套的代码块&lt;br&gt;allowInSwitchCase: 定义是否允许switch case中使用嵌套的代码块 &lt;p&gt;ArrayTrailingComma&lt;br&gt;检查初始化数祖时，最后一个元素后面是否加了逗号，如果左右大括号都在同一行，则可以不加逗号 &lt;p&gt;AvoidInlineConditionals&lt;br&gt;检查是否在同一行初始化， 例如：private int Age = nGe==1 ? 100 : 0; 就应该避免 &lt;p&gt;CovariantEquals&lt;br&gt;暂不清楚 &lt;p&gt;ModifiedControlVariable&lt;br&gt;检查循环控制变量是否被修改 &lt;p&gt;SimplifyBooleanExpression&lt;br&gt;检查是否有boolean使用冗余的地方，例如：b == true、b || true，应该简化为 b、b &lt;p&gt;SimplifyBooleanReturn&lt;br&gt;检查是否在返回boolean值时是否有使用冗余的地方，例如：&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(valid())&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;br&gt;应该改为：&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return valid(); &lt;p&gt;StringLiteralEquality&lt;br&gt;检查在判断字符串是否相等时是否使用了正确的形式 &lt;p&gt;EqualsHashCode&lt;br&gt;检查在重写了equals方法后是否重写了hashCode方法 &lt;p&gt;FinalLocalVariable&lt;br&gt;检查变量值没有改动的情况下，该变量是否定义成了final &lt;p&gt;MissingSwitchDefault&lt;br&gt;检查switch语句是否忘记了default标签 &lt;p&gt;RedundantThrows&lt;br&gt;检查是否抛出了多余的异常 &lt;p&gt;DefaultComesLast&lt;br&gt;检查switch中default是否在所有case的后面 &lt;p&gt;MissingCtor&lt;br&gt;检查类中是否显式定义了构造器 &lt;p&gt;FallThrough&lt;br&gt;检查switch中case后是否加入了跳出语句，例如：return、break、throw、continue &lt;p&gt;MultipleStringLiterals&lt;br&gt;检查一个字符串变量在不改变变量值的情况下或者字符串出现的次数&lt;br&gt;allowedDuplicates: 定义在类中一个字符串变量在不改变变量值的情况下或者字符串所能使用的最多次数 &lt;p&gt;MultipleVariableDeclarations&lt;br&gt;检查一次声明多个变量时，变量是否在同一行或者在同一个语句中 &lt;p&gt;RequireThis&lt;br&gt;检查是否使用了this&lt;br&gt;checkFields: 是否检查变量引用&lt;br&gt;checkMethods: 是否检查方法调用 &lt;p&gt;UnnecessaryParentheses&lt;br&gt;检查是否使用了多余的小括号 &lt;p&gt;VisibilityModifier&lt;br&gt;检查变量是否对外部可见&lt;br&gt;packageAllowed: 变量包内成员可以访问&lt;br&gt;protectedAllowed: 变量是受保护的&lt;br&gt;publicMemberPattern: 可以公开访问的变量所匹配的命名形式 &lt;p&gt;FinalClass&lt;br&gt;只有私有构造器的类必须声明为final &lt;p&gt;InterfaceIsType&lt;br&gt;检查接口是否只定义了变量而没有定义方法，因为接口应该用来描述一个类型，所以只定义变量而不定义方法是不恰当的&lt;br&gt;allowMarkerInterfaces: 是否检查空接口 &lt;p&gt;HideUtilityClassConstructor&lt;br&gt;只定义了静态方法的类不应该定义一个公有的构造器 &lt;p&gt;DesignForExtension&lt;br&gt;检查类是否被设计为可扩展的，如果是，则方法应该abstract、final或者是空的 &lt;p&gt;ThrowsCount&lt;br&gt;检查抛出异常的数量&lt;br&gt;max: 定义抛出异常的最大数目 &lt;p&gt;StrictDuplicateCode&lt;br&gt;检查类中是否有代码复制的问题&lt;br&gt;min: 允许代码重复的最小行数&lt;br&gt;charset: 文件所用的字符集 &lt;p&gt;BooleanExpressionComplexity&lt;br&gt;max: 布尔运算符在一条语句中允许出现的最大数目 &lt;p&gt;GenericIllegalRegexp&lt;br&gt;检查代码中是否有不合适的引用形式或者字符&lt;br&gt;format: 定义检查所匹配的类型&lt;br&gt;ignoreCase: 是否区分大小写&lt;br&gt;ignoreComments: 是否忽略注释&lt;br&gt;message: 出现问题应该显示给用户的信息 &lt;p&gt;NewlineAtEndOfFile&lt;br&gt;检查文件是否以一个新行结束&lt;br&gt;lineSeparator: 行分隔符的类型，windows是crlf &lt;p&gt;UncommentedMain&lt;br&gt;检查是否有没有被注掉或者删除的main方法&lt;br&gt;excludedClasses: 定义可以带main方法的类所匹配的名字形式 &lt;p&gt;UpperEll&lt;br&gt;检查初始化长整型变量时，数字後是加了大写字母'L'而不是小写字母'l' &lt;p&gt;ArrayTypeStyle&lt;br&gt;检查再定义数组时，采用java风格还是c风格，例如：int[] num是java风格，int num[]是c风格&lt;br&gt;javaStyle: 定义是否采用java风格定义数组 &lt;p&gt;FinalParameters&lt;br&gt;检查参数是否是常量&lt;br&gt;tokens: 定义检查的类型 &lt;p&gt;Indentation&lt;br&gt;检查代码的缩进是否符合要求&lt;br&gt;basicOffset: 定义代码体相对于所属的代码体的缩进量&lt;br&gt;braceAdjustment: 定义括号的缩进量&lt;br&gt;caseIndent: 定义case的缩进量 &lt;p&gt;RequiredRegexp&lt;br&gt;检查文件中是否存在相应的文字&lt;br&gt;format: 定义所匹配的形式 &lt;p&gt;usage.OneMethodPrivateField&lt;br&gt;检查是否只有一个方法访问了私有变量&lt;br&gt;ignoreFormat: 定义可以忽略的变量所匹配的命名形式 &lt;p&gt;usage.UnusedLocalVariable&lt;br&gt;检查是否有命名後没有使用的变量&lt;br&gt;ignoreFormat: 定义可以忽略的变量所匹配的命名形式 &lt;p&gt;usage.UnusedParameter&lt;br&gt;检查是否有没有使用的参数&lt;br&gt;ignoreFormat: 定义可以忽略的变量所匹配的命名形式&lt;br&gt;ignoreCatch: 是否忽略catch中的参数&lt;br&gt;ignoreNonLocal: 是否忽略非本地的变量 &lt;p&gt;usage.UnusedPrivateField&lt;br&gt;检查是否存在未被使用的私有成员变量&lt;br&gt;ignoreFormat: 定义可以忽略的变量所匹配的命名形式 &lt;p&gt;usage.UnusedPrivateMethod&lt;br&gt;检查是否存在未被使用的私有方法&lt;br&gt;ignoreFormat: 定义可以忽略的变量所匹配的命名形式&lt;/p&gt;&lt;img src="http://www.cnblogs.com/chinafine/aggbug/1933352.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chinafine/archive/2011/01/11/1933352.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chinafine/archive/2011/01/06/1927113.html</id><title type="text">MyEclipse 不编译了,无论怎么更改保存, classes目录下都是空的.</title><summary type="text">MyEclipse 不编译了,无论怎么更改保存, classes目录下都是空的. MyEclipse不编译解决1. 确保 project-&gt;build automatically 已经被选上. MyEclipse不编译解决2. 如果选上了,也不好使, 使用这一招: project-&gt;clean..-&gt;选第2个clean select project, 勾上start build immediate...</summary><published>2011-01-06T02:45:00Z</published><updated>2011-01-06T02:45:00Z</updated><author><name>chinaifne</name><uri>http://www.cnblogs.com/chinafine/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chinafine/archive/2011/01/06/1927113.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chinafine/archive/2011/01/06/1927113.html"/><content type="html">&lt;p&gt;MyEclipse 不编译了,无论怎么更改保存, classes目录下都是空的. &lt;br&gt;MyEclipse不编译解决1. 确保 project-&amp;gt;build automatically&amp;nbsp;&amp;nbsp;&amp;nbsp; 已经被选上. &lt;br&gt;MyEclipse不编译解决2. 如果选上了,也不好使, 使用这一招: project-&amp;gt;clean..-&amp;gt;选第2个clean select project, 勾上start build immediatelly &lt;br&gt;MyEclipse不编译解决3.删除现在的项目,提前设置好编译文件输出路径，重新导入源文件，设置MyEclipse为保存时编译，然后在保存的时候就可以自动编译了 &lt;br&gt;MyEclipse不编译解决4.如果项目里引了某个不用的jar包，而那个包又被你删了，就会出现不报错但怎么也编译不出来class文件的情况，可以把所有包都删除,然后一个一个的再引入(需要的),不要一下子把所有包都引入来,没用的可能会引起不良后果. &lt;br&gt;MyEclipse不编译解决5. 想删掉某个class文件重新生成，删除class文件后，但classes目录下的文件夹被其它程序打开，比如Total Commander。此时编译也不会通过，在problems下可能会提示“con''t delete classes ……”。关掉其它程序重新编译即可。 &lt;br&gt;MyEclipse不编译解决6.还有种情况是remove掉 JRE System Library，重新导入即可编译。但是什么原因导致的还不清楚。 &lt;br&gt;MyEclipse不编译解决7.把build path中所有包都remove掉。然后又add jars,add libraries把需要的加进去，居然又开始编译了。。。 &lt;br&gt;MyEclipse不编译解决8.project-&amp;gt;properties-&amp;gt;java build path-&amp;gt;source-&amp;gt;.../WEB-INF/src的output folder不要默认，编辑让它指向../WEB-INF/classes &lt;br&gt;然后重新点击build工程即可自动编译。我的问题出在这里，我把这个编译目录给误删了 &lt;br&gt;MyEclipse不编译解决9.再就是最重要的要看工程下面是否缺少了work目录,由于CVS控制时不把work加如版本,所以checkout后没有这个目录,要手工加上有的工程就能自动编译了 &lt;br&gt;最开始的时候,我只找到了前面7个方法,但是他们都没有解决我的问题.无意中我打开了"Problems"标签,发现里面说缺少work目录,手工加上,然后刷新项目就可以了. &lt;br&gt;最后两个是我在写这个总结的时候发现的.特别是第九条,对使用CVS进行版本控制的项目比较有用. &lt;br&gt;.classpath这个xml文件要仔细看 &lt;/p&gt;&lt;img src="http://www.cnblogs.com/chinafine/aggbug/1927113.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chinafine/archive/2011/01/06/1927113.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chinafine/archive/2011/01/05/1926041.html</id><title type="text">查询表空间</title><summary type="text">select a.a1 表空间名称,c.c2 类型,c.c3 区管理,b.b2/1024/1024 表空间大小M,(b.b2-a.a2)/1024/1024 已使用M,substr((b.b2-a.a2)/b.b2*100,1,5) 利用率from (select tablespace_name a1, sum(nvl(bytes,0)) a2 from dba_free_space group ...</summary><published>2011-01-05T01:54:00Z</published><updated>2011-01-05T01:54:00Z</updated><author><name>chinaifne</name><uri>http://www.cnblogs.com/chinafine/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chinafine/archive/2011/01/05/1926041.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chinafine/archive/2011/01/05/1926041.html"/><content type="html">&lt;p&gt;select &lt;br&gt;a.a1 表空间名称,&lt;br&gt;c.c2 类型,&lt;br&gt;c.c3 区管理,&lt;br&gt;b.b2/1024/1024 表空间大小M,&lt;br&gt;(b.b2-a.a2)/1024/1024 已使用M,&lt;br&gt;substr((b.b2-a.a2)/b.b2*100,1,5) 利用率&lt;br&gt;from &lt;br&gt;(select&amp;nbsp; tablespace_name a1, sum(nvl(bytes,0)) a2 from dba_free_space group by tablespace_name) a,&lt;br&gt;(select tablespace_name b1,sum(bytes) b2 from dba_data_files group by tablespace_name) b,&lt;br&gt;(select tablespace_name c1,contents c2,extent_management c3&amp;nbsp; from dba_tablespaces) c &lt;br&gt;where a.a1=b.b1 and c.c1=b.b1;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/chinafine/aggbug/1926041.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chinafine/archive/2011/01/05/1926041.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chinafine/archive/2010/12/31/1923223.html</id><title type="text">Oralce中的synonym同义词</title><summary type="text">设定同义词，方便使用select * from emp;等用于select * from abc;建立共有的同义词如果用户的等级不够建立public同义词，可以在system下授权：grant create any synonym to scott;grant create public synonym to scott;取消授权：revoke create any synoym from sco...</summary><published>2010-12-31T08:14:00Z</published><updated>2010-12-31T08:14:00Z</updated><author><name>chinaifne</name><uri>http://www.cnblogs.com/chinafine/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chinafine/archive/2010/12/31/1923223.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chinafine/archive/2010/12/31/1923223.html"/><content type="html">&lt;p&gt;设定同义词，方便使用&lt;br&gt;&lt;strong&gt;select * from emp;等用于select * from abc;&lt;br&gt;&lt;/strong&gt;建立共有的同义词&lt;br&gt;如果用户的等级不够建立public同义词，可以在system下授权：&lt;br&gt;&lt;strong&gt;grant create any synonym to scott;&lt;br&gt;grant create public synonym to scott;&lt;br&gt;&lt;/strong&gt;取消授权：&lt;br&gt;&lt;strong&gt;revoke create any synoym from scott;&lt;br&gt;revoke create public synoym from scott;&lt;br&gt;&lt;/strong&gt;取消同义词：&lt;br&gt;drop public synonym abc;&lt;br&gt;授权取消同义词：&lt;br&gt;grant dorp public synonym to scott;&lt;br&gt;取消授权：&lt;br&gt;revoke drop public synonym to scott;&lt;br&gt;15.9 引入同义词(Synonym)的原因&lt;br&gt;在一些商业数据库中，有时信息系统的设计或开发者为了增加易读性，故意定义一些很长的表名（也可能是其它的对象）。这样虽然增加了易读性，但在引用这些表 或对象时就不那么方便，也容易产生输入错误。另外在实际的商业公司里，一些用户觉得某一个对象名有意义也很好记，但另一些用户可能觉得另一个名字更有意 义。&lt;br&gt;ORACLE系统提供的同义词(Synonym)就是用来解决以上的难题的。设想一下在您的日常工作中您每天都要使用supplier表许多次，而且您的英文打字的水平并不高。在这种情形下，您就可以借助于同义词(Synonym)来帮助您提高生产力。&lt;br&gt;15.10 怎样创建同义词(Synonym)&lt;br&gt;现在您就可以使用如下的CREATE SYNONYM语句（例15-38）为表supplier建了一个同义词（别名）s。&lt;br&gt;例15-38&lt;br&gt;SQL&amp;gt; CREATE SYNONYM s&lt;br&gt;2 FOR supplier;&lt;br&gt;例15-38结果&lt;br&gt;同义词已创建。&lt;br&gt;现在您就可以把同义词（别名）s当成supplier来使用。您可以使用如下的查寻语句（例15-39）来验证这一点。&lt;br&gt;例15-39&lt;br&gt;SQL&amp;gt; SELECT *&lt;br&gt;2 FROM s;&lt;br&gt;例15-39结果&lt;br&gt;S_CODE SNAME CONTACT PHONE FAX &lt;br&gt;---------- ------------------------- --------------- --------------- -------&lt;br&gt;2000 仙客来百货 张根发 4444944 4444844&lt;br&gt;2010 心太软小商品 石铁心 1741741 1741742&lt;br&gt;2021 食为天餐具 金元宝 1671671 1671674&lt;br&gt;2032 食为先餐具 陆合彩 1681684 1681684&lt;br&gt;那您可能会问，您怎样才能知道您到底拥有哪些同义词(Synonym)呢？&lt;br&gt;还记得数据字典user_objects吗？既然同义词(Synonym)是对象，它们在这个数据字典中就一定有记载。因此您可以使用如下的查寻语句（例 15-41）从数据字典user_objects中得到您所拥有的全部同义词(Synonym)的信息。当然为了使SQL*PLUS的显示输出更加清晰您 应该先使用如下的SQL*PLUS格式化命令（例15-40）。&lt;br&gt;例15-40&lt;br&gt;SQL&amp;gt; col object_name for a20&lt;br&gt;例15-41&lt;br&gt;SQL&amp;gt;&lt;strong&gt; SELECT object_name, object_type, created, status&lt;br&gt;&lt;/strong&gt;2 &lt;strong&gt;FROM user_objects&lt;br&gt;&lt;/strong&gt;3&lt;strong&gt; WHERE object_type LIKE 'SYN%';&lt;br&gt;&lt;/strong&gt;例15-41结果&lt;br&gt;OBJECT_NAME OBJECT_TYPE CREATED STATUS&lt;br&gt;-------------------- ------------------ ---------- ------&lt;br&gt;S SYNONYM 28-4月 -03 VALID &lt;br&gt;例15-41显示的结果表明：&lt;font color="#ff0000"&gt;在您的模式（用户）下只有一个同义词(Synonym)，那就是您刚刚建立的同义词(Synonym)s。&lt;br&gt;但是例15-41显示的结果并没有告诉您这个同义词(Synonym)到底是基于那个表的及表的主人是谁。如果您有一个这样同义词(Synonym)时， 这方面的信息也许就显得特别重要了。您可以使用如下的查寻语句（例15-43）从数据字典user_synonyms中得到这方面的信息。当然为了使 SQL*PLUS的显示输出更加清晰您应该先使用如下的SQL*PLUS格式化命令&lt;/font&gt;（例15-42）。&lt;br&gt;例15-42&lt;br&gt;SQL&amp;gt; col table_owner for a12&lt;br&gt;SQL&amp;gt; col table_name for a12&lt;br&gt;例15-43&lt;br&gt;&lt;strong&gt;SQL&amp;gt; SELECT synonym_name, table_owner, table_name&lt;br&gt;2 FROM user_synonyms;&lt;br&gt;&lt;/strong&gt;例15-43结果&lt;br&gt;SYNONYM_NAME TABLE_OWNER TABLE_NAME&lt;br&gt;------------------------------ ------------ ----------&lt;br&gt;S SCOTT SUPPLIER &lt;br&gt;例15-43显示的结果表明：在您的模式（用户）下只有一个同义词(Synonym)，那就是您刚刚建立的同义词(Synonym)s。该同义词(Synonym)是基于表supplier，而这个表的主人是SCOTT。&lt;br&gt;创建同义词(Synonym)的语句格式如下：&lt;br&gt;CREATE [PUBLIC] SYNONYM 同义词的名字&lt;br&gt;FOR 对象名；&lt;br&gt;其中：&lt;br&gt;Ø PUBLIC： 系统中所有的用户都可以访问所创建的同义词&lt;br&gt;Ø 同义词的名字： 所创建的同义词的名字&lt;br&gt;Ø 对象名： 创建的同义词所基于的对象名&lt;br&gt;在创建同义词时要注意的事项：&lt;br&gt;Ø 所基于的对象不能包含在任何软件包中&lt;br&gt;Ø 一个私有的同义词不能与任何该用户下的其它对象重名&lt;br&gt;您刚刚创建的同义词(Synonym)s是一个私有的同义词，即只能在您的用户（SCOTT）下直接引用，如果其它用户引用它就必需冠以用户名.（既 scott.s的方式引用）。这样作很不方便。如果您所建的表supplier是一个所有用户共享并经常使用的表，您应该怎样处理这一问题呢？&lt;br&gt;15.11 创建公用同义词(Synonym)&lt;br&gt;您可以为supplier表创建一个公用同义词(Synonym)。为了演示方便，您应该从当前的SCOTT用户切换到另一个用户下，如SYSTEM。您可以使用如下的SQL*PLUS命令（例15-44）来完成用户的切换。&lt;br&gt;例15-44&lt;br&gt;SQL&amp;gt; CONNECT SYSTEM/MANAGER&lt;br&gt;例15-44结果&lt;br&gt;已连接。 &lt;br&gt;现在您如果使用如下的查寻语句（例15-45），您是不会得到您想要的信息的。&lt;br&gt;例15-45&lt;br&gt;SQL&amp;gt; SELECT *&lt;br&gt;2 FROM s;&lt;br&gt;例15-45结果&lt;br&gt;FROM s &lt;br&gt;* &lt;br&gt;ERROR 位于第 2 行: &lt;br&gt;ORA-00942: 表或视图不存在&lt;br&gt;您如果再使用如下的查寻语句（例15-46），您也同样不会得到您想要的信息的。&lt;br&gt;例15-46&lt;br&gt;SQL&amp;gt; SELECT *&lt;br&gt;2 FROM supplier;&lt;br&gt;例15-46结果&lt;br&gt;FROM supplier &lt;br&gt;* &lt;br&gt;ERROR 位于第 2 行: &lt;br&gt;ORA-00942: 表或视图不存在&lt;br&gt;如果您在同义词(Synonym)s之前冠以用户名.（scott.），您就可以得到您所需要的信息了。如下面的查寻语句（例15-47）。&lt;br&gt;例15-47&lt;br&gt;SQL&amp;gt; SELECT *&lt;br&gt;2 FROM scott.s;&lt;br&gt;例15-47结果&lt;br&gt;S_CODE SNAME CONTACT PHONE FAX &lt;br&gt;---------- ------------------------- --------------- --------------- -------&lt;br&gt;2000 仙客来百货 张根发 4444944 4444844&lt;br&gt;2010 心太软小商品 石铁心 1741741 1741742&lt;br&gt;2021 食为天餐具 金元宝 1671671 1671674&lt;br&gt;2032 食为先餐具 陆合彩 1681684 1681684&lt;br&gt;由于其它用户在引用这一同义词(Synonym)s时必须冠以您的用户名（.）.,这样很不方便，而且也容易产生输入错误，所以您可以使用如下的DDL语句（例15-48）为scott用户下的supplier建立一个公用的同义词(Synonym)ss。&lt;br&gt;例15-48&lt;br&gt;SQL&amp;gt; CREATE PUBLIC SYNONYM ss&lt;br&gt;2 FOR scott.supplier;&lt;br&gt;例15-48结果&lt;br&gt;同义词已创建。&lt;br&gt;现在您就可以利用您刚刚创建的公用的同义词(Synonym)ss来获得您所希望得到的信息。您可以使用如下的查寻语句（例15-49）。&lt;br&gt;例15-49&lt;br&gt;SQL&amp;gt; SELECT *&lt;br&gt;2 FROM ss;&lt;br&gt;例15-49结果&lt;br&gt;S_CODE SNAME CONTACT PHONE FAX &lt;br&gt;---------- ------------------------- --------------- --------------- -------&lt;br&gt;2000 仙客来百货 张根发 4444944 4444844&lt;br&gt;2010 心太软小商品 石铁心 1741741 1741742&lt;br&gt;2021 食为天餐具 金元宝 1671671 1671674&lt;br&gt;2032 食为先餐具 陆合彩 1681684 1681684&lt;br&gt;您也可能会问，其它用户是否也可以使用同样的方法访问同义词(Synonym)ss。答案是肯定的。如果您还有疑问的话，您可以试着以如下的SQL*PLUS命令（例15-50）以SYS用户登录进入ORACLE数据库。&lt;br&gt;例15-50&lt;br&gt;SQL&amp;gt; CONNECT SYS/ORACLE AS SYSDBA;&lt;br&gt;例15-50结果&lt;br&gt;已连接。 &lt;br&gt;现在您就可以利用公共同义词(Synonym)ss来获得您所希望得到的信息。您可以使用如下的查寻语句（例15-51）。&lt;br&gt;例15-51&lt;br&gt;SQL&amp;gt; SELECT *&lt;br&gt;2 FROM ss;&lt;br&gt;例15-51结果&lt;br&gt;S_CODE SNAME CONTACT PHONE FAX &lt;br&gt;---------- ------------------------- --------------- --------------- -------&lt;br&gt;2000 仙客来百货 张根发 4444944 4444844&lt;br&gt;2010 心太软小商品 石铁心 1741741 1741742&lt;br&gt;2021 食为天餐具 金元宝 1671671 1671674&lt;br&gt;2032 食为先餐具 陆合彩 1681684 1681684&lt;br&gt;ORACLE并没有提供修改同义词(Synonym)的命令。如果您要修改某一同义词(Synonym)的话，您要先把它删除掉，之后再重新建立这个同义词(Synonym)。&lt;br&gt;15.12 删除同义词(Synonym)&lt;br&gt;如果经过了一段时间，您发现同义词(Synonym)s已经没什么用处了，您就可以使用如下的DDL语句（例15-53）将它删除掉。不过在这之前您可能得先使用如下的SQL*PLUS命令（例15-52）重新注册到SCOTT用户下。&lt;br&gt;例15-52&lt;br&gt;SQL&amp;gt; CONNECT SCOTT/TIGER&lt;br&gt;例15-52结果&lt;br&gt;已连接。 &lt;br&gt;例15-53&lt;br&gt;SQL&amp;gt; DROP SYNONYM s;&lt;br&gt;例15-53结果&lt;br&gt;同义词已丢弃。&lt;br&gt;虽然例15-53结果已经显示：“同义词已丢弃。”，但是为了谨慎起见，您还是应该使用如下的查寻语句（例15-54）查看一下数据字典user_objects。&lt;br&gt;例15-54&lt;br&gt;SQL&amp;gt; SELECT object_name, object_type, created, status&lt;br&gt;2 FROM user_objects&lt;br&gt;3 WHERE object_type LIKE 'SYN%';&lt;br&gt;例15-54结果&lt;br&gt;未选定行 &lt;br&gt;或者您应该使用如下的查寻语句（例15-55）查看一下数据字典user_ synonyms。&lt;br&gt;例15-55&lt;br&gt;SQL&amp;gt; SELECT synonym_name, table_owner, table_name&lt;br&gt;2 FROM user_synonyms;&lt;br&gt;例15-55结果&lt;br&gt;未选定行 &lt;br&gt;例15-54和例15-55显示的结果进一步证实了您已经将同义词(Synonym)s成功地从系统中删除掉。&lt;br&gt;删除同义词(Synonym)语句的格式如下：&lt;br&gt;DROP SYNONYM 同义词的名字；&lt;/p&gt;&lt;img src="http://www.cnblogs.com/chinafine/aggbug/1923223.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chinafine/archive/2010/12/31/1923223.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chinafine/archive/2010/12/23/1915312.html</id><title type="text">sqlserver 2008 r2 直接下载地址，可用迅雷下载</title><summary type="text">sqlserver 2008 r2 直接下载地址，可用迅雷下载下载sqlserver 2008 r2 ，微软用了一个下载器，经过从下载器上，将他的地址全部用键盘敲了下来。最终的简体中文版地址如下：32位：http://care.dlservice.microsoft.com/dl/download/1/e/6/1e626796-588a-495c-917B-321093fb98eb/2052/sqlfull_x86_chs.exe?lcid=2052&amp;ptype=pcare64位：http://care.dlservice.microsoft.com/dl/download/1/e/6/1e6</summary><published>2010-12-23T13:55:00Z</published><updated>2010-12-23T13:55:00Z</updated><author><name>chinaifne</name><uri>http://www.cnblogs.com/chinafine/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chinafine/archive/2010/12/23/1915312.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chinafine/archive/2010/12/23/1915312.html"/><content type="html">&lt;p&gt;sqlserver 2008 r2 直接下载地址，可用迅雷下载&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;下载sqlserver 2008 r2 ，微软用了一个下载器，经过从下载器上，将他的地址全部用键盘敲了下来。最终的简体中文版地址如下：&lt;/p&gt;&lt;p&gt;32位：&lt;/p&gt;&lt;p&gt;http://care.dlservice.microsoft.com/dl/download/1/e/6/1e626796-588a-495c-917B-321093fb98eb/2052/sqlfull_x86_chs.exe?lcid=2052&amp;amp;ptype=pcare&lt;/p&gt;&lt;p&gt;64位：&lt;/p&gt;&lt;p&gt;http://care.dlservice.microsoft.com/dl/download/1/e/6/1e626796-588a-495c-917B-321093fb98eb/2052/sqlfull_x64_chs.exe?lcid=2052&amp;amp;ptype=pcare&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/chinafine/aggbug/1915312.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chinafine/archive/2010/12/23/1915312.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
