亚洲二区在线视频,亚洲乱色伦图片区小说,亚洲一区免费观看http://www.tkk7.com/zdq5337/category/43213.html空山無(wú)人,水流花開(kāi)。zh-cnThu, 09 Aug 2012 23:40:18 GMTThu, 09 Aug 2012 23:40:18 GMT60struts2封裝的json 返回?cái)?shù)據(jù)不完整的 解決辦法http://www.tkk7.com/zdq5337/archive/2011/05/19/350629.html開(kāi)花流水開(kāi)花流水Thu, 19 May 2011 10:01:00 GMThttp://www.tkk7.com/zdq5337/archive/2011/05/19/350629.htmlhttp://www.tkk7.com/zdq5337/comments/350629.htmlhttp://www.tkk7.com/zdq5337/archive/2011/05/19/350629.html#Feedback1http://www.tkk7.com/zdq5337/comments/commentRss/350629.htmlhttp://www.tkk7.com/zdq5337/services/trackbacks/350629.html
ServletActionContext.getResponse().setContentType("application/json;charset=UTF-8");
        ServletActionContext.getResponse().setCharacterEncoding("UTF-8");
        ServletActionContext.getResponse().getWriter().print(JSONObject.fromObject(data).toString());
        return  NONE;

替換掉 直接return "success";

其中data 是所要返回的數(shù)據(jù)。 

簡(jiǎn)化如下:
    List list = demoServise.queryItemList(id);
   response.setContentType("text/html;charset=UTF-8");
   PrintWriter out = response.getWriter();
   out.write(JSONArray.fromObject(list).toString());
   out.flush();
   out.close();
    return null;

開(kāi)花流水 2011-05-19 18:01 發(fā)表評(píng)論
]]>
eclipse自動(dòng)生成注釋http://www.tkk7.com/zdq5337/archive/2011/03/08/345932.html開(kāi)花流水開(kāi)花流水Tue, 08 Mar 2011 06:00:00 GMThttp://www.tkk7.com/zdq5337/archive/2011/03/08/345932.htmlhttp://www.tkk7.com/zdq5337/comments/345932.htmlhttp://www.tkk7.com/zdq5337/archive/2011/03/08/345932.html#Feedback0http://www.tkk7.com/zdq5337/comments/commentRss/345932.htmlhttp://www.tkk7.com/zdq5337/services/trackbacks/345932.html

<?xml version="1.0" encoding="UTF-8"?><templates><template autoinsert="false" context="settercomment_context" deleted="false" description="Comment for setter method" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.settercomment" name="settercomment">/**
 * @param ${param} : set the property ${bare_field_name}.
 */</template><template autoinsert="false" context="filecomment_context" deleted="false" description="Comment for created Java files" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.filecomment" name="filecomment">/**  
 * @title ${file_name}
 * @package ${package_name}
 * @description 用一句話描述該文件做什么
 * @author zdq   
 * @update ${date} ${time}
 * @version V1.0  
 */</template><template autoinsert="false" context="delegatecomment_context" deleted="false" description="Comment for delegate methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name="delegatecomment">/**
 * ${tags}
 * ${see_to_target}
 */</template><template autoinsert="false" context="typecomment_context" deleted="false" description="Comment for created types" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.typecomment" name="typecomment">/**
 * @description 這里用一句話描述這個(gè)類的作用
 * @version 1.0
 * @author zdq
 * @update ${date} ${time}
 */

</template><template autoinsert="false" context="overridecomment_context" deleted="false" description="Comment for overriding methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name="overridecomment">/* (non-Javadoc)
 * ${see_to_overridden}
 */</template><template autoinsert="false" context="fieldcomment_context" deleted="false" description="Comment for fields" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name="fieldcomment">/**
 * @fields ${field}
 */
</template><template autoinsert="false" context="methodcomment_context" deleted="false" description="Comment for non-overriding methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name="methodcomment">/**
 * ${tags}
 * @description 用一句話說(shuō)明這個(gè)方法做什么
 * @version 1.0
 * @author zdq
 * @update ${date} ${time}
 */</template><template autoinsert="false" context="gettercomment_context" deleted="false" description="Comment for getter method" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name="gettercomment">/**
 * @return ${bare_field_name} : return the property ${bare_field_name}.
 */</template><template autoinsert="false" context="constructorcomment_context" deleted="false" description="Comment for created constructors" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name="constructorcomment">/**
 * 類的構(gòu)造方法
 * ${tags}
 */</template></templates>

在window->java->code style->code templates下的Code Comments中import該文件即可
快捷鍵引用注釋:Alt+Shift+J

