1.下载 首先到apache derby网站下载derby最新的release版本。 笔者使用的版本为10.4.1.3。 建议将可以下载的发布包全部下载,因为文件都不是很大。以备后用。笔者下载了: db-derby-10.4.1.3-bin.zip [pgp] [md5] db-derby-10.4.1.3-lib.zip [pgp] [md5] db-
1.下载
首先到apache derby网站下载derby最新的release版本。
笔者使用的版本为10.4.1.3。
建议将可以下载的发布包全部下载,因为文件都不是很大。以备后用。笔者下载了:
db-derby-10.4.1.3-bin.zip [pgp] [md5]
db-derby-10.4.1.3-lib.zip [pgp] [md5]
db-derby-10.4.1.3-lib-debug.zip [pgp] [md5]
db-derby-10.4.1.3-src.zip [pgp] [md5]
derby_core_plugin_10.4.1.648739.zip [pgp] [md5]
derby_ui_plugin_1.1.2.zip [pgp] [md5]
本文中只使用db-derby-10.4.1.3-bin.zip文件。
2.derby简介
derby是一个开源的基于java和sql的关系数据库管理系统(rdbms)。derby是使用纯java编写和实现的。derby为用户提供了轻量的标准数据库引擎,它可以紧密的嵌入到任何基于java的解决方案中。derby确保数据完整性,并提供负责的事务处理操作。默认的配置中不包含任何独立的数据库服务器。
derby可以有两种部署方式:
嵌入式:derby被单个用户的java应用程序使用,在这种模式下,derby和应用程序运行在同一个jvm中。derby对于终端用户几乎是透明的,因为它的启动和终止都是由应用程序来控制,而不需要任何的管理。
服务器模式:derby由应用程序启动,此时通过用户可以通过网络连接。在这种模式下,derby运行在服务器主机的jvm中。其他jvm的应用程序通过连接服务器来访问数据库。
derby的运行需要java 1.4+版本的支持。
3.安装
解压缩db-derby-10.4.1.3-bin.zip文件到本地系统目录,例如c:\。(apache的帮助文档中提到了windows和linux两种操作系统,笔者只介绍windows操作系统的情况)
将该目录记为derby_home。
解压缩后的目录中包含了样例程序,运行脚本,javadoc,derby doc,运行时类库,derby测试程序等。
设置环境
将derby_home设置为系统变量。
将derby_home\bin添加到系统path环境变量中。
设置完成以后,运行derby的命令如下:
java -jar %derby_home%\lib\derbyrun.jar ij [-p propertiesfile] [sql_script]
java -jar %derby_home%\lib\derbyrun.jar sysinfo [-cp ...] [-cp help]
java -jar %derby_home%\lib\derbyrun.jar dblook [arg]* (or no arguments for usage)
java -jar %derby_home%\lib\derbyrun.jar server [arg]* (or no arguments for usage)
在derby_home\bin目录下,有一些设置classpath的脚本,命名为setxxxcp。
4.运行derby工具
在windows命令行提示符窗口中执行sysinfo、ij、dblook命令,对应着derby_home\bin目录中的脚本,可以运行derby的工具。
sysinfo:显示java环境的信息以及derby的版本。
ij:它是一个jdbc工具,可以用来运行脚本或者交互查询。
dblook:它是一个数据定义语言生成工具。
5.自学
本部分包括了四方面的内容:
1> 使用ij工具来加载derby嵌入式驱动,并启动derby数据库引擎。创建firstdb数据库以及firsttable表。使用基本的sql语句进行插入和选择数据。derby的日志信息保存在derby.log文件中。
2> 使用derby的客户端/服务器配置。启动derby网络服务器,在单独的进程中使用ij工具加载derby客户端驱动,并连接到网络服务器,创建seconddb数据库和secondtable表,并使用基本的sql语句插入和选择数据。
3> 在简单的java jdbc程序中加载derby数据库引擎,使用嵌入式驱动来创建jdbcdemodb,以及wish_list表。使用键盘输入的内容作为数据库表的数据。然后查看数据库中的数据。通过查看代码来了解基本的jdbc访问derby数据库的方式。介绍了classpath和连接url属性,shutdown=true.
4> 将3>中的应用程序修改加载客户端驱动来连接derby网络服务器。
part1
创建derbytutor目录
d:\common\apache-db-derby-10.4.1.3-bin>md derbytutor
d:\common\apache-db-derby-10.4.1.3-bin>cd derbytutor
将样例sql脚本拷贝到当前目录
d:\common\apache-db-derby-10.4.1.3-bin\derbytutor>copy %derby_home%\demo\programs\toursdb\*.sql .
d:\common\apache-db-derby-10.4.1.3-bin\demo\programs\toursdb\toursdb_schema.sql
……
已复制 10 个文件。
d:\common\apache-db-derby-10.4.1.3-bin\derbytutor>ij
ij 版本 10.4
连接到嵌入式的derby数据库,如果数据库不存在,就创建
connect为ij的命令,用于创建数据库连接
jdbc:derby是derby驱动的jdbc协议
firstdb是数据库的名称。由于没有指定文件路径,所以数据库就在当前的目录中创建,数据库的内容存储在子目录firstdb中。
ij> connect 'jdbc:derby:firstdb;create=true';
create=true'表示创建一个新的数据库,在使用中多为create=false
创建第一张表
ij> create table firsttable(id int primary key,name varchar(12));
已插入/更新/删除 0 行
ij> insert into firsttable values(10,'ten');
已插入/更新/删除 1 行
ij> select * from firsttable;
id |name
------------------------
10 |ten
已选择 1 行
加载脚本
ij> run 'toursdb_schema.sql';
ij> -- licensed to the apache software foundation (asf) under one or more
-- contributor license agreements. see the notice file distributed with
-- this work for additional information regarding copyright ownership.
-- the asf licenses this file to you under the apache license, version 2.0
-- (the license); you may not use this file except in compliance with
-- the license. you may obtain a copy of the license at
--
-- http://www.apache.org/licenses/license-2.0
--
-- unless required by applicable law or agreed to in writing, software
-- distributed under the license is distributed on an as is basis,
-- without warranties or conditions of any kind, either express or implied.
-- see the license for the specific language governing permissions and
-- limitations under the license.
autocommit off;
ij> create table airlines
(
airline char(2) not null ,
airline_full varchar(24),
basic_rate double precision,
distance_discount double precision,
business_level_factor double precision,
firstclass_level_factor double precision,
economy_seats integer,
business_seats integer,
firstclass_seats integer
);
已插入/更新/删除 0 行
……
ij> commit;
ij> exit;
part2
这里我们需要启动两个windows命令行提示符,一个用于运行derby网络服务器,医用用于运行derby客户端。
首先打开一个windows命令行提示符窗口,运行如下的命令:
d:\common\apache-db-derby-10.4.1.3-bin\derbytutor>java -jar %derby_home%/lib/derbyrun.jar server start
已使用基本服务器安全策略安装了安全管理程序。
apache derby network server - 10.4.1.3 - (648739) 已启动并且已准备好 2008-08-20
07:19:10.375 gmt 时在端口 1527 上接受连接
此时就已经启动了derby网络服务器。
然后启动第二个windows命令行提示符窗口,进行如下的操作:
d:\common\apache-db-derby-10.4.1.3-bin\derbytutor>ij
ij 版本 10.4
连接到服务器,客户端连接的url包含了主机名和端口号。
ij> connect 'jdbc:derby://localhost:1527/seconddb;create=true';
ij> exit;
其他创建表等操作都是一样的。
part3
笔者使用了eclipse创建了java工程,将
%derby_home%\demo\programs\workingwithderby下面的java源代码拷贝到了工程下,并将derby.jar添加到工程的classpath中。
使用如下的方式创建数据库连接:
// ## define variables div ##
// define the driver to use
string driver = org.apache.derby.jdbc.embeddeddriver;
// the database name
string dbname = jdbcdemodb;
// define the derby connection url to use
string connectionurl = jdbc:derby: + dbname + ;create=true;
connection conn = null;
// beginning of jdbc code divs
// ## load driver div ##
try {
/*
* load the derby driver. when the embedded driver is used this
* action start the derby engine. catch an error and suggest a
* classpath problem
*/
class.forname(driver);
system.out.println(driver + loaded. );
} catch (java.lang.classnotfoundexception e) {
}
// beginning of primary db access div
// ## boot database div ##
try {
// create (if needed) and connect to the database
conn = drivermanager.getconnection(connectionurl);
至此获取到了连接到derby数据库的connection对象,其他的操作就是jdbc的基本操作了。
part4
使用jdbc连接derby服务器模式的数据库与连接嵌入式模式的数据库类似,只是驱动程序和连接的url发生了变化:
string driver = org.apache.derby.jdbc.clientdriver;
// the database name
string dbname = jdbcdemodb;
// define the derby connection url to use
string connectionurl = jdbc:derby://localhost:1527/ + dbname
+ ;create=true;
其他的操作完全一致。
6.derby提供的类库
引擎类库
derby.jar:用于嵌入式数据库。
对于嵌入式环境,改类库总是必须的。对于客户端/服务器环境,只需要将该类库放在服务器上。
工具
对于嵌入式环境,需要在classpath中追加类库来使用工具,对于客户端/服务器环境,只需要在客户端追加该类库。
derbytools.jar:运行所有的derby工具(ij,dblook,import/export)都需要改类库。
derbyrun.jar:用于启动derby工具的可运行jar文件。
网络服务器类库
derbynet.jar:用于启动derby网络服务器。
网络客户端类库
derbyclient.jar:作为derby网络客户端驱动程序。
本地化类库
* derbylocale_cs.jar
* derbylocale_de_de.jar
* derbylocale_es.jar
* derbylocale_fr.jar
* derbylocale_it.jar
* derbylocale_hu.jar
* derbylocale_ja_jp.jar
* derbylocale_ko_kr.jar
* derbylocale_pl.jar
* derbylocale_pt_br.jar
* derbylocale_ru.jar
* derbylocale_zh_cn.jar
* derbylocale_zh_tw.jar
未指定的区域提供特定语言的消息。
http://www.diybl.com/course/3_program/java/javaxl/2008821/136732.html