一、Derby介紹:Derby資料庫是一個純用Java實作的記憶體資料庫,屬于Apache的一個開源項目。由于是用Java實作的,是以可以在任何平台上運作;另外一個特點是體積小,免安裝,隻需要幾個小jar包就可以運作了。
Derby資料庫有兩種運作模式:
1) 内嵌模式。Derby資料庫與應用程式共享同一個JVM,通常由應用程式負責啟動和停止,對除啟動它的應用程式外的其它應用程式不可見,即其它應用程式不可通路它;
2) 網絡模式。Derby資料庫獨占一個JVM,做為伺服器上的一個獨立程序運作。在這種模式下,允許有多個應用程式來通路同一個Derby資料庫。
在Apache上,Derby有4種釋出包,這裡以bin釋出包為例。bin釋出包中含有包含了執行derby資料庫工具、設定derby資料庫環境的腳本檔案、Demo、jar檔案等。
二、Derby安裝:需要在Apache Derby官網上下載下傳Derby得壓縮包,然後解壓,得到以下幾個目錄檔案夾:
1) bin目錄,包含了一些工具腳本和裝置環境的腳本;
2) demo目錄,包含了一些執行個體程式;
3) docs目錄,包含了Derby的文檔;
4) javadoc目錄,包含了Derby的API文檔;
5) lib目錄,包含了Derby資料庫的jar檔案;
6) test目錄,Derby的一些測試jar包;
在解壓好你的Derby之後,就需要開始配置了(也就是安裝,由于Derby下載下傳解壓之後,沒有可執行的比如.exe或者.mis可執行檔案,是以Derby隻需要手動配置系統的環境變量即可),比如,我将下載下傳的Derby解壓到E:java/Derby目錄下,就可以進行簡單的配置了(可以在cmd指令行裡面配置,也可以通過界面配置環境變量)。
1、通過界面配置環境變量:
建立DERBY_HOME,值:E:java/Derby
在Path加入:%DERBY_HOME%\bin
在CLASSPATH加入:%DERBY_HOME%\lib\derby.jar;%DERBY_HOME%\lib\derbyclient.jar;%DERBY_HOME%\lib\derbytools.jar;%DERBY_HOME%\lib\derbynet.jar
2、通過指令行設定:
set DERBY_HOME=E:java/Derby
将DERBY_HOME\bin目錄添加到PATH環境變量中:
set path=%DERBY_HOME%\bin;%PATH%
這樣可以簡化你稍後在指令行中的輸入,否則你每次都必須使用腳本的全路徑或者你必須到DERBY_HOME\bin目錄中才能執行腳本。
最後需要Derby的jar包添加到classpath環境變量中,在DERBY_HOME%\bin目錄中提供了幾個腳本用于設定classpath,以簡化你手工在classpath中添加jar包的麻煩:1) setEmbeddedCP。當使用内嵌模式來運作Derby時,可以使用該腳本來設定。該腳本将derby.jar和derbytools.jar添加到環境變量中;2) setNetworkServerCP。當使用網絡模式來運作Derby時,用該腳本來設定Derby服務端的classpath變量。該腳本将derbynet.jar添加到環境變量中;3) setNetworkClientCP。當使用網絡模式來運作Derby時,用該腳本來設定Derby用戶端的classpath變量。該腳本将derbyclient.jar和derbytools.jar添加到環境變量中。
3、檢視是不是設定成功:
在指令行中,輸入sysinfo檢視derby是不是正确配置,如果配置成功,則會出現如下的部分資訊:
-------- Derby 資訊 --------
E:\JavaDataBase\db-derby-10.10.1.1-bin\lib\derby.jar] 10.10.1.1 - (1458268)
E:\JavaDataBase\db-derby-10.10.1.1-bin\lib\derbytools.jar] 10.10.1.1 - (1458268
E:\JavaDataBase\db-derby-10.10.1.1-bin\lib\derbynet.jar] 10.10.1.1 - (1458268)
E:\JavaDataBase\db-derby-10.10.1.1-bin\lib\derbyclient.jar] 10.10.1.1 - (145826
到此,derby資料庫就基本安裝成功。
三、derby的使用:
a:這裡我将自己的資料庫建立在E:\JavaDataBase\Data下。
1、打開資料連接配接:
我們跳轉到E:\JavaDataBase\Data這個目錄下,輸入ij,将會進入connect 'jdbc:derby:Stu;create=true';(執行這個指令,将會檢查你是不是又Stu這個資料庫,如果沒有,就會自動建立)
執行connect 'jdbc:derby:Stu';将會在有這個資料庫的情況下,會與Stu這個資料庫建立連接配接。不會自動建立。
2、建表:在建立了資料庫之後,我們開始建立Stutable這個學生表:create table Stutable(id int primary key,name varchar(20));建立一個表;(也可以将這些增加删除修改的指令些在一個.sql檔案裡面,然後通過run 'sql檔案全路徑'指令運作)
3、插入資料:insert into Stutable values(1,'張三');
4、檢視資料:select * from Stutable;
5、修改資料:update Stutable set name='李四' where id=1;
6、删除資料:delete from stutable where id=1;
7、斷開連接配接:disconnect;
8、退出ij:exit;
b:啟動derby網絡資料庫。
與上述内嵌模式的連接配接啟動方式差不多,首先,運作Derby的bin檔案夾下的startNetworkServer來啟動網絡資料庫。
1、連接配接網絡資料庫:與内嵌資料庫連接配接幾乎一樣,connect 'jdbc:derby://loalhost:1527/資料庫名;create=true';
2、其餘的操作就和内嵌的資料庫操作一樣。
四、在java中怎麼使用連接配接
首先要導入Derby的jar包:derby.jar
1、 在Java應用程式中通路Derby資料庫
使用Java代碼通路Derby資料庫與通路其它資料庫的差別如下:
1) JDBC驅動的不同;
2) 資料庫連接配接URL的不同;
3) 在通路内嵌模式資料庫時,需要顯示關閉資料庫。
下面分别執行個體通路内嵌模式和網絡模式Derby資料庫的代碼
1) 通路内嵌模式Derby資料庫
String driver = “org.apache.derby.jdbc.EmbeddedDriver”;
String url = “jdbc:derby:firstdb;create=true”;
Connection conn;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url);
}catch(Exception e) {
……
}finally {
DriverManager.getConnection("jdbc:derby:;shutdown=true");
}
建立好連接配接後,其它的資料操作,如查詢、更新資料都和其它資料庫一樣,這裡不詳述。有一點需要注意,通過Java應用程式通路内嵌模式Derby資料庫時,應用程式有責任需要在程式結束時關閉Derby資料庫,如上面代碼finally中的
shutdown參數用于關閉Derby資料庫,如果url中指定了資料庫命,則隻會關閉指定的資料庫,而不會關閉整個Derby資料庫。資料庫關閉成功時,Derby會抛出一個錯誤碼為XJ015和一個08006的異常表示關閉成功,應用程式可以不處理這兩個異常。
2) 通路網絡模式Derby資料庫
網絡模式和内嵌模式的不同出在于:
A. 資料庫連接配接URL的不同;
B. 應用程式退出時無效關閉Derby資料庫;
C. 資料庫驅動的不同;
String driver = “org.apache.derby.jdbc.ClientDriver”;
String url = “jdbc:derby: //localhost:1527/firstdb;create=true”;
由于網絡模式下,Derby資料庫做為一個獨立運作的資料庫,可以被多個應用程式所通路,是以應用程式在運作結束時不應該關閉Derby資料庫。
2、 使用derbyrun.jar
通過derbyrun.jar也可以使用上面提到的sysinfo、ij、dblook三個腳本的功能,在使用derbyrun.jar前,除了DERBY_HOME環境變量外,你必須顯示設定好classpath環境變量,可以通過上面提到的setEmbeddedCP、setNetworkServerCP、setNetworkClientCP幾個腳本來設定,具體使用哪個腳本取決于你如何使用Derby資料庫。
可以通過java –jar %DERBY_HOME%\lib\ derbyrun.jar來運作derbyrun中的工具:
1) 使用sysinfo。java –jar %DERBY_HOME%\lib\ derbyrun.jar sysinfo
2) 使用ij。java –jar %DERBY_HOME%\lib\ derbyrun.jar ij
3) 使用dblook。java –jar %DERBY_HOME%\lib\ derbyrun.jar dblook