開(kāi)花流水 2011-03-08 14:00 發(fā)表評(píng)論
]]>
Eclipse快捷鍵大全(轉(zhuǎn)載)http://www.tkk7.com/zdq5337/archive/2010/12/23/341375.html開(kāi)花流水開(kāi)花流水Thu, 23 Dec 2010 03:41:00 GMThttp://www.tkk7.com/zdq5337/archive/2010/12/23/341375.htmlhttp://www.tkk7.com/zdq5337/comments/341375.htmlhttp://www.tkk7.com/zdq5337/archive/2010/12/23/341375.html#Feedback0http://www.tkk7.com/zdq5337/comments/commentRss/341375.htmlhttp://www.tkk7.com/zdq5337/services/trackbacks/341375.htmlCtrl+1 快速修復(fù)(最經(jīng)典的快捷鍵,就不用多說(shuō)了)
Ctrl+D: 刪除當(dāng)前行 
Ctrl+Alt+↓ 復(fù)制當(dāng)前行到下一行(復(fù)制增加)
Ctrl+Alt+↑ 復(fù)制當(dāng)前行到上一行(復(fù)制增加)
Alt+↓ 當(dāng)前行和下面一行交互位置(特別實(shí)用,可以省去先剪切,再粘貼了)
Alt+↑ 當(dāng)前行和上面一行交互位置(同上)
Alt+← 前一個(gè)編輯的頁(yè)面
Alt+→ 下一個(gè)編輯的頁(yè)面(當(dāng)然是針對(duì)上面那條來(lái)說(shuō)了)
Alt+Enter 顯示當(dāng)前選擇資源(工程,or 文件 or文件)的屬性
Shift+Enter 在當(dāng)前行的下一行插入空行(這時(shí)鼠標(biāo)可以在當(dāng)前行的任一位置,不一定是最后)
Shift+Ctrl+Enter 在當(dāng)前行插入空行(原理同上條)
Ctrl+Q 定位到最后編輯的地方
Ctrl+L 定位在某行 (對(duì)于程序超過(guò)100的人就有福音了)
Ctrl+M 最大化當(dāng)前的Edit或View (再按則反之)
Ctrl+/ 注釋當(dāng)前行,再按則取消注釋
Ctrl+O 快速顯示 OutLine
Ctrl+T 快速顯示當(dāng)前類的繼承結(jié)構(gòu)
Ctrl+W 關(guān)閉當(dāng)前Editer
Ctrl+K 參照選中的Word快速定位到下一個(gè)
Ctrl+E 快速顯示當(dāng)前Editer的下拉列表(如果當(dāng)前頁(yè)面沒(méi)有顯示的用黑體表示)
Ctrl+/(小鍵盤) 折疊當(dāng)前類中的所有代碼
Ctrl+×(小鍵盤) 展開(kāi)當(dāng)前類中的所有代碼
Ctrl+Space 代碼助手完成一些代碼的插入(但一般和輸入法有沖突,可以修改輸入法的熱鍵,也可以暫用Alt+/來(lái)代替)
Ctrl+Shift+E 顯示管理當(dāng)前打開(kāi)的所有的View的管理器(可以選擇關(guān)閉,激活等操作)
Ctrl+J 正向增量查找(按下Ctrl+J后,你所輸入的每個(gè)字母編輯器都提供快速匹配定位到某個(gè)單詞,如果沒(méi)有,則在stutes line中顯示沒(méi)有找到了,查一個(gè)單詞時(shí),特別實(shí)用,這個(gè)功能Idea兩年前就有了)
Ctrl+Shift+J 反向增量查找(和上條相同,只不過(guò)是從后往前查)
Ctrl+Shift+F4 關(guān)閉所有打開(kāi)的Editer
Ctrl+Shift+X 把當(dāng)前選中的文本全部變味小寫
Ctrl+Shift+Y 把當(dāng)前選中的文本全部變?yōu)樾?br /> Ctrl+Shift+F 格式化當(dāng)前代碼
Ctrl+Shift+P 定位到對(duì)于的匹配符(譬如{}) (從前面定位后面時(shí),光標(biāo)要在匹配符里面,后面到前面,則反之)

下面的快捷鍵是重構(gòu)里面常用的,本人就自己喜歡且常用的整理一下(注:一般重構(gòu)的快捷鍵都是Alt+Shift開(kāi)頭的了)
Alt+Shift+R 重命名 (是我自己最愛(ài)用的一個(gè)了,尤其是變量和類的Rename,比手工方法能節(jié)省很多勞動(dòng)力)
Alt+Shift+M 抽取方法 (這是重構(gòu)里面最常用的方法之一了,尤其是對(duì)一大堆泥團(tuán)代碼有用)
Alt+Shift+C 修改函數(shù)結(jié)構(gòu)(比較實(shí)用,有N個(gè)函數(shù)調(diào)用了這個(gè)方法,修改一次搞定)
Alt+Shift+L 抽取本地變量( 可以直接把一些魔法數(shù)字和字符串抽取成一個(gè)變量,尤其是多處調(diào)用的時(shí)候)
Alt+Shift+F 把Class中的local變量變?yōu)閒ield變量 (比較實(shí)用的功能)
Alt+Shift+I 合并變量(可能這樣說(shuō)有點(diǎn)不妥Inline)
Alt+Shift+V 移動(dòng)函數(shù)和變量(不怎么常用)
Alt+Shift+Z 重構(gòu)的后悔藥(Undo)

