Derby(Java DB)簡介 ZZ

爲了徹底搞清JAVA的類加載機制,有必要研究一個JDBC的實現代碼,準備從Derby入手。

Java6開始,SunJDK就附帶了一個輕量級的數據庫,名字叫做Derby。也就是Java DB,由IBM2004年捐給Apache開源項目組。Derby是一個事務關係型的數據庫管理系統,體積非常的小,所有的加起來大約2M左右吧。在最新的Java JDK6發佈版裏,Derby默認安裝在%JAVA_HOME%/db目錄下,包括核心庫,演示程序以及一個例子數據庫。Derby的優勢在於體積小,管理操作簡單。對於開發者來說,你可以輕易地用代碼來創建和使用數據庫,進行所有的數據庫操作也是相當方便的。在系統的開發階段使用Derby,可以加快開發速度。加上Java JDBC的跨數據庫平臺性,要轉換數據庫實現也是很容易的。

 

       下面就來講講Derby的基本使用:

       Derby提供了一個命令行工具:ij  表示交互式JDBC腳本工具。通過ij,我們可以連接到數據庫,對數據庫進行各種操作。要使用ij工具,你必須把下面兩個jar文件放到你係統的CLASSPATH中,關於CLASSPATH的設置,你可不要告訴我你不會啊!

        set classpath=%JAVA_HOME%/db/lib/derby.jar;%JAVA_HOME%/db/lib/derbytools.jar;

 

其中,derby.jar包含JDBC驅動,derbytools.jarij工具本身。設置好CLASSPATH後,我們就可以輸入下面的命令來使用ij工具,這裏我們以Derby自帶的演示數據庫toursdb爲例:

E:/我的文檔>java org.apache.derby.tools.ij

ij 版本 10.2

ij> connect ‘jdbc:derby:c:/Program Files/Java/jdk1.6.0/db/demo/databases/toursdb’;

ij> SELECT * FROM countries WHERE country LIKE 'C%';

COUNTRY                   |C&|REGION

--------------------------------------------------------

Cambodia                  |KH|Asia

Cameroon                  |CM|Africa

Canada                    |CA|North America

Cape Verde                |CV|Africa

Chile                     |CL|South America

China                     |CN|Asia

Colombia                  |CO|South America

Congo                     |CG|Africa

Costa Rica                |CR|Central America

Cote d'Ivoire             |CI|Africa

Cuba                      |CU|Caribbean

Czech Republic            |CZ|Europe

 

已選擇 12

ij>exit;

 

這樣就退出了ij,下面講一下新建數據庫和表的操作。要創建數據庫,我們需要給connect命令帶上一個”create=true”參數。如果之前已經連上一個已存在的數據庫,那應該先使用disconnect命令斷開連接:

ij> connect 'jdbc:derby:C:/Program Files/Java/jdk1.6.0/db/demo/databases/toursdb';

ij> disconnect;

ij> connect 'jdbc:derby:TestDB;create=true';

ij> CREATE TABLE book(title VARCHAR(50), isbn CHAR(13), author VARCHAR(50));

已插入/更新/刪除 0

ij> INSERT INTO book VALUES('Thinking in Java', '1234-37-134-7', 'Bruce Eckel');

已插入/更新/刪除一行

ij> INSERT INTO book VALUES('Core Java', '8888-37-134-8', 'Cay Hostman');

已插入/更新/刪除一行

ij> SELECT * FROM book;

TITLE                                             |ISBN         |AUTHOR

 

--------------------------------------------------------------------------------

-----------------------------------

Thinking in Java                                  |1234-37-134-7|Bruce Eckel

 

Core Java                                         |8888-37-134-8|Cay Hostman

 

已選擇 2

ij>exit;

 

使用connect 'jdbc:derby:TestDB;create=true';創建新數據庫TestDBDerby會在當前目錄(你輸入java org.apache.derby.tools.ij時所在的目錄)創建一個數據庫,子目錄名就是數據庫的名稱。同時在當前目錄還會創建一個derby.log文件,這是一個錯誤日誌文件,記錄了異常情況下的一些信息。TestDB目錄下的文件,保存的就是整個數據庫的信息了,我們絕不應該直接修改這些文件!

 

如上面所示,Derby提供的命令行工具很容易使用。運行命令後,使用connect來連接數據庫,之後就可以使用SQL語言來對數據庫進行常用的操作了。Derby實現了SQL-92的核心子集,同時也實現了SQL-99的部分特性。關於Derby具體的使用和操作,請參考Apache網站的在線文檔:

Getting started: http://db.apache.org/derby/docs/10.2/getstart/

Derby Reference Manual: http://db.apache.org/derby/docs/10.2/ref/

Derby Developer's Guide: http://db.apache.org/derby/docs/10.2/devguide/

 

好了,關於Derby的使用就寫到這裏吧!我打算接下來再寫一篇關於JDBC4的文章,到時會再次使用到Derby數據庫,也會更加詳細的講解Derby的使用!

 

最後提一下,之前我一直是使用HSQLDB的。HSQLDB也是一個開源的小型數據庫,功能強大且使用方便,關於兩者的優劣對比,我並沒有做過,也沒有說這個話的能力。至於使用哪個,選擇權完全在你的手上。不過既然Java6Derby包含在發佈版裏,那估計今後Derby也會被更多人瞭解和使用吧。

本文參考了:Wrox.Professional.Java.JDK.6.Edition.Jan.2007一書第一部分第一章

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章