Time of Update: 2018-12-04
System.exit(0)是將你的整個虛擬機器裡的內容都停掉了 ,而dispose()只是關閉這個視窗,但是並沒有停止整個application exit() 。無論如何,記憶體都釋放了!也就是說連JVM都關閉了,記憶體雷根本不可能還有什麼東西System.exit(0)是正常退出程式,而System.exit(1)或者說非0表示非正常退出程式System.exit(status)不管status為何值都會退出程式。和return
Time of Update: 2018-12-04
mmseg4j是一個比較流行的中文分詞,具體介紹見:http://code.google.com/p/mmseg4j/schema.xml 設定檔:<fieldType name="textComplex" class="solr.TextField" positionIncrementGap="100" > <analyzer> <tokenizer
Time of Update: 2018-12-04
在開發中由於想用多個郵箱賬戶進行登入發送郵件,也就是郵件發送人不同。這一點,開始認為登入賬戶就是寄件者。其實,寄件者可以自己設定。先看一段最簡單的發送文本郵件代碼: SimpleEmail simpleEmail = new SimpleEmail(); simpleEmail.setHostName(Constant.EMAIL_HOST_NAME); simpleEmail.setSmtpPort(25); simpleEmail.
Time of Update: 2018-12-04
在項目中使用Hibernate架構,非常關鍵的一點就是要瞭解Hibernate的核心介面。Hibernate介面位於業務層和持久化層,。Hibernate的核心介面一共有5個,分別為:Session、SessionFactory、Transaction、Query和Configuration。這5個核心介面在任何開發中都會用到。通過這些介面,不僅可以對持久化對象進行存取,還能夠進行事務控制。下面對這五的核心介面分別加以介紹。 ·Session介面:Session介面負責執行被持久化對象的CRU
Time of Update: 2018-12-04
在資料庫中比較常見一對一、一對多的資料,本文將敘述如何用多種方式實現這些關聯關係,並對這些方法進行比對和分析。 例子假設的情境如下: 有兩張表:product(產品)、category(種類),一個產品只屬於某一個種類,但某一個種類下可以有多個產品。一對一 情境: 查詢某個產品,並列示出該產品所屬的種類。 實現一對一的關係有兩種方式。 方式一:<sqlMap namespace="one-to-one"><resultMap
Time of Update: 2018-12-04
1、實體類對應表;實體類中的普通屬性對應表欄位。2、實體類的設計原則: 2.1 實現一個預設的(即無參數的)構造方法(必須)。 2.2 提供一個識別屬性(identifier property)(可選)。 2.3 使用非final的類(可選),如果使用一個沒有實現任何介面的final類,這樣將無法使用消極式載入。 2.4 為持久化欄位生命訪問器和是否可變的標誌(可選)。3、主鍵建置原則 uuid、native、assigned、increment(不適用叢集環境)、
Time of Update: 2018-12-04
目前,oracle採用的是CBR最佳化器,所以在有些時候,機器會按照自己的意願去執行sql,當然oracle是根據本身的一些資訊來做決定的,比如:統計資訊。但有些時候,機器並不一定會按照我們預想的那樣去執行。 今天就遇到這樣的一個問題,在查看某一段時間內的出運明細時,執行時間較長。sql如下:select * from C1.T_DECLAREDETAIL t1 where t1.commitdate >= to_date('2013-01-01',
Time of Update: 2018-12-04
重點:關聯關係(一對一、一對多等)、消極式載入、緩衝 1、載入資料hibernate:get不支援消極式載入、load支援消極式載入。載入資料時,如果沒有匹配的資料,get返回null,load則拋出以異常。可以對查詢對象進行消極式載入。ibatis:也支援消極式載入。查詢結果對象中的某個欄位通過子查詢擷取值時,會進行消極式載入。如果不採用CGLIB,僅支援Collection對象的消極式載入;如果採用CGLIB,除了Collection類型,還支援其他類型。
Time of Update: 2018-12-04
最近開發中遇到resin服務的web應用響應緩慢,經過排除,發現是resin記憶體配置太小,http.sh檔案內容如下:args="-Dfile.encoding=UTF-8 -J-server -Xms8000M -Xmx8000M -Xmn2000M -J-Xss256K -J-XX:ThreadStackSize=256 -J-XX:StackShadowPages後面省略 主要參數: -Xms:初始記憶體大小-Xmx: 最大記憶體大小-Xmn:
Time of Update: 2018-12-04
在ibatis中使用命名空間,首先需要在設定檔中進行如下設定:<settings useStatementNamespaces="true" /> 然後在各個mapping設定檔中,設定namespace,如下:<sqlMap namespace="one-to-one"> 另外,不管是在mapping設定檔還是在程式中調用,都需要指定namespace首碼,否則會拋出異常。 注意:一旦在設定檔中設定了使用命名空間,則所有地方都有註明命名空間。
Time of Update: 2018-12-04
在第一章中,我們講到在ActionServlet初始化時,不同的模組會初始化不同的ModuleConfig對象。但struts1到底是如何初始化ModuleConfig對象的,當時並沒有詳細敘述。這些內容將是本章的重點。
Time of Update: 2018-12-04
1、盡量縮小資料範圍。2、能一個sql解決的,堅決不用兩條sql。利用case when或decode。select month_id, corppkno, sum(exportSum_new) exportSum_new, sum(exportSum_newLy) exportSum_newLy, sum(exportSum_Support) exportSum_Support, sum(exportSum_SupportLy)
Time of Update: 2018-12-04
Tomcat配置串連池的問題。web工程下的,WEB-INF下的web.xml添加這一段: <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/mysqlx</res-ref-name> <res-type>javax.sql.DataSource</res-type>
Time of Update: 2018-12-04
前一章寫struts設定檔的解析感覺有點太細了,且由於筆頭功夫稍欠火候,感覺寫得不夠徹底。這章從宏觀上對解析做個總結,希望能夠先從整體上熟悉它。 之前也提到,ActionServlet在解析設定檔時是按照模組來進行的,對每個模組都會有一個ModuleConfig對象。這個對象是非常重要的,struts中的配置資訊都可以從中獲得,而且在之後處理使用者請求時有很大的用武之地。ModuleConfig其實是一個介面,在Struts1中有一個預設的實作類別ModuleConfigImpl。
Time of Update: 2018-12-04
系統特性與web安全 文/安全天使·SuperHei 一、WINDOWS系統 1、windows對../的支援 特性:win系統下可以用../進行跨目錄操作 利用:web入侵中進行跨目錄操作時,在web程式過濾了/的情況下,我們可以通過../突破。 執行個體:MolyX
Time of Update: 2018-12-04
我們要做到不但會寫SQL,還要做到寫出效能優良的SQL,以下為筆者學習、摘錄、並匯總部分資料與大家分享!(1) 選擇最有效率的表名順序(只在基於規則的最佳化器中有效):ORACLE 的解析器按照從右至左的順序處理FROM子句中的表名,FROM子句中寫在最後的表(基礎資料表 driving table)將被最先處理,在FROM子句中包含多個表的情況下,你必須選擇記錄條數最少的表作為基礎資料表。如果有3個以上的表串連查詢, 那就需要選擇交叉表(intersection table)作為基礎資料表,
Time of Update: 2018-12-04
文章目錄 initModuleMessageResources()initModuleDataSources()initModulePlugIns()moduleConfig.freeze() 前幾章也提到了,struts1對每個模組都會進行初始化,每次初始化都執行如下方法塊: ModuleConfig moduleConfig = initModuleConfig("", config);
Time of Update: 2018-12-04
File f = new File("d:\\ibatis.log"); File f1 = new File("d:\\ibatis2.log"); byte b[] = new byte[1024]; int l = 0; char c[] = new char[1024]; String str = ""; try { /** *
Time of Update: 2018-12-04
wait:1、屬於Object的本地方法。2、暫停當前線程,並釋放鎖。3、調用notify()或notifyAll()方法喚醒線程。sleep:1、Thread類的靜態方法。2、當前線程休眠,但不釋放鎖。3、其他線程可以繼續執行,無論該線程優先順序高與否。4、休眠一段時間後,自動執行。yield:1、Thread類的靜態方法。2、暗示具有相同優先順序的其他線程可以使用CPU,運行。3、沒有任何機制保證當前線程會暫停運行並讓出CPU。
Time of Update: 2018-12-04
DispatchAction,LookupDispatchAction,MappingDispatchAction1) DispatchAction就是在struts-config中用parameter參數配置一個表單欄位名,這個欄位的值就是最終替代execute被調用的方法.