編輯
作用域 功能 快捷鍵 
全局 查找并替換 Ctrl+F 
文本編輯器 查找上一個(gè) Ctrl+Shift+K 
文本編輯器 查找下一個(gè) Ctrl+K 
全局 撤銷 Ctrl+Z 
全局 復(fù)制 Ctrl+C 
全局 恢復(fù)上一個(gè)選擇 Alt+Shift+↓ 
全局 剪切 Ctrl+X 
全局 快速修正 Ctrl1+1 
全局 內(nèi)容輔助 Alt+/ 
全局 全部選中 Ctrl+A 
全局 刪除 Delete 
全局 上下文信息 Alt+?
Alt+Shift+?
Ctrl+Shift+Space 
Java編輯器 顯示工具提示描述 F2 
Java編輯器 選擇封裝元素 Alt+Shift+↑ 
Java編輯器 選擇上一個(gè)元素 Alt+Shift+← 
Java編輯器 選擇下一個(gè)元素 Alt+Shift+→ 
文本編輯器 增量查找 Ctrl+J 
文本編輯器 增量逆向查找 Ctrl+Shift+J 
全局 粘貼 Ctrl+V 
全局 重做 Ctrl+Y 

 
查看
作用域 功能 快捷鍵 
全局 放大 Ctrl+= 
全局 縮小 Ctrl+- 

 
窗口
作用域 功能 快捷鍵 
全局 激活編輯器 F12 
全局 切換編輯器 Ctrl+Shift+W 
全局 上一個(gè)編輯器 Ctrl+Shift+F6 
全局 上一個(gè)視圖 Ctrl+Shift+F7 
全局 上一個(gè)透視圖 Ctrl+Shift+F8 
全局 下一個(gè)編輯器 Ctrl+F6 
全局 下一個(gè)視圖 Ctrl+F7 
全局 下一個(gè)透視圖 Ctrl+F8 
文本編輯器 顯示標(biāo)尺上下文菜單 Ctrl+W 
全局 顯示視圖菜單 Ctrl+F10 
全局 顯示系統(tǒng)菜單 Alt+- 

 
導(dǎo)航
作用域 功能 快捷鍵 
Java編輯器 打開(kāi)結(jié)構(gòu) Ctrl+F3 
全局 打開(kāi)類型 Ctrl+Shift+T 
全局 打開(kāi)類型層次結(jié)構(gòu) F4 
全局 打開(kāi)聲明 F3 
全局 打開(kāi)外部javadoc Shift+F2 
全局 打開(kāi)資源 Ctrl+Shift+R 
全局 后退歷史記錄 Alt+← 
全局 前進(jìn)歷史記錄 Alt+→ 
全局 上一個(gè) Ctrl+, 
全局 下一個(gè) Ctrl+. 
Java編輯器 顯示大綱 Ctrl+O 
全局 在層次結(jié)構(gòu)中打開(kāi)類型 Ctrl+Shift+H 
全局 轉(zhuǎn)至匹配的括號(hào) Ctrl+Shift+P 
全局 轉(zhuǎn)至上一個(gè)編輯位置 Ctrl+Q 
Java編輯器 轉(zhuǎn)至上一個(gè)成員 Ctrl+Shift+↑ 
Java編輯器 轉(zhuǎn)至下一個(gè)成員 Ctrl+Shift+↓ 
文本編輯器 轉(zhuǎn)至行 Ctrl+L 

 
搜索
作用域 功能 快捷鍵 
全局 出現(xiàn)在文件中 Ctrl+Shift+U 
全局 打開(kāi)搜索對(duì)話框 Ctrl+H 
全局 工作區(qū)中的聲明 Ctrl+G 
全局 工作區(qū)中的引用 Ctrl+Shift+G 

 
文本編輯
作用域 功能 快捷鍵 
文本編輯器 改寫切換 Insert 
文本編輯器 上滾行 Ctrl+↑ 
文本編輯器 下滾行 Ctrl+↓ 

 
文件
作用域 功能 快捷鍵 
全局 保存 Ctrl+X 
Ctrl+S 
全局 打印 Ctrl+P 
全局 關(guān)閉 Ctrl+F4 
全局 全部保存 Ctrl+Shift+S 
全局 全部關(guān)閉 Ctrl+Shift+F4 
全局 屬性 Alt+Enter 
全局 新建 Ctrl+N 

 
項(xiàng)目
作用域 功能 快捷鍵 
全局 全部構(gòu)建 Ctrl+B 

 
源代碼
作用域 功能 快捷鍵 
Java編輯器 格式化 Ctrl+Shift+F 
Java編輯器 取消注釋 Ctrl+\ 
Java編輯器 注釋 Ctrl+/ 
Java編輯器 添加導(dǎo)入 Ctrl+Shift+M 
Java編輯器 組織導(dǎo)入 Ctrl+Shift+O 
Java編輯器 使用try/catch塊來(lái)包圍 未設(shè)置,太常用了,所以在這里列出,建議自己設(shè)置。
也可以使用Ctrl+1自動(dòng)修正。 

 
運(yùn)行
作用域 功能 快捷鍵 
全局 單步返回 F7 
全局 單步跳過(guò) F6 
全局 單步跳入 F5 
全局 單步跳入選擇 Ctrl+F5 
全局 調(diào)試上次啟動(dòng) F11 
全局 繼續(xù) F8 
全局 使用過(guò)濾器單步執(zhí)行 Shift+F5 
全局 添加/去除斷點(diǎn) Ctrl+Shift+B 
全局 顯示 Ctrl+D 
全局 運(yùn)行上次啟動(dòng) Ctrl+F11 
全局 運(yùn)行至行 Ctrl+R 
全局 執(zhí)行 Ctrl+U 

 
重構(gòu)
作用域 功能 快捷鍵 
全局 撤銷重構(gòu) Alt+Shift+Z 
全局 抽取方法 Alt+Shift+M 
全局 抽取局部變量 Alt+Shift+L 
全局 內(nèi)聯(lián) Alt+Shift+I 
全局 移動(dòng) Alt+Shift+V 
全局 重命名 Alt+Shift+R 
全局 重做 Alt+Shift+Y


