配置 Derby 数据库
为了完全体会 Derby 设置和使用的好处,你需要自己亲身体验它。首先,下载和安装 Derby 。然后,确保你的 classpath 环境变量包含:
derby_installation_directory\lib\derby.jar ;和 derby_installation_directory\lib\derbytools.jar ;
你也可以编辑提供给你的 sp.bat 文件,设置你的 Derby 安装目录,然后运行设置你的 classpath 。
一旦你设置好了 classpath ,就修改工作目录。数据库将被创建在这个目录里面。从 db\createdb 目录复制 createdb.sql 文件到工作目录。然后,启动命令行界面(执行 ij )进入 Derby :
java org.apache.derby.tools.ij
你也可以使用在 batch 子目录下提供的 ij.bat ,在使用前一定要编辑该批处理文件,添加你的 Derby 安装目录路径。这样才能进入正确的命令行,使用嵌入式 Derby 引擎。你看到的提示将与下面的类似:
ij version 10.0
ij>
你可以输入“ help ”;来查看可以使用的命令。要创建数据库和表来使用,仅仅需要运行 createdb.sql 文件。使用 ij 命令:
run ‘createdb.sql’;
run 命令将调用一个脚本文件并执行它里面的 Derby 命令,类似于 Windows 的批处理文件。下面显示的是 createdb.sql 文件的内容。
connect
'jdbc:derby:vsjdb;create=true';
drop table orders;
drop table custs;
create table custs
(id char (5) not null,
name char(40) not null,
primary key(id));
create table orders
(id char(8) not null,
custid char(5) not null,
total integer,
primary key(id,custid));
insert into custs values (
'1', 'John Smith');
insert into custs values (
'2', 'Mary Todd');
insert into orders values(
'0001', '1', 39999);
insert into orders values(
'0002', '1', 2999);
insert into orders values(
'0003', '1', 1904);
insert into orders values(
'0004', '2', 3232);
insert into orders values(
'0005', '2', 109900);
在每一行都需要一个分号,这与命令行输入命令是一样的。脚本的第一行是连接命令,指明连接的嵌入式 Derby 驱动名字。在脚本里的连接命令为:
connect
实例:
数据库做为数据持久化存储的重要手段怎么强度都不过分,但传统的数据库都比较庞大,需要安装配置等,对于一些比较轻量级的应用来说有点象杀鸡用牛刀一样.
Derby做为一个开源的、纯Java数据库引起了越来越多的关注,它源自IBM的CloudScape,现在成了大名鼎鼎的Apache基金会的开源项目。Apache一项是开源项目的领导者,从他们手里出去的东西都很不错,在此感谢一下这些无私奉献的人们。
Derby做为嵌入式数据库的一个方便之处就是对数据库的一切操控都可以在Java程序代码中实现,并且它非常的小,几个jar文件总共才2M多,非常轻巧,非常便于我们程序的移植。下面说一步步的来说明一下怎样使用。
首先,从[url]http://db.apache.org/derby/[/url]下载Derby的最新版本,直接解压到本地,然后设置程序运行的环境变量。
在win2000/xp中“我的电脑”--》右键--》属性--》环境变量--》变量--》添加
1.设置JAVA_HOME
2.设置DERBY_INSTALL(一定要是这个名字,否则可能无法正常运行),值为解压的目录
环境变量设置好了之后,我们就可以着手写第一个测试程序了。
和使用其它的数据库一样,首先加载数据库驱动:
Class.forName("org.apachy.derby.jdbc.EmbeddedDriver");
然后我们创建一个数据库:
Connection conn=DriverManager.getConnection("jdbc.derby.derbyDB;create=true","user","pwd");
在上面的Url中指定create=true,则创建一个新的数据库。
得到连接之后,我们就可以象访问其它数据库一样,进行相关操作了。
Statement st=conn.createStatement();
st.execute("create table test1(id int,name varchar(20));
st.execute("insert into test1 values(1,'sinboy')");
st.execute("inert into test1 values(2,'Tom')");
ResultSet rs=st.executeQuery("select * from test1");
while(rs.next){
System.out.println("id:"+rs.getInt(1)+" name:"+rs.getString(2));
}
rs.close();
st.close();
conn.commit();
conn.close();
Derby的最大好处应该还是小巧、纯Java、好移植,比较适全小量的数据存储。