Derby數據庫是一個純用Java實現的內存數據庫,屬於Apache的一個開源項目。由於是用Java實現的,所以可以在任何平台上運行;另外一個特點是體積小,免安裝,java1.6開始集成了derby數據庫,位於jdk下面的db目錄下.
CLASSPATH =
1
2
3
4
5C:openSourcejdk1.8.0_162dblibderby.jar;
C:openSourcejdk1.8.0_162dblibderbyclient.jar;
C:openSourcejdk1.8.0_162dblibderbytool.jar;
C:openSourcejdk1.8.0_162dblibderbynet.jar;
C:openSourcejdk1.8.0_162dblibderbytools.jar;PATH =
1
C:openSourcejdk1.8.0_162dbbin
如果不想配置,也可以使用下面指令來簡化你的使用
在Derby數據庫的/bin目錄中提供了幾個腳本用於設置classpath,以簡化你手工在classpath中添加jar包的麻煩:
- setEmbeddedCP。當使用內嵌模式來運行Derby時,可以使用該腳本來設置。該腳本將derby.jar和derbytools.jar添加到環境變量中;
setNetworkServerCP。當使用網絡模式來運行Derby時,用該腳本來設置Derby服務端的classpath變量。該腳本將derbynet.jar添加到環境變量中; - setNetworkClientCP。當使用網絡模式來運行Derby時,用該腳本來設置Derby客戶端的classpath變量。該腳本將derbyclient.jar和derbytools.jar添加到環境變量中。
一般只有當你通過derbyrun.jar來運行Derby工具時才會使用這些腳本。
- sysinfo
使用sysinfo可以顯示你的Java環境信息和Derby的版本信息。使用方法就是在命令行下直接輸入:
sysinfo.bat - dblook
使用dblook可以將全部或者部分數據庫的DDL定義導出到控制台或者文件中。使用方法:
dblook.bat -d[Options] - ij
使用ij工具來進行數據庫交互,執行SQL腳本,如查詢、增刪改、創建表等等。在命令行下輸入:
ij.bat
即可啟動ij工具,然后就可以開始執行SQL腳本了。當要退出ij工具時,在命令行下輸入
exit;
即可。
注意:命令行中使用derby,無論是服務(使用服務先啟動數據庫
)還是文件的連接方式都要行執行 ij命令,進入derby數據庫;
服務的方式(獨立數據庫)
這種模式下,需要使用兩個控制台窗口,一個用於啟動Derby數據庫服務端,另一個做為訪問Derby數據庫的客戶端。
可以通過DERBY數據庫/bin目錄下的==startNetworkServer.bat==來啟動Derby數據庫服務端,只需要在==命令行中輸入==:
==startNetworkServer.bat==
或者是在命令行中輸入1
java -jar derbyrun.jar server start;
數據庫就啟動了,啟動成功會在控制台輸出如下信息:
已使用基本服務器安全策略安裝了安全管理程序。
Apache Derby Network Server - 10.4.1.3 - (648739) 已啟動並且已准備好 2008-09-06
00:38:12.540 GMT 時在端口 1527 上接受連接
- 在命令行中輸入ij,進入數據庫
1
2
3connect 'jdbc:derby://localhost:1527/db_name';
或者是
connect 'jdbc:derby://localhost:1527/db_name;user=root;password=root;create=true;';
user=root;password=root; 創建一個用戶.
create=true 沒有數據庫的話,也創建一個
- 在在命令行中輸入ij,進入數據庫
- 再輸入以下命令(注意db_name可以是相對路徑也可以是絕對路徑)
1
connect 'jdbc:derby:db_name';
與服務端連接上后,就可以開始執行SQL腳本了,:
如創建一個表格
table firsttable(id int primary key, name varchar(20)); ``` 1
2- 然后插入記錄:
``` insert into firsttable values(1, ‘Hotpepper');也可以執行查詢:
* from firsttable; ``` 1
2大專欄 三分鍾學會使用Derby數據庫an>- 也可以通過run命令來執行sql文件:
``` run 'E:/derby/demo/programs/toursdb/ToursDB_schema.sql';最后通過exit;來退出ij工具
- 先把derbycilent.jar導入項目,再buildpath一下
java代碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Db {
public static void main(String[] args) {
try {
// 創建實例
Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
// 獲得數據庫連接
Connection conn = DriverManager.getConnection("jdbc:derby://localhost:1527/firstdb");
String sql = "select name from stu";
PreparedStatement ps = conn.prepareStatement(sql);
// 執行查詢語句
ResultSet rs = ps.executeQuery();
while (rs.next()) {
System.out.println(rs.getString("name"));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
這兒的db_name可以是相對路徑也可以是絕對路徑,shutdown=true;用戶在使用derby的內嵌數據庫的時候有責任關閉數據庫
- 請將derby.jar加入項目的build path路徑
1 |
Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance(); |
Tips: 注意網絡模式和內嵌模式的不同出在於:
- 數據庫連接URL的不同.(獨立服務器模式是數據庫庫的名字,另外一個是數據庫的路徑)
- 應用程序退出時無效關閉Derby數據庫;(內嵌數據庫必須關閉)
- 數據庫驅動的不同;
關於數據庫的操作我在這兒就不說了,有需要學習的網友可以自己百度一下
- [x] 參考