-
Derby
鎖定
Apache Derby是一個完全用java編寫的數據庫,Derby是一個Open source的產品,基於Apache License 2.0分發。
Apache Derby非常小巧,核心部分derby.jar只有2M,所以既可以做為單獨的數據庫服務器使用,也可以內嵌在應用程序中使用。Cognos 8 BI的Content Store默認就是使用的Derby數據庫,可以在Cognos8的安裝目錄下看到一個叫derby10.1.2.1的目錄,就是內嵌的10.1.2.1 版本的derby。
- 中文名
- Derby
- 含 義
- java編寫的數據庫
- 目 標
- 開放源碼數據庫
- 主要特點
- 程序小巧
- 基 於
- Apache License 2.0
- 作 用
- 可以做為單獨的數據庫服務器使用,也可以內嵌在應用程序中使用
Derby發展歷史
Apache Derby 項目的目標是構建一個完全用 Java 編程語言編寫的、易於使用卻適合大多數應用程序的開放源碼數據庫。可以想像,開發一個數據庫並不簡單,Apache Derby 數據庫也不例外(因為它是個開放源碼軟件,所以您可以自行查看它)。但是 Derby 項目並不是從零開始的。回到 1996 年,一個叫做 Cloudscape, Inc 的新公司成立了,公司的目標是構建一個用 Java 語言編寫的數據庫服務器。公司的第一個發行版在一年之後推出,後來產品的名稱變成 Cloudscape。1999 年,Cloudscape, Inc. 被大型數據庫廠商 Informix Software, Inc. 收購。
Informix Software 在 2001 年又被 IBM 收購,然後 IBM Cloudscape™ 數據庫系統在許多 IBM 的產品中被用作內嵌的數據庫引擎。2004 年 4 月,IBM 把 Cloudscape 數據庫軟件贈送給 Apache 軟件基金會,從此 Apache Derby 項目誕生了。
這時,Cloudscape 數據庫幾乎已經有了 50 萬行 Java 代碼,所以花了一些時間才正確地把它轉換成 Apache Derby 項目。經過孵化期之後,Derby 於 2005 年 7 月正式發佈。所以雖然看起來像是新事物,但是 Derby 背後已經開發了幾乎十年了。
IBM 繼續管理 Cloudscape 數據庫,該數據庫是從 Apache Derby 源代碼構建的。IBM 把 Cloudscape 數據庫作為免費下載提供,而且為需要增強信心的客户提供收費的諮詢服務。另外,Sun Microsystems 已經宣佈它將包含一個修補過的 Apache Derby 版本作為它的 Java 數據庫產品。來自 IBM 和 Sun 的強大投入,強化了 Apache Derby 數據庫的光明前景。Derby 數據庫也符合許多數據庫標準,例如 SQL-92 和 JDBC 3.0 版本,所以開始用 Derby 數據庫系統開發的應用程序可以容易地移植到其他數據庫系統,例如 IBM DB2 通用數據。
Derby主要特點
程序小巧,基礎引擎和內嵌的JDBC驅動總共大約2MB。
基於Java、JDBC和SQL標準。
提供內嵌的JDBC驅動,你可把Derby嵌入到基於Java的應用程序中。
支持客户端/服務器模式。
安裝、佈置和使用簡單。
Derby使用技巧
Derby配置環境變量
建立DERBY_HOME,值:E:\Java\Joy\derby\db- derby-10.5.3.0-bin\db-derby-10.5.3.0-bin
在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
Derby創建數據庫
打開命令行,進入想要放置數據庫的目錄,我的是:E:\Java\Joy \derby\Derby_data
然後輸入ij
將會看到:
ij 版本 10.5
ij>
接下來就可以創建數據庫了。
例:
1、 創建firstdb數據庫:
ij> connect 'jdbc:derby:firstdb;create=true';
連接firstdb數據庫:
ij> connect 'jdbc:derby:firstdb';
查詢數據庫等操作,只需要輸入相應的Sql語句即可。
2、創建一個table:
create table firsttable(id int primary key, name varchar(20));
3、插入數據:
insert into firsttable values(1, 'Hotpepper');
在命令行測試一下:
select * from firsttable;
結果如下:
ID |NAME
——————————–
1 |Hotpepper
斷開連接:
ij> disconnect;
退出ij:
ij> exit;
Derby在程序中使用
在Java程序中使用Derby
首先要把相關的Derby jar包加進來(Build Path)。
如果是Maven工程,加入以下依賴
<dependency> <groupId>org.apache.derby</groupId> <artifactId>derby</artifactId> <version>10.5.3.0</version> </dependency>
把derby-10.5.3.0.jar加進來,如果沒有加進來會出現 “java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver”錯誤
好了,下面寫JAVA代碼進行測試:
importjava.sql.Connection; importjava.sql.DriverManager; importjava.sql.ResultSet; importjava.sql.SQLException; importjava.sql.Statement; publicclassTest{ privatestaticStringdriver="org.apache.derby.jdbc.EmbeddedDriver"; privatestaticStringprotocol="jdbc:derby:"; StringdbName="E:\\Java\\Joy\\derby\\Derby_data\\firstdb"; publicstaticvoidloadDriver(){ try{ Class.forName(driver).newInstance(); System.out.println("Loadedtheappropriatedriver"); }catch(Exceptione){ e.printStackTrace(); } } publicvoiddoIt(){ Connectionconn=null; Statements=null; ResultSetrs=null; System.out.println("starting"); try{ conn=DriverManager.getConnection(protocol+dbName+";create=true"); }catch(SQLExceptione){ e.printStackTrace(); } System.out.println(dbName); try{ s=conn.createStatement(); rs=s.executeQuery("select * from firsttable"); while(rs.next()){ System.out.println(rs.getInt(1)); System.out.println(rs.getString(2)); } }catch(SQLExceptione1){ e1.printStackTrace(); } try{ conn.close(); conn=null; s.close(); s=null; rs.close(); rs=null; }catch(Exceptione){ e.printStackTrace(); } } publicstaticvoidmain(String[]args){ Testt=newTest(); loadDriver(); t.doIt(); } }
OK,完成了。
運行後控制枱輸出如下信息:
Loadedtheappropriatedriver starting E:\Java\Joy\derby\Derby_data\firstdb 1 Hotpepper
- 參考資料
-
- 1. Apache Derby .開源黃頁[引用日期2013-07-10]