<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    斷點

    每天進步一點點!
    posts - 174, comments - 56, trackbacks - 0, articles - 21

    2010年7月4日

    1、http://www.jar114.com/site.html
    該網(wǎng)站可以提供我們項目中經(jīng)常需要的jar包,如果缺少包,就可以在這里查找。

    posted @ 2010-10-07 11:54 斷點 閱讀(418) | 評論 (1)編輯 收藏

    流程定義文件*.jpdl.xml中如果有中文亂碼,肯定是task中有中文。

    需要在eclipse安裝軟件下,即E:\eclipse\eclipse.ini增加
    -Dfile.encoding=UTF-8
    然后重啟eclipse即可解決。

    posted @ 2010-10-05 21:06 斷點 閱讀(803) | 評論 (0)編輯 收藏

    配置jbpm4工程的運行環(huán)境:
    1、添加依賴庫。
    E:\JBPM\jbpm-4.3\jbpm.jar
    E:\JBPM\jbpm-4.3\lib下的jar包。

    2、添加配置文件。
    E:\JBPM\jbpm-4.3\examples\src下的配置文件拷貝到自己java工程的src下。

    ---------------------------------------------------------------
    管理流程定義:發(fā)布流程定義、查看流程定義、刪除流程定義。
    RepositoryService repositoryService = processEngine.getRepositoryService();

    String deploymentId = repositoryService.createDeployment().addResourceFromClasspath

    ("helloworld.jpdl.xml").deploy();
    List<ProcessDefinition> list = repositoryService.createProcessDefinitionQuery().list();  
    repositoryService.deleteDeploymentCascade(deploymentId);
    ---------------------------------------------------------------

    管理流程實例:發(fā)起新流程、執(zhí)行等待的流程、查看流程實例、終止流程實例、刪除流程實例。
    ExecutionService executionService = processEngine.getExecutionService();

    ProcessInstance pi = executionService.startProcessInstanceByKey("helloworld");
    ProcessInstance pi = executionService.signalExecutionById(pi.getId()); //執(zhí)行等待的流程.
    List<ProcessInstance> list = executionService.createProcessInstanceQuery().list();
    executionService.endProcessInstance(pi.getId(), "cancel");
    executionService.deleteProcessInstanceCascade(pi.getId());


    TaskService taskService = processEngine.getTaskService();
    taskService.completeTask(taskId, map);

    控制流程的活動:Start、End、Decision、Fork、Join、Sub-process、State、task.
    原子活動:java、script、sql、hql、email。

    posted @ 2010-10-05 21:01 斷點 閱讀(447) | 評論 (0)編輯 收藏

    配置開發(fā)環(huán)境:
    1、jbpm4:http://sourceforge.net/projects/jbpm/files/ 下選擇jbpm-4.3.zip  137.9M

    2、eclipse3.5版本以上 : http://www.eclipse.org/downloads/ 下選擇 Eclipse IDE for Java EE  190M

    3、GPD (Graphical Process Designer)插件,路徑:E:\jbpm-4.3\install\src\gpd\jbpm-gpd-site.zip。
    通過Eclipse-->help-->Install New Software-->Add-->Archive到插件所在路徑。

     

    posted @ 2010-10-05 16:37 斷點 閱讀(705) | 評論 (1)編輯 收藏

    java.lang.NullPointerException
     at jxl.read.biff.File.<init>(File.java:77)
     at jxl.Workbook.getWorkbook(Workbook.java:250)
     at jxl.Workbook.getWorkbook(Workbook.java:235)
     at org.drools.decisiontable.parser.xls.ExcelParser.parseFile(ExcelParser.java:76)
     at org.drools.decisiontable.SpreadsheetCompiler.compile(SpreadsheetCompiler.java:89)
     at org.drools.decisiontable.SpreadsheetCompiler.compile(SpreadsheetCompiler.java:68)
     at com.sample.DecisionTableTest.readDecisionTable(DecisionTableTest.java:59)
     at com.sample.DecisionTableTest.main(DecisionTableTest.java:36)

    Drools調(diào)用readDecisionTable()方法里面一處為:
    InputStream is = DecisionTableTest.class.getResourceAsStream("rules\\Sample.xls");
    final String drl = converter.compile( is, InputType.XLS );  
         
    需改為如下,取的class即錯誤解決。
    InputStream is = DecisionTableTest.class.getClassLoader().getResourceAsStream("rules\\Sample.xls");
    final String drl = converter.compile( is, InputType.XLS );

    posted @ 2010-10-05 00:39 斷點 閱讀(696) | 評論 (0)編輯 收藏

    org.mvel.CompileException: can not resolve identifier: 'declr'
     at org.mvel.ASTNode.getReducedValue(ASTNode.java:315)
     at org.mvel.ast.PropertyASTNode.getReducedValue(PropertyASTNode.java:29)
     at org.mvel.MVELInterpretedRuntime.parseAndExecuteInterpreted(MVELInterpretedRuntime.java:103)
     at org.mvel.MVELInterpretedRuntime.parse(MVELInterpretedRuntime.java:51)
     at org.mvel.TemplateInterpreter.execute(TemplateInterpreter.java:428)
     at org.mvel.TemplateInterpreter.parse(TemplateInterpreter.java:320)
     at org.drools.rule.builder.dialect.java.AbstractJavaBuilder.generatTemplates(AbstractJavaBuilder.java:113)
     at org.drools.rule.builder.dialect.java.JavaConsequenceBuilder.build(JavaConsequenceBuilder.java:95)
     at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:67)
     at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:446)
     at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:304)
     at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:167)
     at com.sample.DecisionTableTest.readDecisionTable(DecisionTableTest.java:63)
     at com.sample.DecisionTableTest.main(DecisionTableTest.java:36)

    替換mvel.jar為mvel14-1.2.10.jar后不再報錯,好像是jar包的問題。
    看了下jar包里面的org.mvel.ASTNode.getReducedValue方法已經(jīng)注釋掉了。

    posted @ 2010-10-05 00:32 斷點 閱讀(716) | 評論 (0)編輯 收藏

    WARNING: Wasn't able to correctly close stream for decision table. nulljava.lang.NullPointerException
     at jxl.read.biff.File.<init>(File.java:77)
     at jxl.Workbook.getWorkbook(Workbook.java:250)
     at jxl.Workbook.getWorkbook(Workbook.java:235)
     at org.drools.decisiontable.parser.xls.ExcelParser.parseFile(ExcelParser.java:76)
     at org.drools.decisiontable.SpreadsheetCompiler.compile(SpreadsheetCompiler.java:89)
     at org.drools.decisiontable.SpreadsheetCompiler.compile(SpreadsheetCompiler.java:68)
     at org.drools.decisiontable.SpreadsheetCompiler.compile(SpreadsheetCompiler.java:110)
     at com.sample.DecisionTableTest.readDecisionTable(DecisionTableTest.java:57)
     at com.sample.DecisionTableTest.main(DecisionTableTest.java:35)

    在web項目中的原先的寫法為:
    final String drl = converter.compile( "rules\\Sample.xls", InputType.XLS );

    參考了下別人的寫法,改為下面的方式進行處理:  
    InputStream is = DecisionTableTest.class.getClassLoader().getResourceAsStream("rules\\Sample.xls");
    final String drl = converter.compile( is, InputType.XLS );

    posted @ 2010-10-05 00:22 斷點 閱讀(612) | 評論 (0)編輯 收藏

    由于drools有新版本了,所以與MyEclipse整合進行了解下。
    整合步驟如下:
    1、下載MyEclipse 8.5;
    2、在http://www.jboss.org/drools/downloads.html下載Drools Eclipse 3.5 Workbench 5.1 插件;
    3、在E:\MyEclipse8.5下新建2個文件:links、myplugins。
    E:\MyEclipse 8.5\links:放drools.link配置文件,內(nèi)容為path=E:\\MyEclipse 8.5\\myplugins\\drools\\
    E:\MyEclipse 8.5\myplugins:放drools文件,該E:\MyEclipse 8.5\myplugins\drools\eclipse下放置從網(wǎng)上下載的drools插件的features和plugins。
    4、重啟MyEclipse 8.5即可看見drools圖標。
    5、安裝Jboss:下載jboss-5.0.0.GA,解壓即可。
    打開MyEclipse->window->Preference->MyEclipse->Servers->JBoss->JBoss 5.x進行jre及相關(guān)配置。

    posted @ 2010-10-04 12:00 斷點 閱讀(1054) | 評論 (0)編輯 收藏

    在命令行下運行java程序,出現(xiàn)如上異常Exception in thread "main" java.lang.UnsupportedClassVersionError。

    主要是jdk的版本被oracle給換成低版本了。
    可以在命令行下輸入:javac -version 查看版本,最后把%JAVA_HOME%\bin;添加到Oracle之前,再重開啟電腦,編譯,運行即可。

    可以查考:http://hi.baidu.com/tianxingacer/blog/item/e628b947ffc54f016a63e5ac.html/cmtid/1fe1e9ae1dc5b9f6faed50d9

    posted @ 2010-10-02 23:52 斷點 閱讀(1065) | 評論 (0)編輯 收藏

    我的機器以前裝的是offices2003自帶的js調(diào)試工具,昨天按照上IE8后,js調(diào)試工具有時候是ie8的調(diào)試界面,有時是ie6的調(diào)試界面,經(jīng)網(wǎng)上查找已找到原因。

    主要是我把IE8的‘腳本’下的“啟動調(diào)試”給關(guān)了,所以最后只出現(xiàn)ie6的調(diào)試界面。

    解決方法:打開IE8后,點擊"工具"->"開發(fā)人員工具",或者快捷鍵F12,會打開頁面調(diào)試窗口。

    posted @ 2010-08-23 15:34 斷點 閱讀(3383) | 評論 (0)編輯 收藏

        今天用反編譯工具查看java源代碼,發(fā)現(xiàn)反編譯的java文件有錯誤,在網(wǎng)上了解了下,是原先開發(fā)人員對代碼做了一下加密處理。下面介紹一下java的混淆器Proguard。
        ProGuard 是一個免費的 Java類文件的壓縮,優(yōu)化,混肴器。它刪除沒有用的類,字段,方法與屬性。使字節(jié)碼最大程度地優(yōu)化,使用簡短且無意義的名字來重命名類、字段和方法 。eclipse已經(jīng)把Proguard集成在一起了。

    其他地方也有介紹,如下:http://blog.csdn.net/alex197963/archive/2008/07/07/2620603.aspx

    posted @ 2010-08-10 11:40 斷點 閱讀(321) | 評論 (0)編輯 收藏

    1、當處理多個訪問相同數(shù)據(jù)的用戶時,通常可能出現(xiàn)三種問題:
    臟讀
    當應(yīng)用程序使用了被另一個應(yīng)用程序修改過的數(shù)據(jù),而這個數(shù)據(jù)處于未提交狀態(tài)時,就會發(fā)生臟讀。第二個應(yīng)用程序隨后會請求回滾被其修改的數(shù)據(jù)。第一個事務(wù)使用的數(shù)據(jù)就會
    被損壞,或者“變臟”。

    不可重復的讀
    當一個事務(wù)獲得了數(shù)據(jù),而該數(shù)據(jù)隨后被一個單獨的事務(wù)所更改時,若第一個事務(wù)再次讀取更改后的數(shù)據(jù),就會發(fā)生不可重復的讀。這樣,第一個事務(wù)進行了一個不可重復的讀。

    虛讀
    當事務(wù)通過某種查詢獲取了數(shù)據(jù),另一個事務(wù)修改了部分該數(shù)據(jù),原來的事務(wù)第二次獲取該數(shù)據(jù)時,就會發(fā)生虛讀。第一個事務(wù)現(xiàn)在會有不同的結(jié)果集,它可能包含虛讀。

     

    2、Java.sql.Connection接口定義的隔離級別
    TRANSACTION_NONE 說明不支持事務(wù)
    TRANSACTION_READ_UNCOMMITTED 說明在提交前一個事務(wù)可以看到另一個事務(wù)的變化。這樣臟讀、不可重復的讀和虛讀都是允許的。
    TRANSACTION_READ_COMMITTED 說明讀取未提交的數(shù)據(jù)是不允許的。這個級別仍然允許不可重復的讀和虛讀產(chǎn)生。
    TRANSACTION_REPEATABLE_READ 說明事務(wù)保證能夠再次讀取相同的數(shù)據(jù)而不會失敗,但虛讀仍然會出現(xiàn)。
    TRANSACTION_SERIALIZABLE 是最高的事務(wù)級別,它防止臟讀、不可重復的讀和虛讀。


    3、事務(wù)的隔離級別
    在J2EE中,通過java.sql.Connection接口設(shè)置事務(wù)隔離級別,這一接口為連接的隔離級別提供了getter()和setter()
    Int getTransactionIsolation() throws SQLException
    void setTransactionIsolation() throws SQLException
    Connection對象負責事務(wù),一旦收到事務(wù)請求,事務(wù)將自動提交,因為Connection對象已定義為自動提交方式,可通過setAutoCommit(false)禁用自動提交模式
    另外java.sql.DatabaseMetaData接口為數(shù)據(jù)存儲提供支持的隔離級別查找方法:getTransactionIsolation(),supportsTransactionIsolationLevel()
    對多個庫操作的分布式事務(wù)必須在所有庫中執(zhí)行同一個隔離級別,否則會出現(xiàn)意想不到的結(jié)果


    4、事務(wù)提交和回滾
    為了完成提交事務(wù)和回滾事務(wù),JDBC API包括了兩個方法作為 Connection 接口的一部分。若將 Connection 對象名稱指定為 con,通過調(diào)用 con.commit(); 可以保存程序狀態(tài);

    通過調(diào)用 con.rollback(); 可以返回到以前保存的狀態(tài)。如果數(shù)據(jù)庫實際運行操作時有錯誤發(fā)生,這兩個方法都會拋出 SQLExceptions,所以您需要在 try ... catch 塊中包裝它們。


    5、批處理和事務(wù)
    缺省情況下,JDBC 驅(qū)動程序運行在被稱為自動提交的模式下,可禁用自動提交模式
    con.setAutoCommit(false);
    批處理操作中通過在一次單獨的操作(或批處理)中執(zhí)行多個數(shù)據(jù)庫更新操作
    {con.setAutoCommit(false) ;
    Statement stmt = connection.createStatement() ; stmt.addBatch("INSERT INTO people VALUES('Joe Jackson', 0.325, 25, 105) ; stmt.addBatch("INSERT INTO people

    VALUES('Jim Jackson', 0.349, 18, 99) ; stmt.addBatch("INSERT INTO people VALUES('Jack Jackson', 0.295, 15, 84) ;
    int[] updateCounts = stmt.executeBatch() ; con.commit() ;

    posted @ 2010-07-25 21:18 斷點 閱讀(434) | 評論 (0)編輯 收藏

    Initial Capacity:池的連接數(shù)量,在啟動時創(chuàng)建
    Maximun Capacity:這是池可以打開的連接的最大數(shù)量
    Capacity Increment:成組地打開增量連接
    Login Delay Seconds:池驅(qū)動程序在啟動時打開每一個新的連接需要等待的時間
    Refresh Period(刷新周期)
    Supports Local Transaction:只用于XA連接池
    Allow Shrinking and Shrink Period(允許收縮和收縮期):如果池的數(shù)量太大,超過了初始,且如果任何一個連接在收縮期內(nèi)空閑,那么空閑的連接將在收縮期末關(guān)閉


    監(jiān)控JDBC連接池:
    Waiters Hight字段指明了最多有多少客戶等待數(shù)據(jù)庫連接
    Waiters字段告訴你當前有多少客戶正在等待連接
    Connections Hight字段給出最大的并發(fā)連接數(shù)。
    Wait Seconds Hight字段顯示了客戶等待數(shù)據(jù)庫連接的最長時間

    posted @ 2010-07-25 21:16 斷點 閱讀(400) | 評論 (0)編輯 收藏

    1、連接:
    直接連接(direct connection)
    池連接(pooled connection)
    連接復用 ,避免了數(shù)據(jù)庫連接頻繁建立、關(guān)閉的開銷 ;
    對JDBC中的原始連接進行了封裝 ,隔離了應(yīng)用的本身的處理邏輯和具體數(shù)據(jù)庫訪問邏輯 。

    2、什么是連接池?
    連接池是在Weblogic啟動時候預(yù)先建立的數(shù)據(jù)庫連接,由Weblogic在運行時負責維護。
    可以減少程序每次數(shù)據(jù)庫請求都要新創(chuàng)建數(shù)據(jù)庫物理連接的時間及資源。
    對數(shù)據(jù)庫屬性的更改只需通過控制臺進行,不需改動客戶端代碼

    MultiPool
    可以使用MultiPool為高用戶訪問量提供數(shù)據(jù)庫負載均衡,它使用簡單的循環(huán)算法將連接請求平衡分配MultiPool中的每一個池。

    多池的作用:為防數(shù)據(jù)庫連接失敗提供冗余,備份或高有效池;為高用戶訪問量提供數(shù)據(jù)庫負載均衡,負載均衡池。
    備份池:一個備份池由一個有順序的連接池列表組成。
    負載均衡池:使用簡單的循環(huán)算法將連接請求平衡地分到在列表中的每一個池。

    3、DataSource

    數(shù)據(jù)源對應(yīng)一個數(shù)據(jù)庫連接池。客戶程序可以通過數(shù)據(jù)源綁定的JNDI名字得到該數(shù)據(jù)源的引用,并通過數(shù)據(jù)源對象得到數(shù)據(jù)庫連接。

    JDBC的API:
    java.sql.DriverManager 
    java.sql.Connection 
    java.sql.ResultSet 
    Javax.sql.RowSet:
    javax.sql.Statement  
    java.sql.PreparedStatement:用于執(zhí)行預(yù)編譯的SQL語句
    java.sql.CallableStatement:用于執(zhí)行在數(shù)據(jù)庫中定義的存儲過程   
    Javax.sql.DataSource是java.sql.Connectioin對象的工廠并使用一個JNDI服務(wù)注冊它.

    posted @ 2010-07-25 21:13 斷點 閱讀(311) | 評論 (0)編輯 收藏

    1、Type 1類型驅(qū)動,JDBC-ODBC橋
    通常運行Windows平臺,需要在客戶端安裝ODBC驅(qū)動,早期Java訪問數(shù)據(jù)庫的主要方式,效率較低。

    適用于快速的原型系統(tǒng),沒有提供JDBC驅(qū)動的數(shù)據(jù)庫如Access ,由于包含多個驅(qū)動程序?qū)樱湫阅芤话悴贿m合生產(chǎn)系統(tǒng)
    Java-->JDBC-ODBC Bridge---->JDBC-ODBC Library--->ODBC Driver-->Database
    驅(qū)動程序的類名稱是 sun.jdbc.odbc.JdbcOdbcDriver
    JDBC URL 的形式為 jdbc:odbc:dsn(dsn 是使用 ODBC 管理員注冊數(shù)據(jù)庫的數(shù)據(jù)源名稱)
    不是100%JAVA程序,與ODBC之間的接口采用非JAVA方式調(diào)用,因此不能在APPLET中使用
    {
    String url = "jdbc:odbc:jdbc" ;
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con = DriverManager.getConnection(url, "java", "sun");
    }


    2、Type 2類型驅(qū)動,需要在客戶端安裝數(shù)據(jù)庫的本地驅(qū)動,JDBC請求會轉(zhuǎn)換為對數(shù)據(jù)庫本地API的調(diào)用。

    利用開發(fā)商提供的本地庫來直接與數(shù)據(jù)庫通信。
    Java-->JDBC-Driver-->DB Client Library-->Database
    繞過了ODBC層,性能優(yōu)于Type1
    也稱為部分 Java 驅(qū)動程序,因為它們直接將 JDBC API 翻譯成具體數(shù)據(jù)庫的API
    使用第二種模型將開發(fā)者限制在數(shù)據(jù)庫廠商的客戶機庫支持的客戶機平臺和操作系統(tǒng)
    Oracle的OCI驅(qū)動就屬于Type2

    3、Type 3類型驅(qū)動,DBC請求通過網(wǎng)絡(luò)服務(wù)器層實現(xiàn),在網(wǎng)絡(luò)服務(wù)器層可以實現(xiàn)負載均衡,連接池管理等。

    第三種驅(qū)動程序是純 Java 驅(qū)動程序,它將 JDBC API 轉(zhuǎn)換成獨立于數(shù)據(jù)庫的協(xié)議。JDBC 驅(qū)動程序并沒有直接和數(shù)據(jù)庫進行通訊;它和一個中間件服務(wù)器通訊,然后這個中間件服務(wù)器和數(shù)據(jù)庫進行通訊。這種額外的中間層次提供了靈活性:可以用相同的代碼訪問不同的數(shù)據(jù)庫,因為中間件服務(wù)器隱藏了 Java 應(yīng)用程序的細節(jié)。要轉(zhuǎn)到不同的數(shù)據(jù)庫,您只需在中間件服務(wù)器上改變參數(shù)。(有一點需要注意:中間件服務(wù)器必須支持您訪問的數(shù)據(jù)庫格式。)
    第三種驅(qū)動程序的缺點是,額外的中間層次可能有損整體系統(tǒng)性能。另一方面,如果應(yīng)用程序需要和不同的數(shù)據(jù)庫格式進行交互,第三種驅(qū)動程序是個有效的方法,因為不管底層
    的數(shù)據(jù)庫是什么,都使用同樣的 JDBC 驅(qū)動程序。另外,因為中間件服務(wù)器可以安裝在專門的硬件平臺上,可以利用總的結(jié)果進行一些優(yōu)化。
    Java--->Jdbc Driver(Type3 jdbc driver)----->java middleware--->JDBC Driver---->Database
    Weblogic的Pool驅(qū)動程序就是一個Type3的JDBC驅(qū)動程序。


    4、Type 4類型驅(qū)動,為純Java實現(xiàn),不需要任何客戶端設(shè)置。
    OCI驅(qū)動程序利用Java本地化接口(JNI),通過Oracle客戶端軟件與數(shù)據(jù)庫進行通訊。Thin驅(qū)動程序是純Java驅(qū)動程序,它直接與數(shù)據(jù)庫進行通訊。

    JDBC應(yīng)用的兩種架構(gòu)
    兩層架構(gòu):客戶程序直接對數(shù)據(jù)庫發(fā)起JDBC請求,Type1、2、4支持兩層架構(gòu)。
    多層架構(gòu):客戶程序?qū)DBC請求發(fā)送到中間層,中間層再將請求發(fā)送到數(shù)據(jù)庫。

    posted @ 2010-07-25 21:11 斷點 閱讀(674) | 評論 (0)編輯 收藏

    通常應(yīng)用系統(tǒng)會根據(jù)用戶數(shù)、并發(fā)數(shù)、用戶的行為等等來確定具體的性能目標,如果確定應(yīng)用程序不能滿足性能目標,那么就需要優(yōu)化、重構(gòu)程序并調(diào)整JVM、應(yīng)用服務(wù)器、數(shù)據(jù)庫、OS 或者改變硬件配置等等。

    影響Java 性能的主要因素:
    硬件,如CPU、內(nèi)存、體系結(jié)構(gòu)等等
    操作系統(tǒng)
    數(shù)據(jù)庫系統(tǒng)
    JVM
    應(yīng)用服務(wù)器
    數(shù)據(jù)庫服務(wù)器
    網(wǎng)絡(luò)環(huán)境
    應(yīng)用架構(gòu)及程序編寫水平

    性能調(diào)整的步驟:
    1、 使用工具測試系統(tǒng)是否滿足性能目標
    2、 發(fā)現(xiàn)性能瓶頸
    3、 假設(shè)瓶頸的原因
    4、 測試你的假設(shè)
    5、 如果假設(shè)成立,更改這一部分
    6、 測試確定更改是否可以提高性能,衡量性能提高的程度
    7、重復以上步驟,直到獲得可以接受的性能。

    J2EE性能不好時的現(xiàn)象,主要表現(xiàn)在對客戶端的請求響應(yīng)很慢:
    一向很慢:應(yīng)用的響應(yīng)總是很慢,改變環(huán)境(如應(yīng)用負載、數(shù)據(jù)庫的連接池數(shù)量等等),對響應(yīng)時間的
    影響不大。

    越來越慢:在相同的負載情況下,隨著系統(tǒng)運行的時間的增長,系統(tǒng)越來越慢,這可能是系統(tǒng)已到達
    極限或是系統(tǒng)死鎖和錯誤引起的。

    低于負載時會越來越慢(Slower and slower under load):.

    偶爾的掛起或異常錯誤(Sporadic hangs or aberrant errors):有時這可能是由于負載的變化或其他
    情況引起的可以預(yù)測的死鎖(Foreseeable lock ups): 掛起或最初只有少量錯誤,但隨著時間的推移整個系統(tǒng)都鎖上了,典型地這可能是為的適應(yīng)"management by restarts.“

    突發(fā)性的混亂(Sudden chaos): 系統(tǒng)已運行了一段時間(如一個小時或可能是三、四天),性能穩(wěn)定并
    可以接受, 突然沒有任何理由,開始出錯或死鎖了。


    監(jiān)控工具:
    WebLogic Server的控制臺
    cpu
    內(nèi)存
    JDBC
    輔助的工具
    Jprobe
    Optimizit
    Vtune
    TowerJ Performance

    posted @ 2010-07-25 17:02 斷點 閱讀(221) | 評論 (0)編輯 收藏

    WebLogic Server 10的下載地址:
    http://www.oracle.com/technology/software/products/ias/htdocs/wls_main.html

    1、域(Domains)
    域是管理的單元或邊界;
    作為一個單元來管理的,并相互關(guān)聯(lián)的一組Weblogic 服務(wù)器資源被稱為域;
    域由單一的管理服務(wù)器來管理。

    2、機器(Machines)
    可以對應(yīng)到服務(wù)器所在的物理硬件;
    可以是Unix或non-Unix類型;
    可以用來遠程管理和監(jiān)控;

    3、服務(wù)器(Servers)
    服務(wù)器是執(zhí)行在單一Java虛擬機 (JVM)中weblogic.Server類的實例。
    服務(wù)器:最多和一個WLS機器關(guān)聯(lián);占用一定數(shù)量的RAM ;是多線程的。

    4、管理服務(wù)器(Administration server)
    對整個域的集中控制
    XML配置存儲庫的保存者
    日志信息的集中保存

    5、被管理服務(wù)器(Managed Server)
    WebLogicServer的一個實例;
    從管理服務(wù)器遠程加載配置信息‘;
    可以是也可以不是集群的一部分。

    6、集群 (Clustering)
    WebLogic集群技術(shù)指通過一組服務(wù)器共同 工作,在多臺機器間復制應(yīng)用表示層和應(yīng)用邏輯層的能力,
    實現(xiàn)關(guān)鍵業(yè)務(wù)系統(tǒng)的負載分布,消除個別故障點;集群用來實現(xiàn)負載均衡和容錯。

    posted @ 2010-07-25 16:03 斷點 閱讀(280) | 評論 (0)編輯 收藏

    1、J2EE應(yīng)用開發(fā)的核心組件。
    Servlet: 處理HTTP請求,產(chǎn)生響應(yīng)。
    JSP:Java Server Pages ,同Servlet。其中包含了HTML和JSP標簽、Java代碼和其他信息。
    EJB:EJB服務(wù)端組件模型簡化了具有交互性、擴展性和移植性中間組件的開發(fā)。EJB一般用于實現(xiàn)系統(tǒng)的業(yè)務(wù)邏輯。

    2、J2EE的相關(guān)技術(shù)
    核心:Servlet 、JSP、EJB
    數(shù)據(jù)庫:JDBC
    命名和目錄服務(wù):JNDI
    消息服務(wù):JMS( Java Message Service )
    Email:Java Mail
    分布式計算:RMI、RMI-IIOP
    事務(wù):JTA(Java Transaction API)
    數(shù)據(jù)格式化:XML、HTML、XSL
    協(xié)議:TCP/IP、HTTP(S)、IIOP、SSL
    安全:JAAS

    3、J2EE的4層結(jié)構(gòu)
    客戶層(瀏覽器)
    Web層(HTML、Servlet、JSP)
    業(yè)務(wù)層(EJB)
    EIS層(關(guān)系數(shù)據(jù)庫)

    4、J2EE的Application Server:

    Tomcat
    BEA Weblogic
    IBM Websphere
    Oracle Application Server
    Sun Java System
    Jboss
    Borland AppServer
    Sybase Application Server
    HP Application Server
    Apusic

    5、集成開發(fā)工具:
    Borland:JBuilder
    Oracle :JDeveloper
    Bea :WebLogic Workshop
    IBM:Websphere Studio
    Sun:NetBeans
    MyEclipse

    在小型的應(yīng)用系統(tǒng)或者有特殊需要的系統(tǒng)中,可以使用一個免費的Web服務(wù)器Tomcat,該服務(wù)器支持全部JSP以及Servlet規(guī)范,但是目前還不支持EJB。

    在Java相關(guān)的開發(fā)領(lǐng)域中,常用的是3種數(shù)據(jù)庫:Oracle、DB2和MySQL。有時候也使用微軟公司的SQL Server數(shù)據(jù)庫服務(wù)器 。

    posted @ 2010-07-25 15:50 斷點 閱讀(267) | 評論 (0)編輯 收藏

    DateUtils.compareYear(regDate, base.getTInsrncBgnTm()) // 新舊車標志【保險起期 - 初登年月】 單位:年

    posted @ 2010-07-25 11:02 斷點 閱讀(266) | 評論 (0)編輯 收藏

    //顯示輸入框錄入的字符位數(shù)。 ztf 10.07.19
    function displayLength(obj) {
     var lenSpan = document.getElementById("lenSpan");
     if (lenSpan == null) {
      lenSpan = document.createElement("SPAN");
      lenSpan.id = "lenSpan";
      obj.parentNode.appendChild(lenSpan);
     }
     lenSpan.innerText = "已輸入" + obj.value.length + "位";
    }

    onkeyup="displayLength(this)"進行js調(diào)用。

    posted @ 2010-07-24 17:02 斷點 閱讀(206) | 評論 (0)編輯 收藏

    --情況1:多個參數(shù)的傳遞,由于多個文件編碼不一致,可能出現(xiàn)亂碼。

    window.open(base+"/policy/universal/pop/flat_vhl_inf_query.jsp?

    cLcnNo="+objPlateNo.value+"&cEngNo="+objEngNo.value+"&cVhlFrm="+objFrmNo.value+"&cPlateTy

    p="+objPlateTyp+"&cProdNo="+objCProdNo+"&cDptCde="+objCDptCde+"&cNewMrk="+objNewMrk.value

    +"&cEcdemicMrk="+objEcdemicMrk.value,"","scrollbars=yes,left=100,top=150,Toolbar=no,Locat

    ion=no,Direction=no,Resizeable=no,Width="+800+" ,Height="+400);


    --相應(yīng)的jsp獲得參數(shù)
    <% 
     String CProdNo = request.getParameter("prodNo");
     String CDptCde = request.getParameter("dptCde");

     String CPlateNo = request.getParameter("plateNo");

     String CFrmNo = request.getParameter("frmNo");
     
     if("".equals(CPlateNo)&&"".equals(CFrmNo)){
      return;
     }
         
     String dwName = "policy.pub.flat_vhl_inf_DW";
    %>


    --情況2:解決亂碼的問題。
    function tool_uploadFile(clmNo,billType,maxFileNum,fileType,singleLimit,totalLimit) {//解決亂碼的問題,增加變量paramObj。ztf 10.06.01
     var paramObj = {
      "clmNo" : clmNo,
      "billType" : billType,
      "maxFileNum" : maxFileNum,
      "fileType" : fileType,
      "singleLimit" : singleLimit,
      "totalLimit" : totalLimit
     };
     var r = window.showModalDialog(global.WEB_APP_NAME+"/core/jsp/common/uploadFile.jsp",paramObj,"dialogHeight:610px;dialogWidth:530px;center:1;help: 0; status: 0;");

     return r;
    }

    --在相應(yīng)的jsp頁面通過js獲得參數(shù):
    <html>
      <head>
        <title>文件上傳</title>
      </head>
      <script type="text/javascript" src="<%=webApp%>/core/js/core/Tool.js"></script>
      <body bgcolor="#85b7ec">
     
      <script>
     var paramObj = window.dialogArguments;
     var clmNo = paramObj.clmNo;
     var billType = paramObj.billType;
     var maxFileNum = paramObj.maxFileNum;
     var fileType = paramObj.fileType;
     var singleLimit = paramObj.singleLimit;
     var totalLimit = paramObj.totalLimit;
     tool.loadApplet('<%=agentIp%>','<%=agentPort%>','<%=orgId%
    >',clmNo,billType,maxFileNum,fileType,singleLimit,totalLimit);
      </script>

    </body>
    </html>


    vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeatures])

    posted @ 2010-07-24 16:57 斷點 閱讀(339) | 評論 (0)編輯 收藏

    1、具體業(yè)務(wù)中用到的sql,這個是查找最近標志為1,且有多條記錄的數(shù)據(jù)。 (這個sql查找錯誤比較有用。)
    select a.c_ply_no ,count(1) from web_ply_base a
    where  a.c_latest_mrk='1'
    group by  a.c_ply_no
    having count(1)>1

     

    背景count(*)   count(1)   兩者比較,主要還是要count(1)所相對應(yīng)的數(shù)據(jù)字段:
     
    如果你的數(shù)據(jù)表沒有主鍵,那么count(1)比count(*)快  
      如果有主鍵的話,那主鍵(聯(lián)合主鍵)作為count的條件也比count(*)要快  
      如果你的表只有一個字段的話那count(*)就是最快的啦
      如果count(1)是聚索引,id,那肯定是count(1)快。但是差的很小的。  
      因為count(*),自動會優(yōu)化指定到那一個字段。所以沒必要去count(?),用count(*),sql會幫你完成
    優(yōu)化的.
    其他語句:select * from 表名 where 條件 order by 字段名 asc\desc     // asc 升序    desc  降序

    2、C_Nme_En匹配多個 like 查詢。
    select distinct C_Spec_No
      from WEB_Prd_Fix_Spec
     WHERE C_Spec_No in (SELECT C_Spec_No
                           FROM web_Prd_Prod_Spec_Rel
                          WHERE C_Prod_No = '0326'
                            and C_Spec_No like '89%')
       and (C_Nme_En like '%000000%' or C_Nme_En like '%030006%' or
           C_Nme_En like '%030061%')

    posted @ 2010-07-24 16:42 斷點 閱讀(282) | 評論 (0)編輯 收藏

    --遞歸,樹狀結(jié)構(gòu)的存儲與展示
    drop table article;
    create table article
    (
    id number primary key,
    count varchar2(4000),
    pid number,
    isleaf number(1), --0 代表非葉子節(jié)點,1代表葉子節(jié)點
    alevel number(2)
    );

    insert into article values(1,'螞蟻大戰(zhàn)大象',0,0,0);
    insert into article values(2,'大象被打趴下',1,0,1);
    insert into article values(3,'螞蟻也不好過',2,1,2);
    insert into article values(4,'瞎說',2,0,2);
    insert into article values(5,'沒有瞎說',4,1,3);
    insert into article values(6,'怎么可能',1,0,1);
    insert into article values(7,'怎么沒有可能',6,1,2);
    insert into article values(8,'可能性是很大的',6,1,2);
    insert into article values(9,'大象進醫(yī)院了',2,0,2);
    insert into article values(10,'護士是螞蟻',9,1,3);
    commit;

    螞蟻大戰(zhàn)大象
        大象被打趴下了
            螞蟻也不好過
            瞎說
                沒有瞎說
            大象進醫(yī)院了
                護士是螞蟻
        怎么可能
            怎么沒有可能
            可能性是很大的
     

    --用存儲過程展現(xiàn)樹狀結(jié)構(gòu)。
    create or replace procedure p(v_pid article.pid%type,v_level binary_integer) is
      cursor c is select * from article where pid = v_pid;
      v_preStr varchar2(1024) := '';
    begin
      for i in 0..v_level loop
        v_preStr := v_preStr || '****';
      end loop;

      for v_article in c loop
        dbms_output.put_line(v_preStr ||v_article.cont);
        if(v_article.isleaf=0) then
           p(v_artile.id,v_levle +1);
        end if;
      end loop;
    end;

    posted @ 2010-07-24 16:25 斷點 閱讀(260) | 評論 (0)編輯 收藏

    --觸發(fā)器
    create table emp2_log
    (
    uname varchar2(20);
    action varchar2(10);
    atime date
    );

    create or replace trigger trig
      after insert or delete or update on emp2 for each row
    begin
      if inserting then
         insert into emp2_log values (USER,'insert',sysdate); --USER關(guān)鍵字,用戶。
      elsif updating then
         insert into emp2_log values (USER,'update',sysdate);
      elsif deleting then
         insert into emp2_log values (USER,'delete',sysdate);
      end if;
    end;

    update emp2 set sal = sal*2 where deptno = 30;
    select * from emp2_log;

    drop trigger trig;

    --直接執(zhí)行時,出現(xiàn)違反完整約束條件,已找到子記錄。
    update dept set deptno = 99 where deptno = 10;

    --使用下面的,把子表一起更新。
    create or replace trigger trig
      after update on dept for each row
    begin
      update emp set deptno =:NEW.deptno where deptno =:OLD.deptno;
    end;

    update dept set deptno = 99 where deptno = 10;

    select * from emp;
    rollback;

    posted @ 2010-07-24 16:22 斷點 閱讀(295) | 評論 (0)編輯 收藏

    --函數(shù)
    create or replace function sal_tax
       (v_sal number)
       return number
    is
    begin
      if(v_sal < 2000) then
        return 0.10;
      elsif(v_sal < 2750) then
        return 0.15;
      else
        return 0.20;
      end if;
    end;

    數(shù)據(jù)庫定義的函數(shù)money_to_chinese ,把數(shù)字轉(zhuǎn)換正中文輸出。
    create or replace function money_to_chinese(money in VARCHAR2)
       return varchar2 is
         c_money   VARCHAR2(12);
         m_string VARCHAR2(60) := '分角圓拾佰仟萬拾佰仟億';
         n_string VARCHAR2(40) := '壹貳叁肆伍陸柒捌玖';
         b_string VARCHAR2(80);
         n         CHAR;
         len       NUMBER(3);
         i         NUMBER(3);
         tmp       NUMBER(12);
         is_zero   BOOLEAN;
         z_count   NUMBER(3);
         l_money   NUMBER;
         l_sign    VARCHAR2(10);

       BEGIN
         l_money := abs(money);
         IF money < 0 THEN
           l_sign := '負' ;
         ELSE
           l_sign := '';
         END IF;
         tmp      := round(l_money, 2) * 100;
         c_money := rtrim(ltrim(to_char(tmp, '999999999999')));
         len      := length(c_money);
         is_zero := TRUE;
         z_count := 0;
         i        := 0;
         WHILE i < len LOOP
           i := i + 1;
           n := substr(c_money, i, 1);
           IF n = '0' THEN
             IF len - i = 6 OR len - i = 2 OR len = i THEN
               IF is_zero THEN
                 b_string := substr(b_string, 1, length(b_string) - 1);
                 is_zero   := FALSE;
               END IF;
               IF len - i = 6 THEN
                 b_string := b_string || '萬';
               END IF;
               IF len - i = 2 THEN
                 b_string := b_string || '圓';
               END IF;
               IF len = i THEN
                  IF (len = 1) THEN
                     b_string := '零圓整';
                  ELSE
                     b_string := b_string || '整';
                  END IF;
               END IF;
               z_count := 0;
             ELSE
               IF z_count = 0 THEN
                 b_string := b_string || '零';
                 is_zero   := TRUE;
               END IF;
               z_count := z_count + 1;
             END IF;
           ELSE
             b_string := b_string || substr(n_string, to_number(n), 1) ||
                         substr(m_string, len - i + 1, 1);
             z_count   := 0;
             is_zero   := FALSE;
           END IF;
         END LOOP;
         b_string := l_sign || b_string ;
         RETURN b_string;
    exception
       --異常處理
        WHEN OTHERS THEN
           RETURN(SQLERRM);
    END;

    posted @ 2010-07-24 16:19 斷點 閱讀(301) | 評論 (0)編輯 收藏

    --創(chuàng)建存儲過程:
    create or replace procedure p
    is
      cursor c is
      select * from emp2 for update;
    begin
      for v_temp in c loop 
        if(v_temp.deptno = 10) then
          update emp2 set sal = sal+10 where current of c;
        elsif(v_temp.deptno = 20) then
          update emp2 set sal = sal+20 where current of c;
        else
           update emp2 set sal = sal+50 where current of c;
        end if;
      end loop;
      commit;
    end;

    --執(zhí)行:
    exec p;

    begin
    p;
    end;


    --帶參數(shù)的存儲過程,in傳入?yún)?shù),默認為傳入,out傳出。
    create or replace procedure p
       (v_a in number,v_b number,v_ret out number,v_temp in out number)
    is
    begin
      if(v_a >v_b) then
        v_ret := v_a;
      else
        v_ret := v_b;
      end if;
      v_temp :=v_temp +1;
    end;

    declare
      v_a number := 3;
      v_b number := 4;
      v_ret number;
      v_temp number := 5;
    begin
      p(v_a,v_b,v_ret,v_temp);
      dbms_output.put_line(v_ret);
      dbms_output.put_line(v_temp);
    end;

    posted @ 2010-07-24 16:17 斷點 閱讀(263) | 評論 (0)編輯 收藏

    --游標
    declare
      cursor c is
        select * from emp;
      v_emp c%rowtype;
    begin
      open c;
      loop
        fetch c into v_emp;
        exit when(c%notfound);
        dbms_output.put_line(v_emp.ename);
      end loop;
      close c;
    end;

    declare
      cursor c is
        select * from emp;
      v_emp emp%rowtype;
    begin
      open c;
      fetch c into v_emp;
        while(c%found) loop
          dbms_output.put_line(v_emp.ename);
          fetch c into v_emp;
          --fetch c into v_emp; 導致第一條沒有打印,最后一條打印2遍。
          --dbms_output.put_line(v_emp.ename);
      end loop;
      close c;
    end;


    declare
      cursor c is
        select * from emp;
    begin
      for v_emp in c loop
        dbms_output.put_line(v_emp.ename);
      end loop;
    end;


    --帶參數(shù)的游標
    declare
      cursor c(v_deptno emp.deptno%type,v_job emp.job%type)
      is
        select ename,sal from emp where deptno =v_deptno and job= v_job;
        --v_temp c%rowtype;
    begin
      for v_temp in c(30,'CLERK') loop  --for自動打開游標。
        dbms_output.put_line(v_temp.ename);
      end loop;
    end;


    --可更新的游標
    declare
      cursor c
      is
        select * from emp2 for update;
        --v_temp c%rowtype;
    begin
      for v_temp in c loop 
        if(v_temp.sal <2000) then
          update emp2 set sal = sal*2 where current of c;
        elsif(v_temp.sal = 5000) then
          delete from emp2 where current of c;
        end if;
      end loop;
      commit;
    end;

    posted @ 2010-07-24 16:14 斷點 閱讀(245) | 評論 (0)編輯 收藏

    PLSql是SQL的補充,PL過程語言procedure language,SQL:Structured Query Language。
    PLSql    帶有分支、循環(huán)的語言,SQL沒有分支、循環(huán)的語言。

    set serveroutput on;

    -- 簡單的PL/SQL語句塊
    declare
     v_name varchar2(20);
    begin
      v_name :='myname';
      dbms_output.put_line(v_name);
    end;
    /


    --語句塊的組成
    declare
     v_num number := 0 ;
    begin
      v_num := 2/v_num;
      dbms_output.put_line(v_num);
    exception
      when others then
         dbms_output.put_line('error');

    end;
    /

    --變量聲明的規(guī)則
    1、變量名不能夠使用保留字,如from、select等
    2、第一個字符必須是字母
    3、變量名最多包含30個字符
    4、不要與數(shù)據(jù)庫的表或者列同名
    5、每一行只能聲明一個變量


    --常用變量類型
    1、binary_integer:整數(shù),主要用來計數(shù)而不是用來表示字段類型
    2、number:數(shù)字類型
    3、char:定長字符串
    4、varchar2:變長字符串
    5、date:日期
    6、long:長字符串,最長2GB
    7、boolean:布爾類型,可以取值true、false和null值


    --變量聲明
    declare
      v_temp number(1);
      v_count binary_integer :=0;
      v_sal number(7,2):= 4000.00;
      v_date date:= sysdate;
      v_pi constant number(3,2) := 3.14;  --constant相當java的final常量
      v_valid boolean := false;
      v_name varchar2(20) not null :='MyName';
    begin
      dbms_output.put_line('v_temp value:'|| v_temp);
    end;
     

    --變量聲明,使用%type屬性
    declare
      v_empno number(4);
      v_empno2 emp.empno%type;
      v_empno3 v_empno2%type;
    begin
      dbms_output.put_line('Test');
    end;


    --簡單變量賦值
    declare
      v_name varchar2(20);
      v_sal number(7,2);
      v_sal2 number(7,2);
      v_valid boolean :=false;
      v_date date;
    begin
      va_name :='MyName';
      v_sal :=23.77;
      v_sal2 :=23.77;
      v_valid:=(v_sal = v_sal2);
      v_date:=to_date('1999-08-12 12:23:38','YYYY-MM-DD HH24:MI:SS');  
    end;


    --Table變量類型,定義一種新的類型,是數(shù)組。
    declare
      type type_table_emp_empno is table of emp.empno%type index by binary_integer;
      v_empno type_table_emp_empno;
    begin
      v_empnos(0) := 7369;
      v_empnos(2) := 7839;
      v_empnos(-1) := 9999;
      dbms_output.put_line(v_empnos(-1));
    end;


    --Record變量類型,類似java的類的概念。
    declare
      type type_record_dept is record
      (
        deptno dept.deptno%type,
        dname dept.dname%type,
        loc dept.loc%type
      );
      v_tmp type_record_dept;
    begin
      v_tmp.deptno := 50;
      v_tmp.dname := 'aaaa';
      v_tmp.loc := 'bj';
      dbms_output.put_line(v_temp.deptno||''||v_temp.dname);
    end;


    --使用%rowtype聲明Record變量
    declare
      v_temp dept%rowtype;
    begin
      v_tmp.deptno := 50;
      v_tmp.dname := 'aaaa';
      v_tmp.loc := 'bj';
      dbms_output.put_line(v_temp.deptno||''||v_temp.dname);
    end;


    --SQL語句的運用,返回數(shù)據(jù)有且只有一條記錄。
    declare
      v_ename emp.ename%type;
      v_sal emp.sal%type;
    begin
      select ename,sal into v_ename,v_sal from emp where empno = 7369;
      dbms_output.put_line(v_ename||''||v_sal);
    end;

    declare
      v_emp emp%rowtype;
    begin
      select * into v_emp from emp where empno = 7369;
      dbms_output.put_line(v_emp.ename);
    end;

    declare
       v_deptno dept.deptno%type := 50;
       v_dname dept.dname%type := 'aaaa';
       v_loc dept.loc%type := 'bj';
    begin
      insert into dept2 values (v_deptno,v_dname,v_loc);
      commit;
    end;

    declare
      v_deptno emp2.deptno%type := 10;
      v_count number ;
    begin
      --update emp2 set sal = sal/2 where deptno = v_deptno;
      --select deptno into v_deptno from emp2 where empno = 7369;
      select count(*) into v_count from emp2;
      dbms_output.put_line(sql%rowcount||'條記錄被影響');
      commit;
    end;


    DDL語句:
    begin
      execute immediate 'create table T(nnn varchar2(20) default ''aaa'')';
    end;

    --if語句:取出7369的薪水,如果<1200,則輸出'low',如果<2000則輸出'middle',否則'high'
    declare
      v_sal emp.sal%type;
    begin
      select sal into v_sal from emp where empno = 7369;
      if(v_sal < 1200) then
        dbms_output.put_line('low');
      elsif(v_sal < 2000) then
        dbms_output.put_line('middle');
      else
        dbms_output.put_line('high');
      end if;
    end;


    --循環(huán)
    declare
      i binary_integer := 1;
    begin
      loop
        dbms_output.put_line(i);
        i := i+ 1;
        exit when (i >= 11);
      end loop;
    end;

    declare
      j binary_integer := 1;
    begin
      while j< 11 loop
        dbms_output.put_line(j);
        j := j+ 1;
      end loop;
    end;

    begin
      for k in 1..10 loop
        dbms_output.put_line(k);
      end loop;

      for k in reverse 1..10 loop
        dbms_output.put_line(k);
      end loop;
    end;


    --錯誤處理
    declare
      v_temp number(4);
    begin
      select empno into v_temp from emp where deptno = 10;
    exception
      when too_many_rows then
        dbms_output.put_line('太多記錄了');
      when others then
        dbms_output.put_line('error');
    end;


    declare
      v_temp number(4);
    begin
      select empno into v_temp from emp where empno = 2222;
    exception
      when no_data_found then
        dbms_output.put_line('沒數(shù)據(jù)');

    end;


    create table errorlog
    (
    id number primary key,
    errcode number,
    errmsg varchar2(1024),
    errdate date
    );


    create sequence seq_errorlog_id start with 1 increment by 1;


    declare
      v_deptno dept.deptno%type := 10;
      v_errmsg varchar2(1024);
    begin
      delete from dept where deptno = v_deptno;
      commit;
    exception
      when others then
      rollback;
      v_errcode := SQLCODE;  --關(guān)鍵字,代表出錯的代碼。
      v_errmsg := SQLERRM;
      insert into errorlog values (seq_errorlog_id.nextval,v_errcode,v_errmsg,sysdate);
      commit;
    end;

    posted @ 2010-07-24 16:03 斷點 閱讀(315) | 評論 (0)編輯 收藏

    構(gòu)造數(shù)據(jù)庫必須遵循一定的規(guī)則。在關(guān)系數(shù)據(jù)庫中,這種規(guī)則就是范式。關(guān)系數(shù)據(jù)庫中的關(guān)系必須滿足一定的要求,即滿足不同的范式。目前關(guān)系數(shù)據(jù)庫有六種范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。滿足最低要求的范式是第一范式(1NF)。在第一范式的基礎(chǔ)上進一步滿足更多要求的稱為第二范式(2NF),其余范式以次類推。一般說來,數(shù)據(jù)庫只需滿足第三范式(3NF)就行了。


    第一范式(1NF):無重復的列。
        所謂第一范式(1NF)是指數(shù)據(jù)庫表的每一列都是不可分割的基本數(shù)據(jù)項,同一列中不能有多個
    值,即實體中的某個屬性不能有多個值或者不能有重復的屬性。如果出現(xiàn)重復的屬性,就可能需要定義一個新的實體,新的實體由重復的屬性構(gòu)成,新實體與原實體之間為一對多關(guān)系。在第一范式(1NF)中表的每一行只包含一個實例的信息。簡而言之,第一范式就是無重復的列。
       
       數(shù)據(jù)庫表中的字段都是單一屬性的,不可再分。這個單一屬性由基本類型構(gòu)成,包括整型、實數(shù)、字符型、邏輯型、日期型等。

    說明:在任何一個關(guān)系數(shù)據(jù)庫中,第一范式(1NF)是對關(guān)系模式的基本要求,不滿足第一范式(1NF)的數(shù)據(jù)庫就不是關(guān)系數(shù)據(jù)庫。

     

    第二范式(2NF):屬性完全依賴于主鍵[消除部分子函數(shù)依賴]。
     
        第二范式(2NF)是在第一范式(1NF)的基礎(chǔ)上建立起來的,即滿足第二范式(2NF)必須先滿
    足第一范式(1NF)。第二范式(2NF)要求數(shù)據(jù)庫表中的每個實例或行必須可以被惟一地區(qū)分。為實現(xiàn)區(qū)分通常需要為表加上一個列,以存儲各個實例的惟一標識。例如員工信息表中加上了員工編號(emp_id)列,因為每個員工的員工編號是惟一的,因此每個員工可以被惟一區(qū)分。這個惟一屬性列被稱為主關(guān)鍵字或主鍵、主碼。
        第二范式(2NF)要求實體的屬性完全依賴于主關(guān)鍵字。所謂完全依賴是指不能存在僅依賴主
    關(guān)鍵字一部分的屬性,如果存在,那么這個屬性和主關(guān)鍵字的這一部分應(yīng)該分離出來形成一個新的實體,新實體與原實體之間是一對多的關(guān)系。為實現(xiàn)區(qū)分通常需要為表加上一個列,以存儲各個實例的惟一標識。簡而言之,第二范式就是屬性完全依賴于主鍵。

    第三范式(3NF):屬性不依賴于其它非主屬性[消除傳遞依賴]。
       
        滿足第三范式(3NF)必須先滿足第二范式(2NF)。簡而言之,第三范式(3NF)要求一個數(shù)據(jù)庫表中不包含已在其它表中已包含的非主關(guān)鍵字信息。例如,存在一個部門信息表,其中每個部門有部門編號(dept_id)、部門名稱、部門簡介等信息。那么在的員工信息表中列出部門編號后就不能再將部門名稱、部門簡介等與部門有關(guān)的信息再加入員工信息表中。如果不存在部門信息表,則根據(jù)第三范式(3NF)也應(yīng)該構(gòu)建它,否則就會有大量的數(shù)據(jù)冗余。簡而言之,第三范式就是屬性不依賴于其它非主屬性。
        
    所謂傳遞函數(shù)依賴,指的是如果存在"A → B → C"的決定關(guān)系,則C傳遞函數(shù)依賴于A。

    posted @ 2010-07-18 10:23 斷點 閱讀(214) | 評論 (0)編輯 收藏

    序列:sequence,產(chǎn)生一個獨一無二的序列,是oracle特有的。

    create table article
    (
    id number,
    title varchar2(1024),
    cont long
    );
    insert into article values(seq.nextval,'a','b');

    select * from user_sequences; --查詢序列

    create sequence seq; --創(chuàng)建序列seq對象
    select seq.nextval from dual;
    drop sequence seq;

    posted @ 2010-07-17 22:08 斷點 閱讀(203) | 評論 (0)編輯 收藏

    視圖:一個虛表,也是一個子查詢,是存儲在數(shù)據(jù)字典里的一條select語句。
    視圖:基于一個表或多個表或視圖的邏輯表,本身不包含數(shù)據(jù),通過它可以對表里面的數(shù)據(jù)進行查詢和修改,視圖基于的表稱為基表。


    視圖的優(yōu)點:
    1、對數(shù)據(jù)庫的訪問,可以有選擇性的選取數(shù)據(jù)庫里的一部分信息,整張表的信息不對外開放。2.用戶通過簡單的查詢可以從復雜查詢中得到結(jié)果。
    視圖的缺點:
    如果一個表的結(jié)構(gòu)改了,相應(yīng)的視圖如果用到了該表的字段,也要進行修改,增加維護工作量


    簡單視圖:只從單表里獲取數(shù)據(jù),不包含函數(shù)和數(shù)據(jù)組,可以實現(xiàn)DML操作。
    復雜視圖:從多表獲取數(shù)據(jù),包含函數(shù)和數(shù)據(jù)組,不可以DML操作。

    視圖的創(chuàng)建:
    CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name
    [(alias[, alias]...)]
    AS subquery
    [WITH CHECK OPTION [CONSTRAINT constraint]]
    [WITH READ ONLY]

    其中:
    OR REPLACE:若所創(chuàng)建的試圖已經(jīng)存在,ORACLE自動重建該視圖;
    FORCE:不管基表是否存在ORACLE都會自動創(chuàng)建該視圖;
    NOFORCE:只有基表都存在ORACLE才會創(chuàng)建該視圖:
    alias:為視圖產(chǎn)生的列定義的別名;
    subquery:一條完整的SELECT語句,可以在該語句中定義別名;
    WITH CHECK OPTION :插入或修改的數(shù)據(jù)行必須滿足視圖定義的約束;
    WITH READ ONLY :該視圖上不能進行任何DML操作。


    例如:
           CREATE OR REPLACE VIEW dept_sum_vw
                   (name,minsal,maxsal,avgsal)
           AS SELECT d.dname,min(e.sal),max(e.sal),avg(e.sal)
           FROM    emp e,dept d
           WHERE e.deptno=d.deptno
           GROUP BY d.dname;
    查詢視圖:select * from user_views;
    修改視圖:通過OR REPLACE 重新創(chuàng)建同名視圖即可。
    刪除視圖:DROP VIEW VIEW_NAME;

    視圖的定義原則:
    1.視圖的查詢可以使用復雜的SELECT語法,包括連接/分組查詢和子查詢;
    2.在沒有WITH CHECK OPTION和 READ ONLY 的情況下,查詢中不能使用ORDER BY 子句;
    3.如果沒有為CHECK OPTION約束命名,系統(tǒng)會自動為之命名,形式為SYS_Cn;
    4.OR REPLACE選項可以不刪除原視圖便可更改其定義并重建,或重新授予對象權(quán)限。

    視圖上的DML操作,應(yīng)遵循的原則:
    1.簡單視圖可以執(zhí)行DML操作;
    2.在視圖包含GROUP 函數(shù),GROUP BY子句,DISTINCT關(guān)鍵字時不能刪除數(shù)據(jù)行;
    3.在視圖不出現(xiàn)下列情況時可通過視圖修改基表數(shù)據(jù)或插入數(shù)據(jù):
       a.視圖中包含GROUP 函數(shù),GROUP BY子句,DISTINCT關(guān)鍵字;
       b.使用表達式定義的列;
       c .ROWNUM偽列。
      d.基表中未在視圖中選擇的其他列定義為非空且無默認值。


    WITH CHECK OPTION 子句限定:
    通過視圖執(zhí)行的INSERTS和UPDATES操作不能創(chuàng)建該視圖檢索不到的數(shù)據(jù)行,因為它會對插入或修改的數(shù)據(jù)行執(zhí)行完整性約束和數(shù)據(jù)有效性檢查。
    例如:
               CREATE OR REPLACE VIEW vw_emp20
               AS SELECT * FROM emp
               WHERE deptno=20
               WITH CHECK OPTION constraint vw_emp20_ck;
              視圖 已建立。
                查詢結(jié)果:
               SELECT empno,ename,job FROM vw_emp20;
              EMPNO                ENAME                JOB
    ---------------------           --------------          -------------
                  7369                 SMITH                CLERK
                  7566                 JONES               MANAGER
                  7902                 FORD                ANALYST
              修改:
                    UPDATE vw_emp20
                    SET        deptno=20
                    WHERE   empno=7902;
               將產(chǎn)生錯誤:
                   UPDATE vw_emp20
                                  *
                   ERROR 位于第一行:
                   ORA-01402:視圖WITH CHECK OPTION 違反WHERE 子句

    posted @ 2010-07-17 11:03 斷點 閱讀(226) | 評論 (0)編輯 收藏

    索引:--像字典里面的索引。

    表建立索引后在插入數(shù)據(jù)時,一要把數(shù)據(jù)寫入表里,二要把該數(shù)據(jù)記入索引里面,因此查詢效率高、但插入效率低。

    create index idx_stu_email on stu(email,class);  --組合索引,查詢效率高。
    drop index idx_stu_email;
    select * from user_indexes; -- 查詢索引

    posted @ 2010-07-17 10:54 斷點 閱讀(203) | 評論 (0)編輯 收藏

    Oracle的數(shù)據(jù)庫對象分為五種:表,視圖,序列,索引和同義詞。

    select * from  user_tables  -- 當前用戶下有多少張表
    select * from  user_views  -- 當前用戶下有多少張視圖
    select * from user_sequences; --查詢序列
    select * from user_indexes; -- 查詢索引

    select * from  user_constraints  -- 當前用戶下有多少約束
    select * from  dictionary  --數(shù)據(jù)字典表的表

    posted @ 2010-07-17 10:52 斷點 閱讀(202) | 評論 (0)編輯 收藏

    DDL(data definition language):DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定義或改變表(TABLE)的結(jié)構(gòu),數(shù)據(jù)類型,表之間的鏈接和約束等初始化工作上,他們大多在建立表時使用。

    數(shù)據(jù)類型:VARCHAR2(50)最大4K(4096字節(jié))、CHAR(1)最大2k、NUMBER(10,6)、NUMBER(6)、DATE、
    LONG 變長字符串,最大長度達2G。

     

    約束條件有5個:非空、唯一、主鍵、外鍵、check。

    create table stu
    (
    id number(6), --primary key
    name varchar2(20) constraint stu_name_nn not null, --stu_name_nn別名
    sex number(1),
    age number(3),
    sdate date,
    grade number(2) default 1,
    class number(4), --references class(id)
    email varchar2(50),
    --email varchar2(50) unique  --字段級約束,不能有重復值
    constraint stu_name_email_uni unique(name,email), --表級約束
    constraint stu_id_pk primary key(id),        --表級約束
    constraint stu_class_fk foreign key(class) references class(id) --被參考字段必須是主鍵
    );

    create table class
    (
    id number(4) primary key,
    name varchar2(20) not null
    )


    alter table stu add(addr varchar2(100)); --對已存在的表新增字段
    alter table stu modify(addr varchar2(150)); --對字段修改
    alter table stu drop (addr); --刪除一個字段
    alter table stu drop constraint stu_class_fk;
    delete from class;
    drop table class;

    posted @ 2010-07-17 09:43 斷點 閱讀(233) | 評論 (0)編輯 收藏

    SQL語言共分為四大類:數(shù)據(jù)查詢語言DQL,數(shù)據(jù)操縱語言DML,數(shù)據(jù)定義語言DDL,數(shù)據(jù)控制語言DCL。

    DML(data manipulation language):它們是SELECT、UPDATE、INSERT、DELETE,就象它的名字一樣,這4條命令是用來對數(shù)據(jù)庫里的數(shù)據(jù)進行操作的語言。

    conn sys/sys as sysdba;
    drop user pcisv6 cascade;
    exp --備份scott用戶下的表
    --創(chuàng)建用戶,identified為認證相當是密碼,quota配額就是分配空間。
    create user pcisv6 identified by 11 default tablespace core6 quota 10M on corev6
    grant create session,create table,create view to pcisv6;   --授權(quán),session是用于登錄的
    imp --導入scott用戶下的表

    SELECT:
    select rownum r,ename from emp;    --rownum行數(shù),目前只能使用<、<=, 而沒有直接>、=的寫法。
    select ename, sal     --求薪水最高的前5人
     from (select ename, sal from emp order by sal desc)
     where rownum <= 5;

    --求薪水最高的前6到10人
    select ename,sal,rownum r from emp order by sal desc; --r 排序混亂
    select ename,sal,rownum r from (select ename,sal from emp order by sal desc); --此時r序號按新表排序
    select ename, sal    -- 此處為結(jié)果
      from (select ename, sal, rownum r
              from (select ename, sal from emp order by sal desc))
     where r >= 6
       and r <= 10;


    INSERT:
    insert into dept values(50,'game','bj');    --整條記錄
    rollback;
    create table dept2 as selet * from emp; --創(chuàng)建dept2表
    insert into dept2(deptno,dname) values(60,'game2');    --有選擇的字段插入
    insert into dept2 select * from dept;    --插入一個表, 2個表結(jié)構(gòu)一樣


    UPDATE:
    update emp2 set sal=sal*12,ename=ename||'-' where deptno=10;

    DELETE:
    delete from dept2 where deptno<25;
    rollback;

    TRANSACTION:
    transaction 起始一條dml語句,在commit、rollback時完成。
    transaction 在執(zhí)行dml后,在其后有執(zhí)行了ddl、dcl時,事務(wù)自動提交。
    在正常退出exit時,事務(wù)自動提交。
    在非正常退出時,事務(wù)回滾。

    ------------------------------------------------------------
    例子:
    有3個表S,C,SC
    S(SNO,SNAME)代表(學號,姓名)
    C(CNO,CNAME,CTEACHER)代表(課號,課名,教師)
    SC(SNO,CNO,SCGRADE)代表(學號,課號成績)
    問題:
    1,找出沒選過“黎明”老師的所有學生姓名。
    2,列出2門以上(含2門)不及格學生姓名及平均成績。
    3,即學過1號課程有學過2號課所有學生的姓名。
    請用標準SQL語言寫出答案,方言也行(請說明是使用什么方言)。

    1.
    select sname froms
      join sc on (s.sno = sc.sno)
      join c(c.cno = sc.cno)
     where c.cteacher <> 'liming';
    2.
    select sname
     where sno in (select sno
                     from sc
                    where scgrade < 60
                    group by sno
                   having count(*) >= 2);
    3.
    select sname
     where sno in (select sno
                     from sc
                    where cno = 1
                      and sno in (select sno from sc where cno = 2));


    posted @ 2010-07-11 15:43 斷點 閱讀(236) | 評論 (0)編輯 收藏

    錯誤原因:在Oracle新建了一個表,名為“QueryHistory",用來保存用戶的查詢記錄,這時,再用"Select * from QueryHistory"來查詢,報 "ORA-00942: 表或視圖不存在 "。

    錯誤分析:利用Google搜索找到了原因,
     oracle是大小寫敏感的,如果定義表名稱或列名稱的時候沒有用引號引起來的話 oracle會把他們?nèi)哭D(zhuǎn)換為大寫,這時就會出現(xiàn)錯誤了。

    解決方法:將語句改為"Select * from "QueryHistory" 或是語句全部大寫。

    posted @ 2010-07-10 17:36 斷點 閱讀(639) | 評論 (0)編輯 收藏

    PCIS[2010-07-08 18:08:02,531]>>ERROR>> [BizControllerImpl異常堆棧{事務(wù)ID/用戶代碼}:[1278583679437325]/[00000210]:com.fwk.service.BusinessServiceException: com.fwk.dao.DaoException: 保存保單,saveOrUpdatePolicy()時出錯; nested exception is org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; nested exception is org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
     at com.pcis.policy.dm.PolicyDAO.saveOrUpdatePolicy(PolicyDAO.java:193)
     at com.pcis.policy.app.newbusiness.service.PolicyAppService.savePolicy(PolicyAppService.java:343)
     at com.pcis.policy.app.underwrite.bm.UnderwriteBM.submitUnderwrite(UnderwriteBM.java:139)
     at com.pcis.policy.app.underwrite.action.UnderwriteBizAction.submitUnderwrite(UnderwriteBizAction.java:548)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     ...
    Caused by: org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; nested exception is org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
     at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:624)
     at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
     at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:379)
     at org.springframework.orm.hibernate3.HibernateTemplate.flush(HibernateTemplate.java:841)
     at com.fwk.dao.BaseDao.flush(Unknown Source)
     at com.pcis.policy.dm.PolicyDAO.saveOrUpdatePolicy(PolicyDAO.java:174)
     ... 80 more
    Caused by: java.sql.BatchUpdateException: ORA-00001: unique constraint (PCISV6_TS.UI_PLY_CVRG) violated
     at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:602)
     at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:9350)
     at oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:210)
     at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
     at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
     at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:246)
     ... 90 more

    分析及解決:
    在頁面保存的時候,后臺提示是違反唯一索引,通過UI_PLY_CVRG 查詢相應(yīng)的表,
    select * from user_indexes  where index_name='UI_PLY_CVRG'
    該表是WEB_PLY_CVRG ,而該表的唯一索引UI_PLY_CVRG 是由該表的3個字段組成C_PLY_NO、N_EDR_PRJ_NO、 N_SEQ_NO,然后看下頁面發(fā)現(xiàn)是N_SEQ_NO有4個重復,刪除多余的記錄即可保存成功。

     

    posted @ 2010-07-10 16:55 斷點 閱讀(7269) | 評論 (0)編輯 收藏

    在項目中經(jīng)常需要處理一些輸入字符,往往我們也需要對其進行校驗,而使用正則表達式是一個很好的處理方法。下面介紹一款處理正則表達式的軟件 Match Tracer v2.0,MTracer最有用的特性是中文的正則式分析樹。

    下載地址:http://www.52z.com/down/30160.Html
    官網(wǎng):http://www.regexlab.com/zh/mtracer/

    posted @ 2010-07-10 16:06 斷點 閱讀(167) | 評論 (0)編輯 收藏

    在平時的項目中,經(jīng)常需要開一下別人寫的源碼,而此時別人提供的往往是jar文件,根本看不了,很是不爽。最近很偶然的看見一個同事在eclipse下查看class文件,很是興奮。下面講下是如何安裝下插件的。

    打開class文件,我目前了解的有2種類型的軟件:
    一、在eclipse外部打開jar文件。
    Java Decompiler.exe,主頁JD home page: http://java.decompiler.free.fr ,該軟件可以打開整個jar包,功能很強大。

    二、在eclipse內(nèi)部打開jar文件。
    net.sf.jadclipse_3.3.0.jar、jad158g.win.zip,需要這兩個文件。
    準備工作:
    1、下載jad.exe文件:http://www.varaneckas.com/jad
    2、下載jadeclipse插件:http://sourceforge.net/projects/jadclipse/files/

    安裝如下:

    1、將jadeclipse插件net.sf.jadclipse_3.3.0.jar 拷貝到myeclipse安裝目錄E:\MyEclipse 6.0\eclipse\myplugins\jad\eclipse\plugins目錄下,并在目錄E:\MyEclipse 6.0\eclipse\links下新建文件jad.link,內(nèi)容如下path=E:\\MyEclipse 6.0\\eclipse\\myplugins\\jad\\ 

    2、將jad.exe解壓到指定目錄。如:D:\tools 

    3、在eclipse窗口下,點擊Window > Preferences > Java > JadClipse > Path to Decompiler。(設(shè)置jad的絕對路徑,如 D:\tools\jad\jad.exe)。Use Eclipse code formatter(overrides Jad formatting instructions)選項打勾,與格式化出來的代碼樣式一致。

    4、在eclipse窗口下,點擊Window > Preferences > Java > JadClipse > Misc,將Convert Unicode strings into ANSI strings選項打勾,避免反編譯后可能出現(xiàn)的中文亂碼。

    5、重新啟動myeclipse,eclipse自動將JadClipse Class File Viewer設(shè)置成class文件的缺省打開方式。如果沒有默認,可以在Eclipse的Window > Preferences >General >Editors> File Associations中修改“*.class”默認關(guān)聯(lián)的編輯器為“JadClipse Class File Viewer”。設(shè)置完成后,雙擊*.class文件,eclipse將自動反編譯。

    posted @ 2010-07-10 15:31 斷點 閱讀(5899) | 評論 (2)編輯 收藏

    select e1.ename,e2.ename from emp e1 join emp e2 on (e1.mgr=e2.empno); --自連接,從e2中取出e1的經(jīng)理人。
    select ename,dname from emp e left join dept d on (e.deptno=d.deptno);   --左外連接
    select ename,dname from emp e right outer join dept d on (e.deptno=d.deptno);   --右外連接
    select ename,dname from emp e full join dept d on (e.deptno=d.deptno);    --全連接


    --求部門中哪些人的薪水最高
    select ename,sal from emp
    join (select max(sal) max_sal,deptno from emp group by deptno) t
    on (emp.sal = t.max_sal and emp.deptno = t.deptno);

    --求部門平均薪水的等級
    select deptno,avg_sal,grade from
    (select deptno,avg(sal) avg_sal from emp group by deptno) t
    join salgrade s on (t.avg_sal between s.losal and s.hisal);


    --求部門平均的薪水等級
    select avg(grade) from
    (select deptno,ename,grade from emp join salgrade s on (emp.sal between s.losal and s.hisal )) t
    group by deptno;

    --雇員中有哪些人是經(jīng)理人
    select ename from emp where empno in (select distinct mgr from emp);


    --不準用組函數(shù),求薪水的最高值。采用的是自連接。
    select distinct sal from emp where sal not in
    (select distinct e1.sal from emp e1 join emp e2 on (e1.sal < e2.sal));


    --求平均薪水最高的部門的部門編號。嵌套的組函數(shù)。
    select deptno,avg_sal from
    (select avg(sal) avg_sal,deptno from emp group by deptno)
    where avg_sal =
    (select max(avg(sal)),deptno from emp group by deptno;

     

    --求平均薪水的等級最低的部門的部門名稱。
    select dname,t1.deptno,grade,avg_sal from
      (
       select deptno,grade,avg_sal from
         (select deptno,avg(sal) avg_sal from emp group by deptno) t
         join salgrade s on (t.avg_sal between s.losal and s.hisal)
      )
       t1
       join dept on (t1.deptno = dept.deptno)
    )
    where t1.grade =
    (
     select min(grade) from
         (select deptno,grade,avg_sal from
      (select deptno,grade,avg(sal) avg_sal from emp group by deptno) t
       join salgrade s on (t.avg_sal between s.losal and s.hisal)
         )
    )


    --求平均薪水的等級最低的部門的部門名稱。采用視圖。
    conn sys/sys as sysdba;
    grant create table,create view to scott;

    create view v$_dept_avg_sal_info as
    select deptno,grade,avg_sal from
      (select deptno,grade,avg(sal) avg_sal from emp group by deptno) t
       join salgrade s on (t.avg_sal between s.losal and s.hisal);

    select dname,t1.deptno,grade,avg_sal from
       v$_dept_avg_sal_info t1
       join dept on (t1.deptno = dept.deptno)
    )
    where t1.grade =
    (
     select min(grade) from  v$_dept_avg_sal_info
    )

    -- 比普通員工的最高薪水還要高的經(jīng)理人名稱。
    select ename from emp
    where empno in (select distinct mgr from emp where mgr is not null)
    and sal >
    (
      select max(sal) from emp where empno not in
      (select distinct mgr from emp where mgr is not null)
    )

     

    posted @ 2010-07-06 23:25 斷點 閱讀(534) | 評論 (0)編輯 收藏

    --1992年sql標準,連接條件和過濾條件寫在一起。
    select ename,dname,grade
    from emp e,dept d,salgrade s
    where e.deptno = d.deptno and e.sal between s.losal and s.hisal and job<>'CLERK';

    --1999年sql標準,連接條件和過濾條件分開
    select ename,dname,grade
    from emp e join dept d on (e.deptno = d.deptno)
    join salgrade s on (e.sal between s.losal and s.hisal)
    where ename not like '_A%';

    posted @ 2010-07-06 23:18 斷點 閱讀(190) | 評論 (0)編輯 收藏

    PCIS[2010-07-01 15:56:49,953]>>ERROR>> [HQL查詢記錄出錯:{Hql= from BasCodelistVO t where CRemark='hangyefenlei'  order by C_CDE ;參數(shù)為:args=null;firstRow=0;maxRows=12}] - [com.fwk.dao.BaseDao] -91532 [http-8088-4]  org.springframework.orm.hibernate3.HibernateQueryException: BasCodelistVO is not mapped [ from BasCodelistVO t where CRemark='hangyefenlei'  order by C_CDE ]; nested exception isorg.hibernate.hql.ast.QuerySyntaxException: BasCodelistVO is not mapped [ from BasCodelistVO t whereCRemark='hangyefenlei'  order by C_CDE ]
     at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:642)
     at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
     at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:379)
     at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:339)
     at com.fwk.dao.BaseDao.search(Unknown Source)
     at com.fwk.dao.BaseDao.query(Unknown Source)
     at com.pcis.policy.service.PlyCodelistService.getCTrdCdeList(PlyCodelistService.java:711)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:585)
     at org.apache.commons.beanutils.MethodUtils.invokeExactMethod(MethodUtils.java:334)
     at org.apache.commons.beanutils.MethodUtils.invokeExactMethod(MethodUtils.java:286)
     at com.fwk.facade.BizControllerImpl.handleRequest(Unknown Source)
     at com.fwk.facade.BizControllerPojoAdapter.handleRequest(Unknown Source)
     at com.fwk.action.BaseWebAction.perform(Unknown Source)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:585)
     at org.apache.commons.beanutils.MethodUtils.invokeExactMethod(MethodUtils.java:334)
     at org.apache.commons.beanutils.MethodUtils.invokeExactMethod(MethodUtils.java:286)
     at com.fwk.action.ActionControl.excute(Unknown Source)
     at com.fwk.web.WebControl.a(Unknown Source)
     at com.fwk.web.WebControl.doPost(Unknown Source)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
     at com.fwk.web.filter.DWCallbackFilter.doFilter(Unknown Source)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
     at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:359)
     at org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
     at org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
     at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
     at org.springframework.security.ui.SessionFixationProtectionFilter.doFilterHttp(SessionFixationProtectionFilter.java:67)
     at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
     at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
     at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
     at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
     at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
     at org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)
     at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
     at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
     at org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:116)
     at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
     at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
     at org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91)
     at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
     at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
     at org.springframework.security.ui.basicauth.BasicProcessingFilter.doFilterHttp(BasicProcessingFilter.java:173)
     at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
     at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
     at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:271)
     at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
     at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
     at org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89)
     at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
     at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
     at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
     at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
     at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
     at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:174)
     at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:183)
     at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
     at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:99)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
     at com.iaeap.web.filter.SetCharacterEncodingFilter.doFilter(Unknown Source)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
     at java.lang.Thread.run(Thread.java:595)
    Caused by: org.hibernate.hql.ast.QuerySyntaxException: BasCodelistVO is not mapped [ from BasCodelistVO t where CRemark='hangyefenlei'  order by C_CDE ]
     at org.hibernate.hql.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:158)
     at org.hibernate.hql.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:87)
     at org.hibernate.hql.ast.tree.FromClause.addFromElement(FromClause.java:70)
     at org.hibernate.hql.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:255)
     at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3056)
     at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:2945)
     at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:688)
     at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:544)
     at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
     at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
     at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:228)
     at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:160)
     at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)
     at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)
     at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)
     at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
     at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
     at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
     at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:585)
     at org.springframework.orm.hibernate3.HibernateTemplate$CloseSuppressingInvocationHandler.invoke(HibernateTemplate.java:1244)
     at $Proxy3.createQuery(Unknown Source)
     at com.fwk.dao.BaseDao$1.doInHibernate(Unknown Source)
     at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:374)
     ... 81 more


    原因:主要是我自己定義的BasCodelistVO 沒有在hibernate.cfg.xml中進行管理,加上去即可。
    <?xml version='1.0' encoding='UTF-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
              
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
              
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

    <!-- Generated by MyEclipse Hibernate Tools.                   -->
    <hibernate-configuration>
        
    <session-factory>
            
    <mapping
        resource
    ="com/pcis/prod/vo/PrdProdClauseVO.hbm.xml" />
            
    <mapping
        resource="com/pcis/prod/vo/BasCodelistVO.hbm.xml" />
        </session-factory>
    </hibernate-configuration>

    posted @ 2010-07-04 11:31 斷點 閱讀(5933) | 評論 (1)編輯 收藏

    increase the size of the pool and retry..] - [org.hibernate.util.JDBCExceptionReporter] -950125750 [[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'] 
    PCIS[2010-07-01 12:51:47,456]>> WARN>> [SQL Error: 0, SQLState: null] - [org.hibernate.util.JDBCExceptionReporter] -950125750 [[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'] 
    PCIS[2010-07-01 12:51:47,456]>>ERROR>> [Cannot obtain connection: driverURL = jdbc:weblogic:pool:pcis_ts, props = {EmulateTwoPhaseCommit=false, connectionPoolID=pcis_ts, jdbcTxDataSource=true, LoggingLastResource=false, dataSourceName=pcis_ts}] - [org.hibernate.util.JDBCExceptionReporter] -950125750 [[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'] 
    PCIS[2010-07-01 12:51:47,456]>> WARN>> [SQL Error: 0, SQLState: null] - [org.hibernate.util.JDBCExceptionReporter] -950125750 [[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'] 
    PCIS[2010-07-01 12:51:47,456]>>ERROR>> [weblogic.common.resourcepool.ResourceLimitException: No resources currently available in pool pcis_ts to allocate to applications, please increase the size of the pool and retry..] - [org.hibernate.util.JDBCExceptionReporter] -950125750 [[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'] 
    PCIS[2010-07-01 12:51:47,456]>> WARN>> [SQL Error: 0, SQLState: null] - [org.hibernate.util.JDBCExceptionReporter] -950125750 [[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'] 
    PCIS[2010-07-01 12:51:47,456]>>ERROR>> [Cannot obtain connection: driverURL = jdbc:weblogic:pool:pcis_ts, props = {EmulateTwoPhaseCommit=false, connectionPoolID=pcis_ts, jdbcTxDataSource=true, LoggingLastResource=false, dataSourceName=pcis_ts}] - [org.hibernate.util.JDBCExceptionReporter] -950125750 [[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kerne
    l.Default (self-tuning)']
    [com.pcis.premium.service.PremiumService] -950125750 [[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'] 
    org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: Cannot open connection; uncategorized SQLException for SQL [???]; SQL state [null]; error code [0]; weblogic.common.resourcepool.ResourceLimitException: No resources currently available in pool pcis_ts to allocate to applications, please increase the size of the pool and retry..; nested exception is weblogic.jdbc.extensions.PoolLimitSQLException: weblogic.common.resourcepool.ResourceLimitException: No resources currently available in pool pcis_ts to allocate to applications, please increase the size of the pool and retry..
            at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:124)
            at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:322)
            at org.springframework.orm.hibernate3.HibernateAccessor.convertJdbcAccessException(HibernateAccessor.java:424)
            at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:410)
            at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:379)
            at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:872)
            at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:868)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
            at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:226)
            at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:124)
            at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
            at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
            at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:168)
            at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:183)
            at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
            at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:99)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
            at com.isoftstone.iaeap.web.filter.SetCharacterEncodingFilter.doFilter(Unknown Source)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
            at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3393)
            at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
            at weblogic.security.service.SecurityManager.runAs(Unknown Source)
            at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2140)
            at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2046)
            at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1366)
            at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200)
            at weblogic.work.ExecuteThread.run(ExecuteThread.java:172)
    Caused by: weblogic.jdbc.extensions.PoolLimitSQLException: weblogic.common.resourcepool.ResourceLimitException: No resources currently available in pool pcis_ts to allocate to applications, please increase the size of the pool and retry..
            at weblogic.jdbc.common.internal.JDBCUtil.wrapAndThrowResourceException(JDBCUtil.java:242)
            at weblogic.jdbc.pool.Driver.connect(Driver.java:160)
            at weblogic.jdbc.jts.Driver.getNonTxConnection(Driver.java:642)
            at weblogic.jdbc.jts.Driver.connect(Driver.java:124)
            at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:339)
            at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:82)
            at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)
            at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
            at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
            at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547)
            at org.hibernate.loader.Loader.doQuery(Loader.java:673)
            at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
            at org.hibernate.loader.Loader.doList(Loader.java:2213)
            at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
            at org.hibernate.loader.Loader.list(Loader.java:2099)
            at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
            at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
            at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
            at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
            at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
            at org.springframework.orm.hibernate3.HibernateTemplate$30.doInHibernate(HibernateTemplate.java:881)
            at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:374)
            ... 31 more

    原因:主要是weblogic的連接池已滿,需要重新設(shè)置或者重啟weblogic的AdminServer服務(wù)器進行釋放連接。
    操作:進入weblogic控制臺,選擇:域-->Services-->JDBC-->Data Source-->點擊control-->選中AdminServer,對其重啟即可。

    posted @ 2010-07-04 11:05 斷點 閱讀(5020) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 国产亚洲情侣一区二区无| 亚洲AV无码一区二区大桥未久| 添bbb免费观看高清视频| 最近国语视频在线观看免费播放| 99热在线免费播放| 日本高清免费不卡在线| 亚洲AV午夜成人片| 久久精品电影免费动漫| 亚洲视屏在线观看| 三上悠亚在线观看免费| 亚洲国产精品VA在线观看麻豆| 激情无码亚洲一区二区三区| 999在线视频精品免费播放观看| 亚洲一级Av无码毛片久久精品| 国产成人无码精品久久久免费| 久久亚洲国产欧洲精品一| 99在线热视频只有精品免费| 亚洲国产高清在线精品一区| 香蕉高清免费永久在线视频| 视频免费1区二区三区| 亚洲综合国产一区二区三区| 精品特级一级毛片免费观看| 影音先锋在线免费观看| 免费一级特黄特色大片| 亚洲成av人片天堂网| 91精品免费久久久久久久久| 亚洲国产成人无码AV在线| 在线a毛片免费视频观看| 色多多www视频在线观看免费| 亚洲av之男人的天堂网站| 无码日韩人妻av一区免费| 黄色网页免费观看| 精品亚洲成a人片在线观看少妇| 免费一本色道久久一区| 国产高潮久久免费观看| 亚洲福利电影在线观看| 亚洲av无码国产精品色在线看不卡| 免费在线看污视频| 久久亚洲私人国产精品vA| 女人毛片a级大学毛片免费| 免费人成激情视频在线观看冫|