德比
資料庫管理系統
Derby是Apache一個開源的、100% Java編寫的、與平台無關的、易管理的關係資料庫管理系統。
Derby為用戶提供了輕量的標準資料庫引擎,它可以緊密的嵌入到任何基於Java的解決方案中。Derby確保數據完整性,並提供負責的事務處理操作。默認的配置中不包含任何獨立的資料庫伺服器。同時,Derby 的安裝過程非常簡單,只需要將其 .jar 文件複製到系統中並為您的項目添加該 .jar 文件即可。
Derby擁有一個令人驚奇的特性列表。它可以支持關係資料庫中的所有企業級的特性,包括崩潰恢復、事務回滾和提交、行/表級鎖、視圖、主鍵/外鍵約束、觸發器、子查詢表達式,等等。一部分的列表特性使Derby從其他的Java 關係資料庫管理系統中分離出來。
Derby可以有兩種部署方式:
嵌入式:Derby被單個用戶的Java應用程序使用,在這種模式下,Derby和應用程序運行在同一個JVM中。Derby對於終端用戶幾乎是透明的,因為它的啟動和終止都是由應用程序來控制,而不需要任何的管理。
伺服器模式:Derby由應用程序啟動,此時通過用戶可以通過網路連接。在這種模式下,Derby運行在伺服器主機的JVM中。其他JVM的應用程序通過連接伺服器來訪問資料庫。
Derby資料庫是一個純用Java實現的內存資料庫,屬於Apache的一個開源項目。由於是用Java實現的,所以可以在任何平台上運行;另外一個特點是體積小,免安裝,只需要幾個小jar包就可以運行了。
Derby資料庫入門
1,下載並安裝Derby:
下載地址:,下載最新版本。
我用的是10.5.3.0。
解壓縮到任意文件夾,我的是:E:\Java\Joy\derby
2,配置環境變數:
建立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
3,測試看看Derby安裝成功沒有
開始—Run—CMD
運行 sysinfo
如果安裝成功,將會看到相關信息,下面是截取的部分信息。
——— Derby 信息 ——–
JRE – JDBC: Java SE 6 – JDBC 4.0
[E:\Java\Joy\derby\db-derby-10.5.3.0-bin\db-derby-10.5.3.0-bin\lib\derby.jar] 10
.5.3.0 – (802917)
[E:\Java\Joy\derby\db-derby-10.5.3.0-bin\db-derby-10.5.3.0-bin\lib\derbytools.ja
r] 10.5.3.0 – (802917)
[E:\Java\Joy\derby\db-derby-10.5.3.0-bin\db-derby-10.5.3.0-bin\lib\derbynet.jar]
10.5.3.0 – (802917)
[E:\Java\Joy\derby\db-derby-10.5.3.0-bin\db-derby-10.5.3.0-bin\lib\derbyclient.j
ar] 10.5.3.0 – (802917)
4,創建和使用資料庫
打開命令行,進入想要放置資料庫的目錄,我的是:E:\Java\Joy \derby\Derby_data
然後輸入ij
將會看到:
ij 版本 10.5
ij>
接下來就可以創建資料庫了。
例:
創建firstdb資料庫:
ij> connect ‘jdbc:derby:firstdb;create=true’;
連接firstdb資料庫:
ij> connect ‘jdbc:derby:firstdb’;
查詢資料庫等操作,只需要輸入相應的Sql語句即可。
創建一個table:
create table firsttable(id int primary key, name varchar(20));
插入數據:
insert into firsttable values(1, ‘Hotpepper’);
在命令行測試一下:
select * from firsttable;
結果如下:
ID |NAME
——————————–
1 |Hotpepper
其它命令
斷開連接:
ij> disconnect;
退出ij:
ij> exit;
5,在Java程序中使用Derby
首先要把相關的Derby jar包加進來(Build Path)。
把derby.jar加進來,如果沒有加進來會出現“java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver”錯誤
好了,下面寫JAVA代碼進行測試:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Test {
private static String driver = “org.apache.derby.jdbc.EmbeddedDriver”;
private static String protocol = “jdbc:derby:”;
String dbName = “E:\\Java\\Joy\\derby\\Derby_data\\firstdb”;
static void loadDriver() {
try {
Class.forName(driver).newInstance();
System.out.println(“Loaded the appropriate driver”);
} catch (Exception e) {
e.printStackTrace();
}
}
public void doIt() {
Connection conn = null;
Statement s = null;
ResultSet rs = null;
System.out.println(“starting”);
try {
conn = DriverManager.getConnection(protocol + dbName
+ “;create=true”);
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println(“Connected to and created database ” + 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 (SQLException e1) {
e1.printStackTrace();
}
try {
conn.close();
conn = null;
s.close();
s = null;
rs.close();
rs = null;
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Test t = new Test();
t.loadDriver();
t.doIt();
}
}