開(kāi)花流水 2010-12-23 11:41 發(fā)表評(píng)論
]]>
Java Web開(kāi)發(fā)常見(jiàn)問(wèn)題http://www.tkk7.com/zdq5337/archive/2010/10/27/336258.html開(kāi)花流水開(kāi)花流水Wed, 27 Oct 2010 02:57:00 GMThttp://www.tkk7.com/zdq5337/archive/2010/10/27/336258.htmlhttp://www.tkk7.com/zdq5337/comments/336258.htmlhttp://www.tkk7.com/zdq5337/archive/2010/10/27/336258.html#Feedback0http://www.tkk7.com/zdq5337/comments/commentRss/336258.htmlhttp://www.tkk7.com/zdq5337/services/trackbacks/336258.html

Java Web開(kāi)發(fā)中,有許多共通的問(wèn)題,是開(kāi)發(fā)人員在開(kāi)發(fā)過(guò)程中一定會(huì)遇到的,需要處理的問(wèn)題:

1.  亂碼問(wèn)題

為何會(huì)出現(xiàn)亂碼問(wèn)題?既然有亂碼問(wèn)題,肯定是由于編碼設(shè)置的不一致導(dǎo)致的。在Web開(kāi)發(fā) 過(guò)程中,涉及以下一些編碼設(shè)置,客戶端參數(shù)的編碼設(shè)置,Web服務(wù)器的編碼設(shè)置,服務(wù)器端應(yīng)用程序的編碼設(shè)置,數(shù)據(jù)庫(kù)的編碼設(shè)置等。只要這四處的編碼設(shè)置 有不相同的,就可能會(huì)出現(xiàn)亂碼問(wèn)題。開(kāi)發(fā)人員在進(jìn)行開(kāi)發(fā)之前,不防先了解一下這四個(gè)編碼在哪里設(shè)置,當(dāng)前自己的項(xiàng)目設(shè)置是怎么樣的,這樣就可以很好的避免 編碼問(wèn)題。

2.  權(quán)限控制

對(duì)于一個(gè)Java Web系統(tǒng),不是所有的頁(yè)面與功能都允許所有的用戶訪問(wèn)的,這樣就需要對(duì)用戶能訪問(wèn)哪些頁(yè)面進(jìn)行控制了。一般的Java Web系統(tǒng),都需要進(jìn)行權(quán)限控制。進(jìn)行權(quán)限控制的方法有很多,以前看到有不少項(xiàng)目直接在程序里寫權(quán)限控制的代碼,這樣的弊端是顯而易見(jiàn)的,太不利于擴(kuò)展 了,只要有任何的修改,都需要改動(dòng)相當(dāng)?shù)拇a,一是容易出錯(cuò),二是修改的代價(jià)大。一個(gè)比較好的想法是基于AOP的思想,使用攔截器來(lái)進(jìn)行權(quán)限控制,當(dāng)然前 提是系統(tǒng)要配置一定的數(shù)據(jù)庫(kù)結(jié)構(gòu),如用戶-角色-權(quán)限表這樣的表結(jié)構(gòu)。當(dāng)然,目前有不少的權(quán)限控制開(kāi)源框架如acegi

3.  參數(shù)驗(yàn)證

All Input Is Evil。對(duì)于輸入?yún)?shù)的驗(yàn)證是少不了的。對(duì)于參數(shù)的驗(yàn)證,有客戶端驗(yàn)證與服務(wù)器端驗(yàn)證,一般來(lái)說(shuō),能夠在客戶端進(jìn)行驗(yàn)證的,優(yōu)先考慮客戶端驗(yàn)證以減少服 務(wù)器端壓力。現(xiàn)在有許多的Javascript框架可以很好的完成這一工作。如Jquery Validation插件。

4.  異常處理

應(yīng)該說(shuō)對(duì)于每個(gè)系統(tǒng)來(lái)說(shuō),異常處理都是很重要的。但在B/S結(jié)構(gòu)的環(huán)境中,異常就顯得更為重要,一個(gè)設(shè)計(jì)良好的異常處理框架可以減少很多的代碼編寫工作。

5.  參數(shù)傳遞

在B/S結(jié)構(gòu),基于HTTP來(lái)完成通信,每一次的客戶端與服務(wù)器端的交互都是一次參數(shù)傳 遞的過(guò)程。控制參數(shù)的傳遞過(guò)程就顯得很重要了。要清楚的知道每一次的B/S的交互,需要傳遞哪些參數(shù),哪些參數(shù)是合法的,哪些參數(shù)是不合法的,是通過(guò) GET方式還是通過(guò)POST方式,還是通過(guò)URL鏈接的方式。

6.  Ajax

