Derby是用纯Java写的一个事务、关系数据库,只占用很少的磁盘空间。Derby起源于CloudScape,后者是IBM从Informix获取的产品。在2004年,IBM决定将CloudScape开放源代码,使之成为ApacheSoftwareFoundation下的一个孵卵器项目,其名称为Derby。使用Derby的实际好处在于它需要最少的管理以及小的资源占用。磁盘上的数据库比较小,对于基本数据库,大约是2MB。管理最少的事实允许开发人员在代码中轻松地创建和使用数据库。这加速了开发。因为Derby支持归档在JAR文件中的数据库的存储,这使您只需分发JAR文件,因而部署变得如此轻松。
了解完derby历史,现在看看怎么样安装使用
Derby官方主页:http://db.apache.org/derby/index.html
Derby下载页面:http://db.apache.org/derby/derby_downloads.html
发行版本有:
--二进制发行版包括了代码,示例程序和文档.已经优化了的jar文档在lib目录下
--lib发行版本包括了优化程序,部署Derby的最小jar的集合.
--lib-debug发行版本包括了调试Derby和报告问题的有用的最大集合.
--src发行版本包括了要来产生上面三个发行版的源文件.
安装Derby,只要把你下载的包文件解压到你指定的目录即可。
假定你下载的是二进制发行版。
解压下载的包,之后有以下几个子目录:
--demo包括了示例程序
--bin包括了运行和设置环境的代码
--javadoc包括了有源代码生产的aip文档
--doc包括了Derby文档
--lib包括了Derby的jar文件
根据Derby手册说明,配置Derby有几种方式:
1. 通过java命令运行安装目录lib相应的工具。
2.通过运行Derby提供的脚本命令。先配置PATH环境变量指向Derby目录下bin目录,然后运行bin目录内相关批处理命令,即可。
3. 通过运行安装目录lib内的derbyrun.jar归档文件。
要手工通过Java命令运行Derby是很麻烦的,并且也不方便使用。
通过以下简单几步我们可以完成derby的启用
export DERBY_HOME=/opt/Derby_10
export PATH="$DERBY_HOME/bin:$PATH"
mkdir $DERBY_HOME/DERBYTUTOR
cp $DERBY_HOME/demo/programs/toursdb/*.sql $DERBY_HOME/DERBYTUTOR
运行数据库:
java -jar $DERBY_HOME/lib/derbyrun.jar ij
然后运行创建数据库testdb:
ij>Connect ‘jdbc:derby:testdb;create=true’;
上面指定create=true,则创建一个新的数据库。
连接该数据库:
ij> Connect 'jdbc:derby:testdb;';
ij(CONNECTION1)>
这时就可以运行相应SQL语句,进行数据库操作。该步骤为单用户嵌入式数据库操作。
让Derby运行在服务器模式下
启动服务器:
java -jar $DERBY_HOME/lib/derbyrun.jar server start
关闭服务器:
java -jar $DERBY_HOME/lib/derbyrun.jar server shutdown
---windows 安装DERBY
一、简介
Derby?易于管理。当嵌入到客户机应用程序中时, Derby 系统不需要任何管理干预。
Derby 是可嵌入的。应用程序可以将数据库管理系统( Database Management System , DBMS )引擎嵌入应用程序进程中,从而无需管理单独的数据库进程或服务。通过网络服务器(?Network Server )架构或您选择的服务器架构,可以将 Derby 作为单独的进程来运行。
Derby 是Java 编写的内存数据库,属于?Apache 的一个开源项目,是一个纯?Java 的类库:对于?Java 开发人员,这点十分重要,因为他们正试图维护 Java 技术的优点,例如平台无关性、易于配置以及易于安装。
Derby?不需要专有的?Java 虚拟机(?Java Virtual Machine , JVM )。因为完全是用 Java 语言编写的,所以它适应所有合格的?JVM 。
DerbyDBMS 引擎是轻量级的。类文件大小大约是?2MB?,并且只使用了?4MB 的 Java 堆。
Derby 支持使用 Java 编写存储过程和函数,这些存储过程和函数可以在应用程序的任何层上运行。 Derby 没有专用的存储过程语言,它使用?JDBC 。
二、两种运行模式
1.内嵌模式。Derby数据库与应用程序共享同一个JVM,通常由应用程序负责启动和停止,对除启动它的应用程序外的其它应用程序不可见,即其它应用程序不可访问它;
2.网络模式。Derby数据库独占一个JVM,做为服务器上的一个独立进程运行。在这种模式下,允许有多个应用程序来访问同一个Derby数据库。
三、安装derby
1.在derby官网下载derby的包,然后解压。
?
?
1.建立DERBY_HOME,值:D:\db-derby-10.10.2.0-bin??
2.在Path加入:%DERBY_HOME%\bin??
3.在CLASSPATH加入:??
4.%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>
接下来就可以创建数据库了。
例:
创建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程序中使
2.运行(使用ij脚本)
(1)内嵌模式
在命令行中找到bin目录,使用输入ij使用ij工具(或单击ij.bat后启动ij工具)。然后通过如下命令创建数据库,并与数据库创建连接:
connect ‘jdbc:derby:mydb;create=true';
(通过connect命令可以与指定数据库创建连接,通过一个JDBC URL来指定与哪个数据库创建连接。ij命令是不区分大小写的。参数中jdbc:derby是Derby数据库的驱动协议;firstdb是数据库名称,由于没有指定路径,数据库将会被创建在当前你命令行下所在的目录下;create=true表示如果数据库不存在,则创建该数据库;";"是ij命令的终止符。当数据库创建成功时,Derby会在当前你命令行下所在的目录下创建一个与数据库命一致(这里是mydb)的目录,其中存放了数据库的文件。)
连接之后便可使用SQL语句操作数据库,或通过run命令运行sql文件:run 'E:/derby/demo/ToursDB_schema.sql';
最后通过exit;来退出ij工具。
在当前你命令行下所在的目录中有一个derby.log的日志文件,derby在其中记录的数据库启动、关闭的信息。
连接驱动及URL:
driver: org.apache.derby.jdbc.EmbeddedDriver
url: jdbc:derby:E:/shiny/DdlUtils-test/mydb
(2)网络模式
网络模式下,需要使用两个控制台窗口,一个用于启动Derby数据库服务端,另一个做为访问Derby数据库的客户端。
1.在命令行进入bin目录,运行startNetworkServer.bat启动数据库服务器;
2.另一个端口跟运行内嵌模式的Derby数据库类似,只是连接的命令不同:
? connect 'jdbc:derby://localhost:1527/E:/my/derby/mydb;create=true';
(其中localhost:1527是本地和端口号,后面的是G盘的某个数据库,也可以是网上的)
连接驱动及URL:
driver: org.apache.derby.jdbc.ClientDriver
url: jdbc:derby://localhost:1527/E:/my/derby/mydb
注意:两种模式连接数据库时使用的驱动包不同
四、jar包说明
1.引擎库
derby.jar是引擎库(必须的)?
For embedded databases.?
You always need this library for embedded environments. For client/server environments, you only need this library on the server.
2.工具库
.
1.derbytools.jar: Required for running all the Derby tools (such as ij, dblook, and import/export).
2.derbyrun.jar: Executable jar file that can be used to start the Derby tools.
3.网络服务端库
如果是通过网络连接Derby(非嵌入方式),那么需要这个jar。?
derbynet.jar: Required to start the Derby Network Server.
4.网络客户端库
derbyclient.jar: Required to use the Derby network client driver.
5.本地语言库
.
1.derbyLocale_cs.jar Required to provide translated messages for the Czech locale.
2.derbyLocale_de_DE.jar Required to provide translated messages for the German locale.
3.derbyLocale_es.jar Required to provide translated messages for the Spanish locale.
4.derbyLocale_fr.jar Required to provide translated messages for the French locale.
5.derbyLocale_hu.jar Required to provide translated messages for the Hungarian locale.
6.derbyLocale_it.jar Required to provide translated messages for the Italian locale.
7.derbyLocale_ja_JP.jar Required to provide translated messages for the Japanese locale.
8.derbyLocale_ko_KR.jar Required to provide translated messages for the Korean locale.
9.derbyLocale_pl.jar Required to provide translated messages for the Polish locale.
10.derbyLocale_pt_BR.jar Required to provide translated messages for the Brazilian Portuguese locale.
11.derbyLocale_ru.jar Required to provide translated messages for the Russian locale.
12.derbyLocale_zh_CN.jar Required to provide translated messages for the Simplified Chinese locale.
13.derbyLocale_zh_TW.jar Required to provide translated messages for the Traditional Chinese locale.




