Derby資料庫是由Apache下的一個開源的DB項目,與其它DB相比,它有如下的優點:
1. 完全用Java實現
2. 支援JDBC及SQL標準
3. 全部檔案只有2M左右
4. 提供嵌入式的支援,可以簡單地嵌入到其它的Java項目
5. 同時提供網路資料庫的功能,可以用C/S方式訪問
本篇將對Derby的使用方式進行簡單的介紹:
一、下載
Derby項目的首頁為:http://db.apache.org/derby/index.html,大家可以在該網站找到下載路徑及相關文檔,現在的最新版本為10.5.3.0。
二、安裝
Derby下載檔案為一個Zip壓縮檔,只需將該壓縮檔解壓到一個目錄(這裡用DERBY_HOME代替)即可。
三、本地訪問
Derby可以作為一個本機資料庫使用,這點就像是Access,下面將介紹如何使用Derby提供的ij工具來建立一個新的DB。
建立一個demo目錄,在demo目錄下運行:
DERBY_HOME/bin/ij
然後輸入
connect 'jdbc:derby:myDemo;create=true';
建立一個新的DB名字為myDemo,儲存在目前的目錄,關於ij的用法可以輸入help;查看相關協助。
四、網路訪問
在demo目錄下,運行
java -jar DERBY_HOME/lib/derbyrun.jar server start
這時,Derby伺服器已啟動成功,預設的連接埠為1527,開啟另外一個Console,運行
ij<br />connect 'jdbc:derby://localhost:1527/myDemo';
則可成功的串連到剛才建立的myDemo資料庫,為便於下面測試,運行以下語句建立一個test表,並插入兩筆資料。
create table test(id int, name varchar(20));<br />insert into test values(0, 'Jack');<br />insert into test values(1, 'Tom');
五、Java代碼訪問
建立Java檔案,代碼如下:
import java.sql.Connection;<br />import java.sql.DriverManager;<br />import java.sql.ResultSet;<br />import java.sql.SQLException;<br />import java.sql.Statement;</p><p>public class DerbyDemo {</p><p>static String EMBEDED_DRIVER = "org.apache.derby.jdbc.EmbeddedDriver";<br />static String NET_DRIVER = "org.apache.derby.jdbc.ClientDriver";</p><p>static String DB_NAME = "myDemo";<br />static String HOST_URL = "//localhost:1527/";</p><p>/**<br /> * @param args<br /> */<br />public static void main(String[] args) {<br />// TODO Auto-generated method stub<br />Connection conn = null;<br />Statement stmt = null;<br />ResultSet rs = null;<br />try {<br />conn = getNetwrokConnect();<br />stmt = conn.createStatement();<br />rs = stmt.executeQuery("select * from test");<br />while (rs != null && rs.next()) {<br />System.out.println(rs.getString(2));<br />}<br />} catch (Exception ex) {<br />System.out.println(ex.getMessage());<br />} finally {<br />try {<br />rs.close();<br />} catch (Exception e) {<br />}<br />rs = null;<br />try {<br />stmt.close();<br />} catch (Exception e) {<br />}<br />stmt = null;<br />try {<br />conn.close();<br />} catch (Exception e) {<br />}<br />conn = null;<br />}<br />}</p><p>public static Connection getEmbededConnect() {<br />try {<br />Class.forName(EMBEDED_DRIVER);<br />} catch (ClassNotFoundException e) {<br />// TODO Auto-generated catch block<br />throw new RuntimeException(e.getMessage());<br />}<br />try {<br />return DriverManager.getConnection("jdbc:derby:" + DB_NAME);<br />} catch (SQLException e) {<br />// TODO Auto-generated catch block<br />throw new RuntimeException(e.getMessage());<br />}<br />}</p><p>public static Connection getNetwrokConnect() {<br />try {<br />Class.forName(NET_DRIVER);<br />} catch (ClassNotFoundException e) {<br />// TODO Auto-generated catch block<br />throw new RuntimeException(e.getMessage());<br />}<br />try {<br />return DriverManager.getConnection("jdbc:derby:" + HOST_URL<br />+ DB_NAME);<br />} catch (SQLException e) {<br />// TODO Auto-generated catch block<br />throw new RuntimeException(e.getMessage());<br />}<br />}</p><p>}<br />
將DerbyDemo儲存到demo目錄下,運行如下代碼編譯並運行即可通過網路訪問(需按照第四步啟動伺服器)
javac -cp DERBY_HOME/lib/derbyclient.jar DerbyDemo.java<br />java -cp .;DERBY_HOME/lib/derbyclient.jar DerbyDemo
使用嵌入式訪問只需將main中的getNetwrokConnect改為getEmbededConnect即可。