現(xiàn)在的Java Web系統(tǒng),不使用Ajax技術(shù)是不可能的了。Ajax實(shí)在是一項(xiàng)不錯(cuò)的技術(shù),不刷新頁(yè)面而完成與服務(wù)器端的通信,它使得基于B/S的結(jié)構(gòu)功能更強(qiáng)大了, 許多傳統(tǒng)的Web應(yīng)用程序所無(wú)法完成的功能現(xiàn)在大都可以用B/S架構(gòu)來(lái)實(shí)現(xiàn)。對(duì)于Ajax現(xiàn)在已經(jīng)有很多成熟的Javascript框架可以使用。首推 jQuery,其提供的Ajax功能簡(jiǎn)單而實(shí)用。


7.  客戶端Javascript技術(shù)

客戶端技術(shù)有很多,Javascript應(yīng)該說(shuō)是功能最強(qiáng)大、應(yīng)用最廣泛的一個(gè)了。用好Javascript,在系統(tǒng)設(shè)計(jì)時(shí)多考慮客戶端的實(shí)現(xiàn)方式,可以很好的輔助進(jìn)行服務(wù)器端的功能設(shè)計(jì)。優(yōu)秀的Javascript框架還是推薦jQuery,其功能簡(jiǎn)單、實(shí)用而強(qiáng)大。

 




開(kāi)花流水 2010-10-27 10:57 發(fā)表評(píng)論
]]>
Windows Mobile 6.5 在windows7上搭建開(kāi)發(fā)環(huán)境http://www.tkk7.com/zdq5337/archive/2010/10/19/335577.html開(kāi)花流水開(kāi)花流水Tue, 19 Oct 2010 07:08:00 GMThttp://www.tkk7.com/zdq5337/archive/2010/10/19/335577.htmlhttp://www.tkk7.com/zdq5337/comments/335577.htmlhttp://www.tkk7.com/zdq5337/archive/2010/10/19/335577.html#Feedback0http://www.tkk7.com/zdq5337/comments/commentRss/335577.htmlhttp://www.tkk7.com/zdq5337/services/trackbacks/335577.html需要安裝軟件:

1 Visual Studio 2008 RTM  &&  .NET Framework Version 3.5 SP1 英文版

2 Microsoft Windows Mobile 設(shè)備中心 6.1

3 Windows Mobile 6 Professional SDK Refresh.msi

4 Windows Mobile 6 Standard SDK Refresh.msi 非必需
中文模擬器下載頁(yè)面:
http://www.microsoft.com/downloads/details.aspx?familyid=38C46AA8-1DD7-426F-A913-4F370A65A582&displaylang=en
專業(yè)版中文模擬器下載地址:
http://download.microsoft.com/download/0/1/2/012bfbba-9fe5-4e68-86c9-d434446d97dd/0804/Windows%20Mobile%206%20Professional%20Images%20(CHS).msi

5 Windows Mobile 6.5 Professional Developer Tool Kit (USA).msi

6 Windows Mobile 6.5 Standard Developer Tool Kit (USA).msi 非必需

7 Windows Mobile 6.5.3 Professional DTK.msi

安裝完成之后,配置開(kāi)發(fā)模擬器環(huán)境:

設(shè)備中心 設(shè)置:文件-連接設(shè)置:允許連接到以下其中一個(gè)端口 選擇DMA

2 vs2008菜單 Tools-Device Emulator Manager- 選擇Windows Mobile 6.3.5 Professional WVGAEmulator右鍵Connect

等待刷新,然后選擇Windows Mobile 6.3.5 Professional WVGAEmulator右鍵Cradle建立同步

然后出現(xiàn)同步設(shè)置向?qū)В乱徊剑缓蟾鶕?jù)需求完成向?qū)А?/span>



開(kāi)花流水 2010-10-19 15:08 發(fā)表評(píng)論
]]>
oracle創(chuàng)建表時(shí)設(shè)置自增主鍵http://www.tkk7.com/zdq5337/archive/2010/07/30/327590.html開(kāi)花流水開(kāi)花流水Fri, 30 Jul 2010 09:26:00 GMThttp://www.tkk7.com/zdq5337/archive/2010/07/30/327590.htmlhttp://www.tkk7.com/zdq5337/comments/327590.htmlhttp://www.tkk7.com/zdq5337/archive/2010/07/30/327590.html#Feedback0http://www.tkk7.com/zdq5337/comments/commentRss/327590.htmlhttp://www.tkk7.com/zdq5337/services/trackbacks/327590.html先創(chuàng)建一個(gè)名字為test_Sequence的序列,然后執(zhí)行下列語(yǔ)句,
CREATE TABLE example1(
ID Number(4) NOT NULL PRIMARY KEY,
NAME VARCHAR(25),
PHONE VARCHAR(10),
ADDRESS VARCHAR(50));


create trigger "example1_tt" before insert
on "EXAMPLE1" for each row
declare
    integrity_error  exception;
    errno            integer;
    errmsg           char(200);
    dummy            integer;
    found            boolean;

begin
    --  Column ""ID"" uses sequence Sequence_increase
    select test_Sequence.Nextval INTO :new."ID" from dual;

--  Errors handling
exception
    when integrity_error then
       raise_application_error(errno, errmsg);
end;

需要注意的是不同的表共用同一個(gè)序列時(shí),由于序列的是一個(gè),所以不同表的自增會(huì)不連續(xù),另外和SqlServer不同的還有,設(shè)置了這個(gè)以后主鍵是可以自己維護(hù)的,只有當(dāng)主鍵為空時(shí)才會(huì)調(diào)用觸發(fā)器,由序列產(chǎn)生自增值。

