無(wú)憂無(wú)鹵

          鳥(niǎo)在籠中,恨關(guān)羽不能張飛;人處世上,要八戒更需悟空

          2008年4月5日

              一、編寫helloworld程序

          從helloworld開(kāi)始,在JQuery庫(kù)中,$為JQuery的簡(jiǎn)寫形式。

          <html> 
          
                  <head> 
          
                      <script src="../jquery-1.3.1.js" type="text/javascript"></script>     
          
                      <script type="text/javascript"> 
          
                          //其中$(document).ready(function(){}),可以簡(jiǎn)寫為$(function(){}); 
          
                          $(document).ready(function(){ //dom加載完畢后執(zhí)行,類似于window.onload 
          
                                  alert('helloworld !'); 
          
                          }); 
          
                      </script> 
          
                  </head> 
          
                  <body><body> 
          
          </html> 
          
          

              二、$(document).ready與window.onload比較。

              1、執(zhí)行時(shí)機(jī),window.onload為必須等待網(wǎng)頁(yè)所有內(nèi)容加載完畢后(包括圖片)后才能執(zhí)行。

                   而$(document).ready則在網(wǎng)頁(yè)DOM結(jié)構(gòu)繪制完畢后就執(zhí)行,可能內(nèi)容沒(méi)有加載完畢。

              2、編寫個(gè)數(shù),window.onload不能進(jìn)行多次編寫,后面編寫的將覆蓋前面編寫的。$(document).ready可以進(jìn)行多次編寫。

                   每次都能夠執(zhí)行。

          posted @ 2011-04-08 23:09 beyond 閱讀(899) | 評(píng)論 (0)編輯 收藏

          解決方法:
          1、修改ext-all.css,找到.x-grid3-header-offset,修改為.x-grid3-header-offset{padding-left:1px;/*width:10000px;*/width:auto;}
          2、在grid中加入下面代碼:

          復(fù)制代碼 代碼如下:

          monitorResize: true,
          doLayout: function() {
          this.setSize(Ext.get(this.getEl().dom.parentNode).getSize(true));
          Ext.grid.GridPanel.prototype.doLayout.call(this);
          }

           

          轉(zhuǎn)http://www.fengfly.com/plus/view-165078-1.html
          posted @ 2010-02-04 14:33 beyond 閱讀(394) | 評(píng)論 (0)編輯 收藏

          js 未結(jié)束的字符串常量

          今天在做JAVASCRIPT的時(shí)候,發(fā)現(xiàn)老是出現(xiàn)”未結(jié)束的字符串常量”.

          自己找了下應(yīng)該是傳參數(shù)的時(shí)候,有特殊字符引起的.網(wǎng)上也找了下,也有好多出現(xiàn)這種情況.做下總結(jié),以方便以后查閱.

          1.JAVASCRIPT引用時(shí),使用的字符語(yǔ)言不一致.
          比如:<script type=”text/javascript” src=”xxx.js” charset=”UTF-8″>.xxx.js文件內(nèi)部使用的是GB2312的格式,外面調(diào)用使用的是UTF-8,所以文件內(nèi)部部分特殊字符因?yàn)楦袷讲灰恢?出現(xiàn)亂碼,造成此原因.

          2.JAVASCRIPT輸出HTML字符時(shí),前后標(biāo)記不匹配.
          這種比較常見(jiàn),往往在輸出字符串時(shí),出現(xiàn)單引號(hào)(’)或雙引號(hào)(”)不配對(duì),或者是在document.write()的時(shí)候,沒(méi)有正確輸出單引號(hào)(’)或雙引號(hào)(”)

          3.參數(shù)內(nèi)出現(xiàn)HTML標(biāo)記語(yǔ)言或包含換行符
          我今天所遇到的是這種情況.因?yàn)槲宜玫降臄?shù)據(jù)以參數(shù)形式傳給一函數(shù),結(jié)果該數(shù)據(jù)里包含換行符,造成了此錯(cuò)誤.
          如:一般測(cè)試時(shí)只使用單行的數(shù)據(jù),是正常的,未出現(xiàn)這個(gè)錯(cuò)誤,.
          當(dāng)測(cè)試時(shí)使用多行數(shù)據(jù),并使用回車鏈換行,就出行了此錯(cuò)誤.因?yàn)槔锩姘藫Q行符

          對(duì)于第3種情況,我的解決方法是:不直接將該數(shù)據(jù)以參數(shù)形式傳遞,而是先將其賦值在一個(gè)隱藏的文本內(nèi),需要調(diào)用的函數(shù)里只需讀取該文本里的內(nèi)容即可.

          轉(zhuǎn) http://www.javaeye.com/topic/400721
          posted @ 2010-02-04 10:27 beyond 閱讀(345) | 評(píng)論 (0)編輯 收藏
          Weblogic和hibernate3異常:ClassNotFoundException: org.hibernate.hql.ast.HqlToken
          2009年08月25日 星期二 12:37

          在做項(xiàng)目的時(shí)候,我用weblogic跑了一下自己的程序(開(kāi)發(fā)一直在tomcat下),發(fā)現(xiàn)出現(xiàn)了這樣的問(wèn)題,
          ClassNotFoundException: org.hibernate.hql.ast.HqlToken ,郁悶了半天,在tomcat下沒(méi)有任何錯(cuò)誤,為何到weblogic就有問(wèn)題了呢?
          在百度和google上搜了好久,換了n個(gè)關(guān)鍵詞,才搜到原因如下:
          原因:
          Hibernate3.0 采用新的基于ANTLR的HQL/SQL查詢翻譯器,在Hibernate的配置文件中,hibernate.query.factory_class屬性用來(lái)選擇查詢翻譯器。
          (1)選擇Hibernate3.0的查詢翻譯器:
          hibernate.query.factory_class= org.hibernate.hql.ast.ASTQueryTranslatorFactory
          (2)選擇Hibernate2.1的查詢翻譯器
          hibernate.query.factory_class= org.hibernate.hql.classic.ClassicQueryTranslatorFactory
          為了使用3.0的批量更新和刪除功能,只能選擇(1)否則不能解釋批量更新的語(yǔ)句,當(dāng)使用的時(shí)候出現(xiàn)了不支持條件輸入中文的情況。
          選擇(2)可以支持輸入中文,但沒(méi)法解釋批量更新語(yǔ)句了
          在hibernate3中需要用到antlr,然而這個(gè)包在weblogic.jar中已經(jīng)包含了antrl類庫(kù),就會(huì)產(chǎn)生一些類加載的錯(cuò)誤,
          無(wú)法找到在war或者ear中的hibernate3.jar。
          出現(xiàn)這個(gè)錯(cuò)誤之后,antlr會(huì)調(diào)用System.exit(),這樣weblogic就會(huì)中止服務(wù)。
          原來(lái)是沖突了,解決方法也很簡(jiǎn)單,就是添加
          <prop key="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory
          </prop>
          這個(gè)屬性后,就可以解決這個(gè)問(wèn)題了。
          有一個(gè)人的博客上寫的也是也這個(gè)方法,不過(guò)他的org.hibernate.hql.classic.ClassicQueryTranslatorFactory寫錯(cuò)了,
          害的我以為這個(gè)方法不能用了,結(jié)果看看了,是他上面寫錯(cuò)了,下面的是正確的,郁悶的是我拷貝的是上面的,最總還是被我發(fā)現(xiàn)了。


          轉(zhuǎn) http://hi.baidu.com/lei55022033/blog/item/b20ad52c8c9f7ae58b139940.html

          posted @ 2010-02-01 15:31 beyond 閱讀(1092) | 評(píng)論 (0)編輯 收藏

          Red Hat Enterprise 5 序列號(hào)2007年03月29日 星期四 上午 02:06作系統(tǒng)版本的第四次重要版本發(fā)布, Red Hat 醞釀發(fā)布 RHEL 5 已經(jīng)超過(guò)了兩年, 主要變化包括 Linux 內(nèi)核由

          2.6.9 升級(jí)為 2.6.18, 支持 Xen 虛擬化技術(shù), 集群存儲(chǔ)等.
          RHEL5的版本主要分為 Sever 和 Desktop 兩個(gè)版本。
          具體來(lái)說(shuō),Server版本分為:
          · Red Hat Enterprise Linux Advanced Platform - 對(duì)應(yīng)以前的 Red Hat Enterprise Linux AS
          · Red Hat Enterprise Linux - 對(duì)應(yīng)以前的 Red Hat Enterprise Linux ES
          Desktop 版本分為:
          · Red Hat Enterprise Linux Desktop - 對(duì)應(yīng)以前的Red Hat Desktop
          · Red Hat Enterprise Linux Desktop with Workstation option - 對(duì)應(yīng)以前的Red Hat Enterprise

          Linux WS
          主要的功能包括:
          1. 虛擬化技術(shù)
          在各種平臺(tái)上支持虛擬化技術(shù)
          在 Red Hat Enterprise Linux Advanced Platform 支持存儲(chǔ)與擴(kuò)展的服務(wù)器虛擬化技術(shù)
          Red Hat Network 提供各種虛擬化系統(tǒng)的支持
          virt-manager, libvirt/virsh管理工具
          2. 內(nèi)核與性能
          基于 Linux 2.6.18 內(nèi)核
          支持多核處理器
          廣泛的新硬件支持
          更新的基于 Kexec/Kdump 的 Dump 支持
          支持 Intel Network Accelerator Technology (IOAT)
          對(duì)于大型SMP系統(tǒng)技持的增強(qiáng)
          增強(qiáng)的管道緩存
          內(nèi)核緩存接合能力用于改進(jìn)IO緩存操作
          3. 安全
          SELinux 增強(qiáng)
          圖形化 SELinux 管理界面
          集成的目錄和安全機(jī)制
          增強(qiáng)的 IPESEC 提高安全與性能
          新的審計(jì)機(jī)制用于提供新的搜索、報(bào)表和實(shí)時(shí)監(jiān)控的能力
          4. 網(wǎng)絡(luò)與互操作性
          支持 Autofs, FS-Cache 和 iSCSI
          增強(qiáng)的 IPv6 支持
          改進(jìn)的 Microsoft 文件/打印和Active Directory集成
          5. 桌面
          更新的管理工具、應(yīng)用程序和對(duì)筆記本的支持
          改進(jìn)的 ACPI (一種高級(jí)的電源管理)支持,包括 Suspend to Disk
          智能卡登錄,包括 PKI/Kerberos 認(rèn)證
          集成的多媒體支持
          增強(qiáng)的即插即用支持
          Network Manager 提供自動(dòng)的有線和無(wú)線網(wǎng)絡(luò)配置
          基于 AIGLX/Compiz 的圖形化界面(支持淡化、透明等效果)
          6. 開(kāi)發(fā)環(huán)境
          增強(qiáng)的開(kāi)發(fā)工具,包括 System Tap 和 Frysk
          GCC4.1 和 glibc 2.5 工具鏈
          7. 存儲(chǔ)
          支持根設(shè)置多路 IO ( MPIO ),提高可用性
          服務(wù)器產(chǎn)品中包含單系統(tǒng)/客戶的 Red Hat Global File System 支持
          塊設(shè)備數(shù)據(jù)加密支持
          8. 管理
          安裝過(guò)程更新簡(jiǎn)化系統(tǒng)配
          基于 Yum/Pup 的 Red Hat Network 更新
          Conga 集群和存儲(chǔ)管理

          ISO 的內(nèi)容和注冊(cè)
          與產(chǎn)品相關(guān)套件的軟件組件包的結(jié)構(gòu)與以前版本的 紅帽企業(yè) Linux 有所不同。不同種類的媒介套件和 ISO 映像被減少到兩種:

          紅帽企業(yè) Linux 5 服務(wù)器

          紅帽企業(yè) Linux 5 客戶端


          ISO 映像包含大量的可選軟件包,它提供了核心分發(fā)版本外的其他功能,如:虛擬化、群集和群集存儲(chǔ)。關(guān)于服務(wù)器套件、客戶端套件和可選套件的更多信息,請(qǐng)參考 http://www.redhat.com/rhel/

          因?yàn)榭蛇x的內(nèi)容也存在在相同的樹(shù)或 ISO 映像中,所以應(yīng)該特別注意不要使安裝的組件和訂閱所提供的組件不匹配。如果這種情況發(fā)生了,系統(tǒng)存在錯(cuò)誤或安全漏洞的可能性將會(huì)增加。

          為了保證安裝的組件和訂閱相匹配,紅帽企業(yè) Linux 5 需要輸入一個(gè) 安裝號(hào)。它被用來(lái)配置安裝程序來(lái)提供正確的軟件包。安裝號(hào)碼包含在你的訂閱里。

          如果您沒(méi)有輸入安裝號(hào)碼,只有核心服務(wù)器或 Desktop 將會(huì)被安裝。其它功能可以在以后被手工安裝。關(guān)于安裝號(hào)碼的更多信息,請(qǐng)參考 http://www.redhat.com/apps/support/in.html

          在安裝過(guò)程中被使用的安裝號(hào)碼將被存放在 /etc/sysconfig/rhn/install-num 里。當(dāng)在 紅帽網(wǎng)絡(luò) 注冊(cè)時(shí),這個(gè)文件將自動(dòng)被 rhn_register 引用,來(lái)決定系統(tǒng)應(yīng)該訂閱到哪個(gè)合適的子通道。

          RHEL 5 安裝 序列號(hào)

          服務(wù)器:

          * Red Hat Enterprise Linux (Server including virtualization):
          2515dd4e215225dd

          + Red Hat Enterprise Linux Virtualization Platform:
          49af89414d147589

          客戶端:

          * Red Hat Enterprise Linux Desktop:
          660266e267419c67

          + Red Hat Enterprise Linux Desktop + Workstation Option:
          da3122afdb7edd23

          + Red Hat Enterprise Linux Desktop + Workstation + DualOS Option
          (Virtualization):
          7fcc43557e9bbc42

          + Red Hat Enterprise Linux Desktop + DualOS Option (Virtualization):
          fed67649ff918c77

          posted @ 2009-11-12 21:52 beyond 閱讀(1480) | 評(píng)論 (0)編輯 收藏

              整合ssh框架
              翻譯drools5
          posted @ 2009-06-26 18:08 beyond 閱讀(261) | 評(píng)論 (1)編輯 收藏
          1.什么是數(shù)據(jù)庫(kù)事務(wù),以及作用?

              數(shù)據(jù)庫(kù)事務(wù):
                           事務(wù)是由相關(guān)操作構(gòu)成的一個(gè)完整的操作單元,在一個(gè)事物內(nèi),數(shù)據(jù)的修改一起提交或撤銷,如果發(fā)生故障或系統(tǒng)錯(cuò)誤,
                           整個(gè)事物也會(huì)自動(dòng)撤銷。
              優(yōu)點(diǎn):
                    把邏輯相關(guān)的操作分成了一個(gè)組
                    在數(shù)據(jù)永久改變前,可以預(yù)覽數(shù)據(jù)變化
                    能過(guò)保證數(shù)據(jù)的讀一致性
          posted @ 2009-06-22 11:35 beyond 閱讀(576) | 評(píng)論 (0)編輯 收藏

          1. 介紹

          1)DOM(JAXP Crimson解析器)
                  DOM是用與平臺(tái)和語(yǔ)言無(wú)關(guān)的方式表示XML文檔的官方W3C標(biāo)準(zhǔn)。DOM是以層次結(jié)構(gòu)組織的節(jié)點(diǎn)或信息片斷的集合。這個(gè)層次結(jié)構(gòu)允許開(kāi)發(fā)人員在樹(shù)中尋找特定信息。分析該結(jié)構(gòu)通常需要加載整個(gè)文檔和構(gòu)造層次結(jié)構(gòu),然后才能做任何工作。由于它是基于信息層次的,因而DOM被認(rèn)為是基于樹(shù)或基于對(duì)象的。DOM以及廣義的基于樹(shù)的處理具有幾個(gè)優(yōu)點(diǎn)。首先,由于樹(shù)在內(nèi)存中是持久的,因此可以修改它以便應(yīng)用程序能對(duì)數(shù)據(jù)和結(jié)構(gòu)作出更改。它還可以在任何時(shí)候在樹(shù)中上下導(dǎo)航,而不是像SAX那樣是一次性的處理。DOM使用起來(lái)也要簡(jiǎn)單得多。

          2)SAX

                  SAX處理的優(yōu)點(diǎn)非常類似于流媒體的優(yōu)點(diǎn)。分析能夠立即開(kāi)始,而不是等待所有的數(shù)據(jù)被處理。而且,由于應(yīng)用程序只是在讀取數(shù)據(jù)時(shí)檢查數(shù)據(jù),因此不需要將數(shù)據(jù)存儲(chǔ)在內(nèi)存中。這對(duì)于大型文檔來(lái)說(shuō)是個(gè)巨大的優(yōu)點(diǎn)。事實(shí)上,應(yīng)用程序甚至不必解析整個(gè)文檔;它可以在某個(gè)條件得到滿足時(shí)停止解析。一般來(lái)說(shuō),SAX還比它的替代者DOM快許多。
             選擇DOM還是選擇SAX? 對(duì)于需要自己編寫代碼來(lái)處理XML文檔的開(kāi)發(fā)人員來(lái)說(shuō),  選擇DOM還是SAX解析模型是一個(gè)非常重要的設(shè)計(jì)決策。 DOM采用建立樹(shù)形結(jié)構(gòu)的方式訪問(wèn)XML文檔,而SAX采用的事件模型。

            DOM解析器把XML文檔轉(zhuǎn)化為一個(gè)包含其內(nèi)容的樹(shù),并可以對(duì)樹(shù)進(jìn)行遍歷。用DOM解析模型的優(yōu)點(diǎn)是編程容易,開(kāi)發(fā)人員只需要調(diào)用建樹(shù)的指令,然后利用navigation APIs訪問(wèn)所需的樹(shù)節(jié)點(diǎn)來(lái)完成任務(wù)。可以很容易的添加和修改樹(shù)中的元素。然而由于使用DOM解析器的時(shí)候需要處理整個(gè)XML文檔,所以對(duì)性能和內(nèi)存的要求比較高,尤其是遇到很大的XML文件的時(shí)候。由于它的遍歷能力,DOM解析器常用于XML文檔需要頻繁的改變的服務(wù)中。

            SAX解析器采用了基于事件的模型,它在解析XML文檔的時(shí)候可以觸發(fā)一系列的事件,當(dāng)發(fā)現(xiàn)給定的tag的時(shí)候,它可以激活一個(gè)回調(diào)方法,告訴該方法制定的標(biāo)簽已經(jīng)找到。SAX對(duì)內(nèi)存的要求通常會(huì)比較低,因?yàn)樗岄_(kāi)發(fā)人員自己來(lái)決定所要處理的tag。特別是當(dāng)開(kāi)發(fā)人員只需要處理文檔中所包含的部分?jǐn)?shù)據(jù)時(shí),SAX這種擴(kuò)展能力得到了更好的體現(xiàn)。但用SAX解析器的時(shí)候編碼工作會(huì)比較困難,而且很難同時(shí)訪問(wèn)同一個(gè)文檔中的多處不同數(shù)據(jù)。

          3)JDOM           http://www.jdom.org/

                    JDOM的目的是成為Java特定文檔模型,它簡(jiǎn)化與XML的交互并且比使用DOM實(shí)現(xiàn)更快。由于是第一個(gè)Java特定模型,JDOM一直得到大力推廣和促進(jìn)。正在考慮通過(guò)“Java規(guī)范請(qǐng)求JSR-102”將它最終用作“Java標(biāo)準(zhǔn)擴(kuò)展”。從2000年初就已經(jīng)開(kāi)始了JDOM開(kāi)發(fā)。

            JDOM與DOM主要有兩方面不同。首先,JDOM僅使用具體類而不使用接口。這在某些方面簡(jiǎn)化了API,但是也限制了靈活性。第二,API大量使用了Collections類,簡(jiǎn)化了那些已經(jīng)熟悉這些類的Java開(kāi)發(fā)者的使用。

            JDOM文檔聲明其目的是“使用20%(或更少)的精力解決80%(或更多)Java/XML問(wèn)題”(根據(jù)學(xué)習(xí)曲線假定為20%)。JDOM對(duì)于大多數(shù)Java/XML應(yīng)用程序來(lái)說(shuō)當(dāng)然是有用的,并且大多數(shù)開(kāi)發(fā)者發(fā)現(xiàn)API比DOM容易理解得多。JDOM還包括對(duì)程序行為的相當(dāng)廣泛檢查以防止用戶做任何在XML中無(wú)意義的事。然而,它仍需要您充分理解XML以便做一些超出基本的工作(或者甚至理解某些情況下的錯(cuò)誤)。這也許是比學(xué)習(xí)DOM或JDOM接口都更有意義的工作。

            JDOM自身不包含解析器。它通常使用SAX2解析器來(lái)解析和驗(yàn)證輸入XML文檔(盡管它還可以將以前構(gòu)造的DOM表示作為輸入)。它包含一些轉(zhuǎn)換器以將JDOM表示輸出成SAX2事件流、DOM模型或XML文本文檔。JDOM是在Apache許可證變體下發(fā)布的開(kāi)放源碼。

          4)DOM4J http://dom4j.sourceforge.net/ 
                      
                  雖然DOM4J代表了完全獨(dú)立的開(kāi)發(fā)結(jié)果,但最初,它是JDOM的一種智能分支。它合并了許多超出基本XML文檔表示的功能,包括集成的XPath支持、XML Schema支持以及用于大文檔或流化文檔的基于事件的處理。它還提供了構(gòu)建文檔表示的選項(xiàng),它通過(guò)DOM4J API和標(biāo)準(zhǔn)DOM接口具有并行訪問(wèn)功能。從2000下半年開(kāi)始,它就一直處于開(kāi)發(fā)之中。

            為支持所有這些功能,DOM4J使用接口和抽象基本類方法。DOM4J大量使用了API中的Collections類,但是在許多情況下,它還提供一些替代方法以允許更好的性能或更直接的編碼方法。直接好處是,雖然DOM4J付出了更復(fù)雜的API的代價(jià),但是它提供了比JDOM大得多的靈活性。

            在添加靈活性、XPath集成和對(duì)大文檔處理的目標(biāo)時(shí),DOM4J的目標(biāo)與JDOM是一樣的:針對(duì)Java開(kāi)發(fā)者的易用性和直觀操作。它還致力于成為比JDOM更完整的解決方案,實(shí)現(xiàn)在本質(zhì)上處理所有Java/XML問(wèn)題的目標(biāo)。在完成該目標(biāo)時(shí),它比JDOM更少?gòu)?qiáng)調(diào)防止不正確的應(yīng)用程序行為。

            DOM4J是一個(gè)非常非常優(yōu)秀的Java XML API,具有性能優(yōu)異、功能強(qiáng)大和極端易用使用的特點(diǎn),同時(shí)它也是一個(gè)開(kāi)放源代碼的軟件。如今你可以看到越來(lái)越多的Java軟件都在使用DOM4J來(lái)讀寫XML,特別值得一提的是連Sun的JAXM也在用DOM4J。

          2.. 比較

          1)DOM4J性能最好,連Sun的JAXM也在用DOM4J。目前許多開(kāi)源項(xiàng)目中大量采用DOM4J,例如大名鼎鼎的Hibernate也用DOM4J來(lái)讀取XML配置文件。如果不考慮可移植性,那就采用DOM4J.

          2)JDOM和DOM在性能測(cè)試時(shí)表現(xiàn)不佳,在測(cè)試10M文檔時(shí)內(nèi)存溢出。在小文檔情況下還值得考慮使用DOM和JDOM。雖然JDOM的開(kāi)發(fā)者已經(jīng)說(shuō)明他們期望在正式發(fā)行版前專注性能問(wèn)題,但是從性能觀點(diǎn)來(lái)看,它確實(shí)沒(méi)有值得推薦之處。另外,DOM仍是一個(gè)非常好的選擇。DOM實(shí)現(xiàn)廣泛應(yīng)用于多種編程語(yǔ)言。它還是許多其它與XML相關(guān)的標(biāo)準(zhǔn)的基礎(chǔ),因?yàn)樗将@得W3C推薦(與基于非標(biāo)準(zhǔn)的Java模型相對(duì)),所以在某些類型的項(xiàng)目中可能也需要它(如在JavaScript中使用DOM)。

          3)SAX表現(xiàn)較好,這要依賴于它特定的解析方式-事件驅(qū)動(dòng)。一個(gè)SAX檢測(cè)即將到來(lái)的XML流,但并沒(méi)有載入到內(nèi)存(當(dāng)然當(dāng)XML流被讀入時(shí),會(huì)有部分文檔暫時(shí)隱藏在內(nèi)存中)。

          3. 四種xml操作方式的基本使用方法

          xml文件:

          <?xml version="1.0" encoding="utf-8" ?>
          <Result>
             <VALUE>
                 <NO DATE="2005">A1</NO>
                 <ADDR>GZ</ADDR>
             </VALUE>
             <VALUE>
                 <NO DATE="2004">A2</NO>
                 <ADDR>XG</ADDR>
            </VALUE>
          </Result>

          1)DOM

          import java.io.*;
          import java.util.*;
          import org.w3c.dom.*;
          import javax.xml.parsers.*;

          public class MyXMLReader{
           public static void main(String arge[]){

            long lasting =System.currentTimeMillis();
            try{ 
             File f=new File("data_10k.xml");
             DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
             DocumentBuilder builder=factory.newDocumentBuilder();
             Document doc = builder.parse(f);
             NodeList nl = doc.getElementsByTagName("VALUE");
             for (int i=0;i<nl.getLength();i++){
              System.out.print("車牌號(hào)碼:" + doc.getElementsByTagName("NO").item(i).getFirstChild().getNodeValue());
              System.out.println("車主地址:" + doc.getElementsByTagName("ADDR").item(i).getFirstChild().getNodeValue());
             }
            }catch(Exception e){
             e.printStackTrace();
          }

          2)SAX

          import org.xml.sax.*;
          import org.xml.sax.helpers.*;
          import javax.xml.parsers.*;

          public class MyXMLReader extends DefaultHandler {

           java.util.Stack tags = new java.util.Stack();
           public MyXMLReader() {
            super();
             }

           public static void main(String args[]) {
            long lasting = System.currentTimeMillis();
            try {
             SAXParserFactory sf = SAXParserFactory.newInstance();
             SAXParser sp = sf.newSAXParser();
             MyXMLReader reader = new MyXMLReader();
             sp.parse(new InputSource("data_10k.xml"), reader);
            } catch (Exception e) {
             e.printStackTrace();
            }

            System.out.println("運(yùn)行時(shí)間:" + (System.currentTimeMillis() - lasting) + "毫秒");}
            public void characters(char ch[], int start, int length) throws SAXException {
            String tag = (String) tags.peek();
            if (tag.equals("NO")) { 
             System.out.print("車牌號(hào)碼:" + new String(ch, start, length));
              }
              if (tag.equals("ADDR")) {
            System.out.println("地址:" + new String(ch, start, length));
              }
             }

            public void startElement(String uri,String localName,String qName,Attributes attrs) {
            tags.push(qName);}

          3) JDOM

          import java.io.*;
          import java.util.*;
          import org.jdom.*;
          import org.jdom.input.*;

          public class MyXMLReader {

           public static void main(String arge[]) {
            long lasting = System.currentTimeMillis();
            try {
             SAXBuilder builder = new SAXBuilder(); 
             Document doc = builder.build(new File("data_10k.xml")); 
             Element foo = doc.getRootElement(); 
             List allChildren = foo.getChildren(); 
             for(int i=0;i<allChildren.size();i++) { 
              System.out.print("車牌號(hào)碼:" + ((Element)allChildren.get(i)).getChild("NO").getText());
              System.out.println("車主地址:" + ((Element)allChildren.get(i)).getChild("ADDR").getText());
             }
            } catch (Exception e) {
             e.printStackTrace();
          }

          }

          4)DOM4J

          import java.io.*;
          import java.util.*;
          import org.dom4j.*;
          import org.dom4j.io.*;

          public class MyXMLReader {

           public static void main(String arge[]) {
            long lasting = System.currentTimeMillis();
            try {
             File f = new File("data_10k.xml");
             SAXReader reader = new SAXReader();
             Document doc = reader.read(f);
             Element root = doc.getRootElement();
             Element foo;
             for (Iterator i = root.elementIterator("VALUE"); i.hasNext();) {
              foo = (Element) i.next();
              System.out.print("車牌號(hào)碼:" + foo.elementText("NO"));
              System.out.println("車主地址:" + foo.elementText("ADDR"));
             }
            } catch (Exception e) {
             e.printStackTrace();
              }
          }

          轉(zhuǎn)自:http://blog.chinaunix.net/u/25176/showart_379827.html

          posted @ 2009-06-17 11:42 beyond 閱讀(243) | 評(píng)論 (0)編輯 收藏
               摘要:   閱讀全文
          posted @ 2009-06-10 17:38 beyond 閱讀(854) | 評(píng)論 (0)編輯 收藏

          定制的Spring Security(Acegi)的并發(fā)會(huì)話過(guò)濾器(ConcurrentSessionFilter)的編碼過(guò)程

          上一帖述及使用ConcurrentSessionFilter限制同帳號(hào)登錄多次的方法,同帳號(hào)多次登錄限制是運(yùn)行系統(tǒng)必需的功能,所以作者對(duì)其深入測(cè)試,在上一帖中也列舉了Spring Security的ConcurrentSessionFilter和ConcurrentSessionControllerImpl類的幾個(gè)限制。做一下簡(jiǎn)單的總結(jié),下面假設(shè)同時(shí)使用DigestProcessingFilter和輔助類:

          • 如果exceptionIfMaximumExceeded = true,即第二個(gè)發(fā)起的會(huì)話被禁止,如果一個(gè)用戶重新啟動(dòng)瀏覽器,再次登錄失敗,因?yàn)榍耙粋€(gè)會(huì)話沒(méi)有超時(shí),被當(dāng)成了多次登錄。
          • 如果exceptionIfMaximumExceeded = false,如果兩個(gè)人使用同一個(gè)帳號(hào)登錄,將出現(xiàn)交互將對(duì)方踢出去的現(xiàn)象,實(shí)際上并沒(méi)有禁止任何人登錄,只是每次要先將另一個(gè)人踢下去。


          需求

          我想使用exceptionIfMaximumExceeded = true,同時(shí)允許同一個(gè)用戶在同一臺(tái)機(jī)器上連續(xù)登錄多次,我采取了編寫定制的ConcurrentSessionController實(shí)現(xiàn)類的方法。



          原理

          ConcurrentSessionController是一個(gè)接口,有兩個(gè)需要實(shí)現(xiàn)的方法:checkAuthenticationAllowed()和registerSuccessfulAuthentication(),Spring Security提供了一個(gè)實(shí)現(xiàn)類ConcurrentSessionControllerImpl,經(jīng)過(guò)分析缺省的實(shí)現(xiàn)類,發(fā)現(xiàn)方法allowableSessionsExceeded()處理多次并發(fā)會(huì)話,在SecurityRegistry中保存每個(gè)會(huì)話的信息,主要是用戶帳號(hào)對(duì)應(yīng)的會(huì)話ID(sessionId)和最后發(fā)起時(shí)間,在并發(fā)發(fā)生時(shí),從SecurityRegistry中取出關(guān)于某個(gè)用戶帳號(hào)的所有會(huì)話,如果exceptionIfMaximumExceeded = false,找到最早一個(gè)會(huì)話,將其釋放掉,騰出空間給新會(huì)話,如果exceptionIfMaximumExceeded = true,將發(fā)出一個(gè)異常。

          所以,需要改進(jìn)allowableSessionsExceeded(),如果exceptionIfMaximumExceeded = true讓程序判斷客戶地址,如果同一個(gè)IP,則允許登錄,將最早的會(huì)話釋放掉,如果不是同一個(gè)IP在發(fā)出異常。

          在SecurityRegistry中,用戶帳號(hào)信息存在一個(gè)對(duì)象中,名字是principal,當(dāng)前是一個(gè)Object對(duì)象,實(shí)際上只是存了一個(gè)字符串,所以需要擴(kuò)展principal,寫一個(gè)定制的類(我的類含有兩個(gè)屬性:username和userip),里面保存客戶IP信息。allowableSessionsExceeded()只是使用SecurityRegistry,SecurityRegistry中的內(nèi)容是由registerSuccessfulAuthentication()方法寫入的,所以,在該方法中需要將原來(lái)的pricipal對(duì)象替換成定制的Principal類的對(duì)象。同時(shí)checkAuthenticationAllowed()方法也要修改,因?yàn)檫@個(gè)方法要查詢SecurityRegistry,查詢條件替換成定制的Principal類的對(duì)象。



          注意事項(xiàng)

          定制的Principal類要實(shí)現(xiàn)equals()和hashCode()和toString()三個(gè)方法,在equals()方法中只要username相同就表示兩個(gè)對(duì)象相同,而在hashCode()中只需要將username的hashcode計(jì)算在內(nèi),因?yàn)镾ecurityRegistry是以principal為關(guān)鍵字的Map容器,這兩個(gè)方法決定了對(duì)Map的查詢。toString()方法可以根據(jù)自己的需要寫,我只是將username輸出。



          測(cè)試

          將定制的ConcurrentSessionController對(duì)象編制(wire)到應(yīng)用系統(tǒng)中,經(jīng)過(guò)測(cè)試,能夠達(dá)到預(yù)想目的。



          存在的問(wèn)題

          原來(lái)想省點(diǎn)勁,只要繼承ConcurrentSessionControllerImpl并重載上述三個(gè)方法就行了,但是不知道為什么securityRegistery屬性一直注入不了,一氣之下,寫了一個(gè)直接實(shí)現(xiàn)ConcurrentSessionController接口的新類。實(shí)際上也不是從頭寫,將ConcurrentSessionControllerImpl代碼改吧該吧即可,用不了幾分鐘,這就是開(kāi)源的好處。



              轉(zhuǎn)自 http://www.gooseeker.com/cn/node/517
          posted @ 2009-05-08 10:33 beyond 閱讀(3317) | 評(píng)論 (0)編輯 收藏
          /*********************
           * 四舍五入到小數(shù)點(diǎn)后兩位
          燃料子系統(tǒng)有很多數(shù)據(jù)都要求是固定的格式,并要求四舍五入,一般都是number(12, 2),
          如果畫面出現(xiàn)數(shù)據(jù): 3.1230032..此類可以用myRound(arg1, arg2)處理。
          例:
          var num = 3.1260032;
          var result = myRound(num, 2);    // result = 3.13
           
          若num = 1,則結(jié)果為1.00
           *********************/
          /*
           * 四舍五入到指定位數(shù)
           *
           * num 要處理的數(shù)字
           * n 小數(shù)點(diǎn)后幾位
           */
          function myRound(num,n){
              var   dd=1;  
              var   tempnum;  
              for(i=0;i<n;i++){  
                  dd*=10;
              }  
              tempnum=num*dd;
              
              // 如果參數(shù)非數(shù)字,將值置為0
              // modified by liyj 2008/6/16 PM
              if (tempnum+""=="NaN") {
                  return formatnumber(0,n);  
              }
                
              tempnum=Math.round(tempnum);
              return formatnumber(tempnum/dd,n);  
          }  
           /*
            * 格式化數(shù)字
            *
            * value  數(shù)值
            * num 位數(shù)
            */
          function formatnumber(value, num) {
              var a, b, c, i;
              a = value.toString();
              b = a.indexOf(".");
              c = a.length;
              if (num == 0) {
                  if (b != -1) {
                      a = a.substring(0, b);
                  }
              } else {
                  if (b == -1) {
                      a = a + ".";
                      for (i = 1; i <= num; i++) {
                          a = a + "0";
                      }
                  } else {
                      a = a.substring(0, b + num + 1);
                      for (i = c; i <= b + num; i++) {
                          a = a + "0";
                      }
                  }
              }
              return a;
          } 
          
          posted @ 2009-03-22 11:28 beyond 閱讀(136) | 評(píng)論 (0)編輯 收藏

          測(cè)試….

          posted @ 2009-03-22 11:17 beyond 閱讀(102) | 評(píng)論 (0)編輯 收藏
          posted @ 2009-03-22 11:12 beyond 閱讀(78) | 評(píng)論 (0)編輯 收藏
          一、%rowtype只是指明引用的記錄的類型,但不保證NOT NULL約束

          我們知道使用%type和%rowtype可以分別指定引用的字段、記錄類型,但其中有一個(gè)特別需要注意的地方:

          %type和%rowtype都不保證NOT NULL約束。例如:

          DECLARE
            my_empno emp.empno%TYPE;  --emp.empno should not be null
            ...
          BEGIN
            my_empno := NULL;  - - this works well

          以上這段代碼在emp表的empno字段不能為空的情況下依然是可以執(zhí)行的。


          二、%rowtype記錄的賦值

          用%ROWTYPE作聲明的時(shí)候是不可以進(jìn)行初始化賦值的,但是有兩種方法可以一次性為所有字段賦值。

          方法一:假如兩個(gè)記錄類型的聲明引用了同一數(shù)據(jù)表或游標(biāo),那么它們就可以相互賦值,如:

          DECLARE
            dept_rec1 dept
          %ROWTYPE;
            dept_rec2 dept
          %ROWTYPE;
            
          CURSOR c1 IS   SELECT * FROM dept;
            dept_rec3 c1
          %ROWTYPE;

          BEGIN
            .. . 
            dept_rec1 :
          = dept_rec2  --this works well

          但是,如果一個(gè)類型是引用的是數(shù)據(jù)表而另一個(gè)引用的是游標(biāo)的話,那么,即使它們表現(xiàn)的內(nèi)容相同,也是不能相互賦值的

          dept_rec2 := dept_rec3; - - not allowed

          因?yàn)榇颂幍膁ept_rec2引用是表,而dept_rec3引用的是游標(biāo),所以即便它們查詢的內(nèi)容一樣也

          方法二:我們可以使用SELECT或FETCH語(yǔ)句將取得的數(shù)據(jù)賦給記錄。但在表或視圖中定義的字段名稱順序要與記錄中的名稱順序相同。

          DECLARE
            dept_rec dept
          %ROWTYPE;
            ...
          BEGIN
            
          SELECT * INTO dept_rec FROM dept WHERE deptno = 30;
            ...
          END

          但是,我們不能使用賦值語(yǔ)句來(lái)把字段列表中的值賦給記錄。所以,下面的語(yǔ)法形式是不允許的:

          record_name := (value1, value2, value3, ...); -- not allowed 


           三、
          使用別名

          從游標(biāo)中取出的數(shù)據(jù),如果游標(biāo)定義中含有表達(dá)式時(shí),我們就需要使用別名才能正確地為%ROWTYPE類型記錄賦值:

          DECLARE
            
          CURSOR my_cursor IS
              
          SELECT sal + NVL(comm, 0wages, ename FROM emp;
            my_rec my_cursor
          %ROWTYPE;
          BEGIN
            
          OPEN my_cursor;
            LOOP
              
          FETCH my_cursor
                
          INTO my_rec;
              
          EXIT WHEN my_cursor%NOTFOUND;
              
          IF my_rec.wages > 2000 THEN
                
          INSERT INTO temp VALUES (NULL, my_rec.wages, my_rec.ename);
              
          END IF;
            
          END LOOP;
            
          CLOSE my_cursor;
          END;

           

          posted @ 2009-02-25 15:49 beyond 閱讀(694) | 評(píng)論 (0)編輯 收藏

          <html>
          <head>
          </head>
          <body>
          <form action="" method="post" enctype="multipart/form-data" name="form1">
          <input name="attach" type="file" onchange="javascript:ShowImg(this.value);" onKeyDown="javascript:return(false);" size="20">
          <script language="JavaScript">
          function ShowImg(src)
          {
          document.getElementById("imgDiv").innerHTML="圖片預(yù)覽:<br><img id='imgObj' onerror='javascript:GetError()' onload='javascript:GetSize()' src='file:///" + src + "'>";
          }
          function GetSize()
          {
          var width,height;
          var imgObj=document.getElementById("imgObj");
          width=imgObj.width;
          height=imgObj.height;
          document.getElementById("err_msg").innerHTML="圖片大小(寬×高):<font color=red>" + width + "×" + height + "</font>";
          if(width>164){
          imgObj.width=164;
          imgObj.height=imgObj.height/(imgObj.width/164);
          }
          }
          function GetError()
          {
          document.getElementById("err_msg").innerHTML="圖片大小(寬×高):<font color=red>NaN</font>";
          document.getElementById("imgDiv").innerHTML="";
          document.getElementById("err_msg").innerHTML="圖片文件不存在或格式錯(cuò)誤!"
          }
          </script>
          <div id="imgDiv" align="center"></div>
          <div id="err_msg" align="center"></div>
          </form>
          </body>
          </html>

          ????申明:此代碼來(lái)自互聯(lián)網(wǎng)。

          posted @ 2008-12-02 22:05 beyond 閱讀(974) | 評(píng)論 (0)編輯 收藏

          運(yùn)行
          sqlplus回車
          longon as sysdba回車
          回車
          通過(guò)上面步驟登陸后修改密碼
          alter user system identified by pwd
          posted @ 2008-11-29 22:40 beyond 閱讀(158) | 評(píng)論 (0)編輯 收藏

          Jsp頁(yè)面引入js文件注意:

          ?

          1. 引入的js文件路徑要采用絕對(duì)路徑,在forward的情況下相對(duì)路徑可能會(huì)出錯(cuò),這是由于jsp頁(yè)面最終將被便以為servlet,為class,

            這時(shí)class的路徑與原來(lái)js文件的相對(duì)路徑將有所改變。

          2. 引入的js文件不能識(shí)別標(biāo)簽(如:jstl ),如果需要用標(biāo)簽,可以將js文件更改為jspf文件。
          posted @ 2008-11-29 00:31 beyond 閱讀(122) | 評(píng)論 (0)編輯 收藏

          始めまして、どうぞよろしくお願(yuàn)いします、まず、自己紹介させていただきます。

          ????  オウセイメイ と申します、二十二歳,湖南省の出身です、今年八月に 中國(guó)石油大學(xué)に卒業(yè)しました、コンピューターの専門です。

          ????  今年三月に 自習(xí)生として、新思ソフト會(huì)社に入って、電路プロジェクトの電力チームを入って、開(kāi)発をしています、

          今まで、半年となりました。なお、八月に UMLと関連のUMTP資格を取りました。

          ????  得意言語(yǔ)はC++、ジャーバーです、學(xué)校に、C++で、軌道交通アナログシステムを開(kāi)発した、一等賞を得ました。

          ????  対日開(kāi)発會(huì)社の関係ので、入社してから、日本語(yǔ)の勉強(qiáng)を始めました、勉強(qiáng)時(shí)間が不足なので、日本語(yǔ)のレベルが下手だと思いますが、

          でも日本語(yǔ)システム環(huán)境で 仕事をやることができるし、日本仕様書も読めます。日本語(yǔ)が難しいですけど、これから、

          全力を入れて、勉強(qiáng)していきたいと思います、ぜひ、機(jī)會(huì)があれば、日本にいって、勉強(qiáng)したいと思います。

          ????  どうぞよろしくお願(yuàn)いします。

          posted @ 2008-11-25 07:38 beyond 閱讀(260) | 評(píng)論 (0)編輯 收藏
          QueryException: ClassNotFoundException
                     解決方法:在hibernate.properties上,或是在spring的conext xml中,加上一個(gè)屬性hibernate.query.factory_class,值為org.hibernate.hql.classic.ClassicQueryTranslatorFactory。

             原因:從網(wǎng)上獲知,weblogic.jar中已經(jīng)有了一個(gè)antlr.jar的版本,導(dǎo)致應(yīng)用中hibernate3.jar中用到的antlr.jar不能找到,導(dǎo)致異常。
             被這個(gè)問(wèn)題纏繞了一整天,使我的OA項(xiàng)目毫無(wú)進(jìn)展,終于解決了~~

          hibernate 查詢對(duì)象為空
              沒(méi)有主鍵導(dǎo)致的
              在數(shù)據(jù)庫(kù)對(duì)應(yīng)的表中設(shè)置主鍵。

          posted @ 2008-11-23 15:05 beyond 閱讀(107) | 評(píng)論 (0)編輯 收藏

          Lazy 只有在session初始化

          打開(kāi)狀態(tài)下才有效,如果session關(guān)閉將報(bào)proxy can't initialize錯(cuò)誤

          Jdk 的代理只能對(duì)接口進(jìn)行代理

          Cglib 能對(duì)類進(jìn)行代理。

          一級(jí)緩存之緩存實(shí)體化對(duì)象,

          Get load iterator save都是用了一級(jí)緩存。

          一級(jí)緩存與session的生命周期是一樣的。

          二級(jí)緩存和sessionFactory的生命周期是一致的。

          posted @ 2008-11-10 01:29 beyond 閱讀(92) | 評(píng)論 (0)編輯 收藏

          測(cè)試用office2007發(fā)日志……

          posted @ 2008-11-09 01:11 beyond 閱讀(98) | 評(píng)論 (0)編輯 收藏
          前一段時(shí)間有好幾個(gè)問(wèn)題,提到怎么判斷session是否過(guò)期。  
            接觸jspo已經(jīng)很久了,但是還真沒(méi)有想過(guò)這個(gè)問(wèn)題,當(dāng)時(shí)也就沒(méi)有找到一個(gè)滿意的答案給人家。  
            當(dāng)時(shí),我提到一個(gè)方法,就是實(shí)現(xiàn)HttpSessionListener接口,然后在sessionDestroyed()方法中執(zhí)行一些操作,表示session要過(guò)期了,因?yàn)檫@個(gè)方法是session.invalidate()之前監(jiān)聽(tīng)器調(diào)用的方法。這個(gè)判斷的方法顯然不能讓人滿意。  
            我當(dāng)時(shí)問(wèn)了些人,但是也沒(méi)有得到一個(gè)準(zhǔn)確的答案。  
            正好偶然間看到,request.getSeesion(boolean)方法,一下子讓我恍然大悟。這個(gè)方法里面?zhèn)髁艘粋€(gè)boolean值,這個(gè)值如果是true,那么如果當(dāng)前的request的session不可用,那么就創(chuàng)建新的會(huì)話,如果存在就返回當(dāng)前的會(huì)話。如果參數(shù)是false,那么在request的當(dāng)前會(huì)話不存在的時(shí)候就返回null。  
            這樣我們就可以很容易的聯(lián)想到這個(gè)所謂的request的當(dāng)前會(huì)話是否存在和session過(guò)期的聯(lián)系,所以我們就可以“近似地”認(rèn)為session不存在就是session過(guò)期了,那么我們就可以很容易地判斷session是否過(guò)期了。方法如下:  
            if(request.getSession(false)==null)  
                  System.out.println("Session   has   been   invalidated!");  
            else  
                  System.out.println("Session   is   active!");  
             
            可能大家注意到我上面有一個(gè)“近似地”字眼,也就是說(shuō)存在特別情況。  
            這個(gè)特殊情況就是第一次請(qǐng)求還沒(méi)有創(chuàng)建會(huì)話的時(shí)候,那么用這個(gè)方法返回的仍然是null,原因我想大家應(yīng)該是顯然的。  
             
            以上是個(gè)人拙見(jiàn),希望大家指正。
          原文:http://topic.csdn.net/t/20050225/08/3804877.html
          posted @ 2008-07-27 22:44 beyond 閱讀(327) | 評(píng)論 (0)編輯 收藏
               摘要: <books>   <!--This is a test for dom4j, holen, 2004.9.11-->   <book show="no">        <title>Dom4j Tutorials</title> &nbs...  閱讀全文
          posted @ 2008-05-14 08:40 beyond 閱讀(447) | 評(píng)論 (0)編輯 收藏

          今天由于項(xiàng)目需要,需將Mysql數(shù)據(jù)庫(kù)遷移到Oracle數(shù)據(jù)庫(kù)

          準(zhǔn)備工具

          1.連接Mysql 的jdbc 驅(qū)動(dòng) mysql-connector-java-5.0.4-bin.jar

          2.Oracle公司開(kāi)發(fā)的 SQL Developer 1.2

          下面就是配置SQL Developer 1.2

          配置環(huán)境

          選擇Tools-Preferences -Database-Third Party JDBC Driver 點(diǎn)擊 Add Entry 添加Mysql的jdbc 驅(qū)動(dòng)。

          配置Mysql 和 Oracle 的連接

          點(diǎn)擊Connection 右鍵選擇 New Connection 分別建立Mysql 和Oracle連接。

          建立好連接后,你就可以查看你得數(shù)據(jù)庫(kù)了。

          配置Repository

          選擇 Migration -> Repository Management -> Create Repository 創(chuàng)建 Repository。

          兩種遷移數(shù)據(jù)方式:

          1. Capture the source database or tables
          2. Convert the captured database or tables
          3. Generate DDL for the new Oracle schema objects
          4. Run the generated DDL script to create the new user and objects
          5. Copy any data from the source database to the new database,select Migration->Migration Data select a converted model.

          快速遷移:

          選擇你要遷移的表或數(shù)據(jù)庫(kù),選擇Migration -> Quick Migrate

          Powered by Zoundry Raven

          posted @ 2008-04-05 09:44 beyond 閱讀(4418) | 評(píng)論 (2)編輯 收藏

          導(dǎo)航

          <2008年4月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          統(tǒng)計(jì)

          常用鏈接

          留言簿(1)

          隨筆檔案

          相冊(cè)

          搜索

          最新評(píng)論

          • 1.?re: 近期任務(wù)
          • 大哥 等著你的drools5翻譯呢 drools4把我搞死了 如果你有關(guān)于drools4的心得的話請(qǐng)指教 感覺(jué)自己使用的不是很好 望賜教 QQ:53816565 謝謝
          • --sunnidy
          • 2.?re: Mysql遷移到Oracle
          • 不錯(cuò),看樣子支持大多數(shù)數(shù)據(jù)庫(kù)遷移到oracle,不知道是否支持從oracle轉(zhuǎn)出?
          • --FastUnit

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 泸西县| 思南县| 汉中市| 东阿县| 福安市| 屯门区| 上虞市| 民权县| 观塘区| 布尔津县| 定边县| 泰兴市| 伊金霍洛旗| 类乌齐县| 北碚区| 甘德县| 华亭县| 巴青县| 恩平市| 慈溪市| 五家渠市| 峨眉山市| 拉萨市| 宜昌市| 长海县| 通海县| 东平县| 巴彦县| 镇安县| 四子王旗| 沿河| 南丰县| 武鸣县| 宁武县| 浦城县| 罗定市| 大竹县| 漾濞| 和静县| 贡山| 新疆|