Derby数据库是一个纯用Java实现的内存数据库。属于Apache的一个开源项目。因为是用Java实现的,所以能够在不论什么平台上执行。另外一个特点是体积小,免安装,仅仅须要几个小jar包就能够执行了。

以下说下其安装及配置

安装

1).从apache下载Derby数据库(如db-derby-10.10.1.1-bin.zip)并解压到随意文件夹(如:D:\Derby\db-derby-10.10.1.1-bin)。  
2).配置环境变量DERBY_HOME=D:\Derby\db-derby-10.10.1.1-bin
并加入到path和classpath环境变量(%DERBY_HOME%\bin;%DERBY_HOME%\lib\derbyrun.jar)
3).測试数据库安装 C:\>sysinfo
------------------ Java Information ------------------
Java Version: 1.7.0_40
Java Vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.7.0_40\jre
Java classpath: D:\Derby\db-derby-10.10.1.1-bin\bin;D:\Derby\db-derby-10.10.1.1-bin\lib\derbyrun.jar;
OS name: Windows 7
OS architecture: amd64
OS version: 6.1
Java user name: qqqqq
Java user home: D:\userdata\qqq
Java user dir: C:\
java.specification.name: Java Platform API Specification
java.specification.version: 1.7
java.runtime.version: 1.7.0_40-b43
--------- Derby Information --------
[D:\Derby\db-derby-10.10.1.1-bin\lib\derby.jar] 10.10.1.1 - (1458268)
[D:\Derby\db-derby-10.10.1.1-bin\lib\derbytools.jar] 10.10.1.1 - (1458268)
[D:\Derby\db-derby-10.10.1.1-bin\lib\derbynet.jar] 10.10.1.1 - (1458268)
[D:\Derby\db-derby-10.10.1.1-bin\lib\derbyclient.jar] 10.10.1.1 - (1458268)

连接

C:\>ij  
ij 版本号 10.10
ij> CONNECT 'jdbc:derby:D:\Project\derbyDB\testdb;create=true';(假设数据库testdb不存在,则创建改数据库)
ij> CONNECT 'jdbc:derby:D:\Project\derbyDB\testdb;'; (连接testdb数据库)
ij(CONNECTION1)> CREATE TABLE FIRSTTABLE(ID INT PRIMARY KEY,NAME VARCHAR(12));(创建表)
已插入/更新/删除 0 行
ij(CONNECTION1)> INSERT INTO FIRSTTABLE VALUES(10,'TEN'),(20,'TWENTY'),(30,'THIRTY');(插入数据)
已插入/更新/删除 3 行
ij(CONNECTION1)> SELECT * FROM FIRSTTABLE;
ID |NAME
------------------------
10 |TEN
20 |TWENTY
30 |THIRTY
已选择 3 行
ij(CONNECTION1)>exit;(退出)

说明

1. sysinfo工具用于显示Java环境信息和Derby的版本号信息。

2. ij工具来进行数据库交互,运行SQL脚本,如查询、增删改、创建表等


样例

以下是个完整的样例。怎样程序中操作JavaDB

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;

public class TestDerby {
public static void main(String[] args) {
try {
Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
System.out.println("Load the embedded driver");
Connection conn = null;
Properties props = new Properties();
props.put("user", "user1"); props.put("password", "user1");
conn=DriverManager.getConnection("jdbc:derby:C:\\Project\\derbyDB\\testdb;");
System.out.println("create and connect to testdb");

Statement s = conn.createStatement();
ResultSet rs = s.executeQuery("SELECT * FROM FIRSTTABLE");
System.out.println("name\t\tscore");
while(rs.next()) {
StringBuilder builder = new StringBuilder(rs.getString(1));
builder.append("\t");
builder.append(rs.getInt(1));
System.out.println(builder.toString());
}

} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}catch (Exception e) {
e.printStackTrace();
}

}

}