另外,pd自動(dòng)生成的oracle的sql語(yǔ)句是包含雙引號(hào)的,可能導(dǎo)致oracle權(quán)限的錯(cuò)誤,錯(cuò)誤提示是:ORA-00904:invalid identifier。

開(kāi)花流水 2010-07-30 17:26 發(fā)表評(píng)論
]]>
Hibernate SQL方言 (hibernate.dialect) http://www.tkk7.com/zdq5337/archive/2010/05/19/321354.html開(kāi)花流水開(kāi)花流水Wed, 19 May 2010 03:50:00 GMThttp://www.tkk7.com/zdq5337/archive/2010/05/19/321354.htmlhttp://www.tkk7.com/zdq5337/comments/321354.htmlhttp://www.tkk7.com/zdq5337/archive/2010/05/19/321354.html#Feedback0http://www.tkk7.com/zdq5337/comments/commentRss/321354.htmlhttp://www.tkk7.com/zdq5337/services/trackbacks/321354.html RDBMS 方言 DB2 org.hibernate.dialect.DB2Dialect DB2 AS/400 org.hibernate.dialect.DB2400Dialect DB2 OS390 org.hibernate.dialect.DB2390Dialect PostgreSQL org.hibernate.dialect.PostgreSQLDialect MySQL org.hibernate.dialect.MySQLDialect MySQL with InnoDB org.hibernate.dialect.MySQLInnoDBDialect MySQL with MyISAM org.hibernate.dialect.MySQLMyISAMDialect Oracle (any version) org.hibernate.dialect.OracleDialect Oracle 9i/10g org.hibernate.dialect.Oracle9Dialect Sybase org.hibernate.dialect.SybaseDialect Sybase Anywhere org.hibernate.dialect.SybaseAnywhereDialect Microsoft SQL Server org.hibernate.dialect.SQLServerDialect SAP DB org.hibernate.dialect.SAPDBDialect Informix org.hibernate.dialect.InformixDialect HypersonicSQL org.hibernate.dialect.HSQLDialect Ingres org.hibernate.dialect.IngresDialect Progress org.hibernate.dialect.ProgressDialect Mckoi SQL org.hibernate.dialect.MckoiDialect Interbase org.hibernate.dialect.InterbaseDialect Pointbase org.hibernate.dialect.PointbaseDialect FrontBase org.hibernate.dialect.FrontbaseDialect Firebird org.hibernate.dialect.FirebirdDialect

開(kāi)花流水 2010-05-19 11:50 發(fā)表評(píng)論
]]>
js 驗(yàn)證數(shù)字的有效性http://www.tkk7.com/zdq5337/archive/2010/04/28/319597.html開(kāi)花流水開(kāi)花流水Wed, 28 Apr 2010 06:32:00 GMThttp://www.tkk7.com/zdq5337/archive/2010/04/28/319597.htmlhttp://www.tkk7.com/zdq5337/comments/319597.htmlhttp://www.tkk7.com/zdq5337/archive/2010/04/28/319597.html#Feedback0http://www.tkk7.com/zdq5337/comments/commentRss/319597.htmlhttp://www.tkk7.com/zdq5337/services/trackbacks/319597.html function check(textId) {
 var num;
 num = document.getElementById(textId).value;
 if (num.length == 0 || num.replace(/(^\s*)|(\s*$)/g,"")==""  ) {
  alert("\u4e2a\u6570\u7684\u503c\u4e0d\u80fd\u4e3a\u7a7a\uff01");
  event.returnValue = false;
 }
 if (isNaN(num)) {
  alert("\u4e2a\u6570\u7684\u503c\u5fc5\u987b\u662f\u6574\u6570\u7684\u6570\u5b57\uff01");
  event.returnValue = false;
 }
 if (parseInt(num) <= 0) {
  alert("\u4e2a\u6570\u7684\u503c\u5fc5\u987b\u5927\u4e8e0");
  event.returnValue = false;
 }
 if (parseInt(num) > 100) {
  alert("\u4e2a\u6570\u7684\u503c\u5fc5\u987b\u5c0f\u4e8e100");
  event.returnValue = false;
 }
 return true;
}

