Apache Derby, 是一个完全由java实现的关系数据库。它的目标是实现一个非常小的数据库,从而你能够很容易的将它嵌入到任何基于java的解决方案中。当然Derby也提供了传统的基于C/S架构的数据库框架。但是Derby对我的最大吸引力任然是其嵌入式数据库方式。
1. 下载及安装
到http://db.apache.org/derby/derby_downloads.html,根据你的系统是windows或unix/Linux下载相应的版本,然后简单的解压到需要的安装目录即可。本文为例,将其解压到目录: D:/Program Files/Java/db-derby
2. 环境变量设置
首先要加入环境变量DERBY_INSTALL ,值为第一步的解压目录(D:/Program Files/Java/db-derby);然后需要在classpath中加入$(DERBY_INSTALL)/lib目录下的derby.jar和derbytools.jar( %DERBY_INSTALL%/lib/derby.jar;%DERBY_INSTALL%/lib/derbytools.jar )。具体方法就不详细阐述了。如果设置正确的话,在终端中运行java org.apache.derby.tools.sysinfo,会打印出类似以下的信息:
------------------ Java 信息 ------------------
Java 版本: 1.6.0_03
Java 供应商: Sun Microsystems Inc.
Java 主目录: D:/Program Files/Java/jdk/jre
Java 类路径: D:/Program Files/Java/db-derby/lib/derby.jar;D:/Program Files/Java/db-derby/lib/derbytools.jar;.
OS 名: Windows XP
OS 体系结构: x86
OS 版本: 5.1
Java 用户名: wdmy
Java 用户主目录:D:/wdmy/profile
Java 用户目录: C:/Documents and Settings/wdmy
java.specification.name: Java Platform API Specification
java.specification.version: 1.6
--------- Derby 信息 --------
JRE - JDBC: Java SE 6 - JDBC 4.0
[D:/Program Files/Java/db-derby/lib/derby.jar] 10.3.2.1 - (599110)
[D:/Program Files/Java/db-derby/lib/derbytools.jar] 10.3.2.1 - (599110)
------------------------------------------------------
----------------- 语言环境信息 -----------------
当前语言环境: [中文/中国 [zh_CN]]
找到支持的语言环境:[cs]
版本:10.3.2.1 - (599110)
找到支持的语言环境:[de_DE]
版本:10.3.2.1 - (599110)
找到支持的语言环境:[es]
版本:10.3.2.1 - (599110)
找到支持的语言环境:[fr]
..............
..............
3. 使用数据库
为了操作数据库,我们需要使用derby自带的脚本工具及:ij。
在终端中输入:java org.apache.derby.tools.ij
输出如下:
ij version 10.3
ij>
然后即可在>后面输入ij命令。
4. 连接及创建数据库
derby中,连接和创建数据库有相似的语法,唯一不同的是创建数据库会在命令后面加上create=true 属性。
例:
创建MyDbTest数据库:
ij> connect 'jdbc:derby:MyDbTest;create=true';
连接MyDbTest数据库:
ij> connect 'jdbc:derby:MyDbTest';
MyDbTest所在目录是当前目录,即你运行ij时所在的目录。当然你也可以具体指定目录:
ij> connect 'jdbc:derby:/home/bill/databases/MyDbTest';
5. 执行SQL语句
连接上数据库之后,就可以使用SQL语句进行数据库操作了,例如:
ij(CONNECTION1)> create table derbyDB(num int, addr varchar(40));
ij(CONNECTION1)> insert into derbyDB values (1956,'Webster St.');
ij(CONNECTION1)> insert into derbyDB values (1910,'Union St.');
ij(CONNECTION1)> update derbyDB set num=180, addr='Grand Ave.' where num=1956;
ij(CONNECTION1)> select * from derbyDb;
6. 其它命令
断开连接:
ij> disconnect;
退出ij:
ij> exit;
7. 在java程序中使用嵌入式derby数据库
在java程序中使用嵌入式derby数据库的模型如下:
应用程序以及数据库驱动都运行在jvm中,而数据文件保存在文件系统里。应用程序通过JDBC对数据进行操作,在使用上和一般的jdbc用法一样。需要指出的是
jdbc驱动为:
另外需要知名数据库文件所在文件系统中的位置。
示例:
















































































