Derby

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 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 通用數據。

主要特點

程式小巧,基礎引擎和內嵌的JDBC驅動總共大約2MB。
基於Java、JDBC和SQL標準。
提供內嵌的JDBC驅動,你可把Derby嵌入到基於Java的應用程式中。
支持客戶端/伺服器模式。
安裝、布置和使用簡單。

使用技巧

配置環境變數

建立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

創建資料庫

打開命令行,進入想要放置資料庫的目錄,我的是: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;

在程式中使用

在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,完成了。
運行後控制台輸出如下信息:
LoadedtheappropriatedriverstartingE:\Java\Joy\derby\Derby_data\firstdb1Hotpepper

相關詞條

熱門詞條

聯絡我們