開(kāi)花流水 2010-04-28 14:32 發(fā)表評(píng)論
]]>
java中的部分文件操作http://www.tkk7.com/zdq5337/archive/2009/10/22/299381.html開(kāi)花流水開(kāi)花流水Thu, 22 Oct 2009 08:11:00 GMThttp://www.tkk7.com/zdq5337/archive/2009/10/22/299381.htmlhttp://www.tkk7.com/zdq5337/comments/299381.htmlhttp://www.tkk7.com/zdq5337/archive/2009/10/22/299381.html#Feedback0http://www.tkk7.com/zdq5337/comments/commentRss/299381.htmlhttp://www.tkk7.com/zdq5337/services/trackbacks/299381.html/**
  * 轉(zhuǎn)移文件路徑
  *
  * @param filename
  *            文件名
  * @param oldpath
  *            舊文件路徑
  * @param newpath
  *            新文件路徑
  * @param cover
  *            若新目錄下存在和轉(zhuǎn)移文件具有相同文件名的文件時(shí),是否覆蓋新目錄下文件,cover=true將會(huì)覆蓋原文件,否則不操作
  */
 public void changeDirectory(String fileName, String oldPath,
   String newPath, boolean cover) {
  if (!oldPath.equals(newPath)) {
   File oldFile = new File(oldPath + "/" + fileName);
   File newFile = new File(newPath + "/" + fileName);
   if (newFile.exists()) {
    if (cover) {
     newFile.delete();
     oldFile.renameTo(newFile);
    } else {
     System.out.println("新目錄已經(jīng)存在:" + fileName);
    }
   } else {
    oldFile.renameTo(newFile);
   }
  }
 }

 /**
  * 文件重命名
  *
  * @param path
  *            文件目錄
  * @param oldname
  *            原來(lái)的文件名
  * @param newname
  *            新文件名
  */
 public void renameFile(String path, String oldname, String newname) {
  if (!oldname.equals(newname)) {
   File oldfile = new File(path + "/" + oldname);
   File newfile = new File(path + "/" + newname);
   if (newfile.exists()) {// 若在該目錄下已經(jīng)有一個(gè)文件和新文件名相同,則刪除重建
    System.out.println(newname + "已經(jīng)存在!");
    newfile.delete();
    oldfile.renameTo(newfile);
   } else {
    oldfile.renameTo(newfile);
   }
  }
 }

 /**
  * 創(chuàng)建文件夾
  *
  * @param path
  *            文件路徑
  */
 public void createDir(String path) {
  String pathes[] = path.split("/");
  String filePath = "";
  for (int i = 0; i < pathes.length; i++) {
   filePath += pathes[i];
   filePath += "/";
   File dirPath = new File(filePath);
   if (!dirPath.exists())
    dirPath.mkdir();
  }
 }



開(kāi)花流水 2009-10-22 16:11 發(fā)表評(píng)論
]]>
利用cursor及fetch將一個(gè)表中符合條件的記錄拷貝到另一個(gè)表中http://www.tkk7.com/zdq5337/archive/2009/07/18/287228.html開(kāi)花流水開(kāi)花流水Sat, 18 Jul 2009 02:09:00 GMThttp://www.tkk7.com/zdq5337/archive/2009/07/18/287228.htmlhttp://www.tkk7.com/zdq5337/comments/287228.htmlhttp://www.tkk7.com/zdq5337/archive/2009/07/18/287228.html#Feedback0http://www.tkk7.com/zdq5337/comments/commentRss/287228.htmlhttp://www.tkk7.com/zdq5337/services/trackbacks/287228.html [declare]
/*變量定義區(qū),也可做初使化等*/
begin
/*開(kāi)始區(qū),執(zhí)行順序SQL語(yǔ)句*/
[exception]
/*異常處理區(qū),可進(jìn)行異常處理,異常的拋出使用raise關(guān)鍵字*/
end;
其中方框里面的為可選項(xiàng),不作為必須。
2、fetch
1)首先要定義cursor,如cursor id_cur is select id from components
2)然后打開(kāi)cursor:open id_cur
3)第三是使用fetchcursor并保存到變理中
4)第四關(guān)閉cursor
那就把上面說(shuō)到的功能實(shí)現(xiàn),代碼如下:
Sql代碼
  1. declare  
  2.        num_id integer;/*定義變量*/  
  3.        sql_str varchar(1000);  
  4.        cursor id_cur is select id from components;/*用光標(biāo)取ID*/  
  5. begin  
  6.        open id_cur;/*打開(kāi)光標(biāo)執(zhí)行*/  
  7.        loop/*一直執(zhí)行下去*/  
  8.             fetch id_cur into num_id;/*根據(jù)光標(biāo),取出ID號(hào)到變量中*/  
  9.             exit when id_cur%notfound;/*沒(méi)有記錄時(shí)就退出*/  
  10.             if mod(num_id,5)=0 then/*如果記錄ID為5的倍數(shù),就執(zhí)行下面的插入*/  
  11.                /*下面生成一條SQL語(yǔ)句*/  
  12.                sql_str:='insert into components2 select * from components where id='|| num_id;  
  13.                /*立即執(zhí)行生成的SQL語(yǔ)句*/  
  14.                execute immediate sql_str;  
  15.             end if;/*記住:條件的結(jié)束后都要加結(jié)束束‘;’*/  
  16.        end loop;  
  17.        close id_cur;/*關(guān)閉光標(biāo)*/  
  18. end;  
  19. /  


