網頁

2014年3月25日 星期二

HSQLDB使用JDBC建立Column

在初期階段,會因為實務上的需求,尚未十分確定,所以常常會對Column進行建立,修改,刪除等動作,因此需先了解這類的語法,才能即時地修改Table結構,當然你也可以使用GUI來操作,不過當Table數量眾多時,以代碼方式修正,才能有效率地批次修改。

2014年3月24日 星期一

Memory Leak修復Thread

為了增加執行效率,使用Thread是常見的方法,不過建立Thread也是需要花費昂貴的資源,若沒有限制數量的話,很容易就將內存消耗殆盡,又怎能執行原先欲要處理的商業邏輯,所以使用Thread Pool來修復,消耗過多的資源所造成的Memory Leak內存洩漏。

2014年3月22日 星期六

Maven使用Eclipse導入Library

隨著專案的開發,需要使用的Open Source Library會越來越多,而各版本衝突的問題更是屢見不鮮,因此需要個良好的管理方式,來解決這類的問題。


Maven提供了便利的方式,來輔助我們開發系統,pom.xml(Project Object Model),可以讓我們方便設定,在每個<dependency>中要設定的哪些Group Id,Artifact Id等,都可以在 http://mvnrepository.com/ 搜尋,找到後複製貼上到pom.xml即可,很方便就能導入Library

2014年3月21日 星期五

HSQLDB使用JDBC建立Table

DDL(Data Definition Language)是用於定義資料庫的結構與物件的語言,包括內外模式,概念模式及其相互之間的應對,定義資料的完整性,安全控制等。
  1. CREATE
  2. ALTER
  3. DROP

這次Mix使用HSQLDB所提供的JDBC Driver,連接到Database,來使用DDL操作,進行建立Table,修改Table等動作。

2014年3月20日 星期四

Memory Leak修復substring()

Mix經常在使用字串,也知道作字串增刪的時候,不要使用+,-等這類的運算元,而是改用StringBuffer或StringBuilder來處理字串,不過在某些狀況下,還是有可能會造成Memory Leak內存洩漏。


為了觀察GC狀況,Mix在Eclipse -> Install JREs,預設JVM參數,只加上-verbose:gc,不作任何其他的優化,針對1個大字串,長度約1M大小,使用substring()來取2個字元,重複1萬次,來進行測試。

2014年3月17日 星期一

HSQLDB使用GUI建立Table

Database建立完成之後,接著就可以使用HSQLDB本身提供的GUI,來建立Table:Book,首先,Mix先用伺服器模式啟動HSQLDB,這要運行/hsqldb/bin/runServer.bat,再來使用JDBC URL來設定 IP,Port與Database name。


  1. URL:jdbc:hsqldb:hsql://localhost:9001/openyu_java
  2. 預設帳戶:SA
  3. 預設密碼:

2014年3月16日 星期日

HSQLDB啟動多個Database

除此預設的Database外,我們也可以建立1個設定檔,指定Database的相關設定,就可以同時啟動多個Database來供我們測試使用。





Mix建立1個server.properties檔案,並放在/hsqldb/data目錄下,內容如下:

server.port = 9001
server.database.0 = file:../data/openyu_java
server.dbname.0 = openyu_java
#server.database.1 = file:../data/openyu_java2
#server.dbname.1 = openyu_java2
server.silent = true

2014年3月15日 星期六

Commons Lang使用StopWatch

當需要計算特定的method或block所花費的執行時間時,通常可以利用System.currentTimeMillis() ,設定起始及結束時間,兩者相減所得的差異來得知,不過Apache Commons Lang 提供了StopWatch類別,可以更方便地得知詳細資訊。


2014年3月14日 星期五

Commons Lang使用CompareToBuilder

當implement Comparable時,是需要實作compareTo(),Apache Commons Lang 提供了CompareToBuilder類別,能夠快速地實作compareTo(),只要建構CompareToBuilder實例,並append所需要的field,就可以得到結果。


2014年3月13日 星期四

Commons Lang使用ToStringBuilder

Apache Commons Lang 提供ToStringBuilder類別,能夠快速地實作toString(),只要建構ToStringBuilder實例,並append所需要的field,同時還可以選格式,就可以得到不同格式的結果。

2014年3月12日 星期三

Commons Lang使用HashCodeBuilder

當覆寫了equals(),也需一併覆寫hashCode(),Apache Commons Lang 提供了HashCodeBuilder類別,能夠快速地實作hashCode(),建構HashCodeBuilder實例,並append與equals()內相同的field,就可以得到結果。


2014年3月11日 星期二

Commons Lang使用EqualsBuilder

每個物件都有equals()這個方法,它是來自於Object class所定義的,Apache Commons Lang 提供了EqualsBuilder類別,能夠快速地實作equals(),只要建構EqualsBuilder實例,並append所需要的field,就可以得到結果。


2014年3月10日 星期一

HSQLDB建立Database

或許你已習慣使用MySQL,MSSQL,Oracle等這類的Database,不過當我們在開發階段時,對這類環境的架設與調校,可能不是那麼得心應手,再加上資安的考量,很多情況下,開發人員是無法接觸這類環境,這時候我們可以考慮用其他Database開發測試,之後再轉入營運用的環境。


HSQLDB是1個Java開源的關聯式Database,其體積與佔用空間小,而且支援內存運行,不需安裝,只要下載後,解開壓縮檔執行即可,是個在開發階段很方便使用的Database