開(kāi)花流水 2009-07-18 10:09 發(fā)表評(píng)論
]]>
jsf驗(yàn)證的例子http://www.tkk7.com/zdq5337/archive/2009/06/05/280197.html開(kāi)花流水開(kāi)花流水Fri, 05 Jun 2009 05:57:00 GMThttp://www.tkk7.com/zdq5337/archive/2009/06/05/280197.htmlhttp://www.tkk7.com/zdq5337/comments/280197.htmlhttp://www.tkk7.com/zdq5337/archive/2009/06/05/280197.html#Feedback2http://www.tkk7.com/zdq5337/comments/commentRss/280197.htmlhttp://www.tkk7.com/zdq5337/services/trackbacks/280197.html<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<%@ page contentType="text/html;charset=utf-8" pageEncoding="UTF-8"%>

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<!-- RichFaces tag library declaration -->
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<html>
 <f:view>
  <head>
   <title>JSF in Action - Validator examples</title>
  </head>
  <body>
   <h1>
    Validator examples
   </h1>


   <h:form>
    <table border="1" cellspacing="0" cellpadding="5">
     <tr>
      <td>
       <b>Validator(s)</b>
      </td>
      <td>
       <b>Comments</b>
      </td>
      <td>
       <b>Input</b>
      </td>
      <td>
       <b>Errors</b>
      </td>
     </tr>
     <tr>
      <td>
       Validation method
      </td>
      <td>
       validator=testForm.validateEmail
      </td>
      <td>
       <h:inputText id="methodInput"
        validator="#{testForm.validateEmail}" />
      </td>
      <td>
       <h:message for="methodInput" style="color: red" />
      </td>
     </tr>
     <tr>
      <td>
       None (component property)
      </td>
      <td>
       required="true"
      </td>
      <td>
       <h:selectOneMenu id="RequiredInput" required="true">
        <f:selectItem itemValue="" itemLabel="" />
        <f:selectItem itemValue="1" itemLabel="dogs" />
        <f:selectItem itemValue="2" itemLabel="birds" />
        <f:selectItem itemValue="3" itemLabel="hamsters" />
       </h:selectOneMenu>
      </td>
      <td>
       <h:message for="RequiredInput" style="color: red" />
      </td>
     </tr>
     <tr>
      <td>
       Length
      </td>
      <td>
       minimum="2"
       <br>
       maxmimum="10"
      </td>
      <td>
       <h:inputText id="LengthInput">
        <f:validateLength minimum="2" maximum="10" />
       </h:inputText>
      </td>
      <td>
       <h:message for="LengthInput" style="color: red" />
      </td>
     </tr>
     <tr>
      <td>
       LongRange
      </td>
      <td>
       minimum="5"
       <br>
       maxmimum="999999"
      </td>
      <td>
       <h:inputText id="LongRangeInput">
        <f:validateLongRange minimum="5" maximum="999999" />
       </h:inputText>
      </td>
      <td>
       <h:message for="LongRangeInput" style="color: red" />
      </td>
     </tr>
     <tr>
      <td>
       DoubleRange
      </td>
      <td>
       minimum="5.1"
       <br>
       maxmimum="6.76"
      </td>
      <td>
       <h:selectOneRadio id="DoubleRangeInput">
        <f:selectItem itemValue="5.0" itemLabel="5.0" />
        <f:selectItem itemValue="6.1" itemLabel="6.1" />
        <f:selectItem itemValue="6.8" itemLabel="6.8" />
        <f:validateDoubleRange minimum="5.1" maximum="6.76" />
       </h:selectOneRadio>
      </td>
      <td>
       <h:message for="DoubleRangeInput" style="color: red" />
      </td>
     </tr>
     <tr>
      <td>
       Length, LongRange
      </td>
      <td>
       required="true"
       <br>
       Length minimum="2"
       <br>
       Length maxmimum="3"
       <br>
       LongRange minimum="10"
       <br>
       LongRange maxmimum="999"
      </td>
      <td>
       <h:inputText id="MultiInput" required="true">
        <f:validateLength minimum="2" maximum="3" />
        <f:validateLongRange minimum="10" maximum="999" />
       </h:inputText>
      </td>
      <td>
       <h:message for="MultiInput" style="color: red" />
      </td>
     </tr>
    </table>
    <p>
     <h:commandButton value="Go!" />
   </h:form>
  </body>
 </f:view>


</html>



開(kāi)花流水 2009-06-05 13:57 發(fā)表評(píng)論
]]>
主站蜘蛛池模板: 亚洲AV无码精品色午夜果冻不卡| 一级做性色a爰片久久毛片免费| 亚洲一区精品无码| 国产在线国偷精品产拍免费| 国产一区二区三区免费观看在线 | 国产麻豆一精品一AV一免费| 亚洲精品国产高清在线观看| 内射干少妇亚洲69XXX| 久久精品国产亚洲Aⅴ香蕉| 日韩免费福利视频| 成年免费大片黄在线观看岛国| 国产无遮挡无码视频免费软件| 曰批全过程免费视频免费看| 亚洲av无码专区国产不乱码| 亚洲人成日本在线观看| 亚洲一区二区三区首页| 久久亚洲精品国产精品黑人| 亚洲无线码一区二区三区| 亚洲精品无码你懂的网站| 免费人成在线观看播放国产| 午夜视频免费成人| 青青草免费在线视频| 大地资源在线观看免费高清| 亚州免费一级毛片| 亚洲第一网站免费视频| 最近中文字幕无免费| 久久ww精品w免费人成| 99久热只有精品视频免费看| 人人玩人人添人人澡免费| 精品国产免费一区二区三区香蕉| 中文字幕不卡免费高清视频| 国产福利免费视频 | 免费观看的av毛片的网站| 成人免费a级毛片| 国产免费av片在线看| 男女啪啪永久免费观看网站| 国产免费黄色大片| 日本二区免费一片黄2019| 日本一道综合久久aⅴ免费| 国产美女a做受大片免费| 四虎亚洲国产成人久久精品|