Derby(Java DB)简介 ZZ

为了彻底搞清JAVA的类加载机制,有必要研究一个JDBC的实现代码,准备从Derby入手。

Java6开始,SunJDK就附带了一个轻量级的数据库,名字叫做Derby。也就是Java DB,由IBM2004年捐给Apache开源项目组。Derby是一个事务关系型的数据库管理系统,体积非常的小,所有的加起来大约2M左右吧。在最新的Java JDK6发布版里,Derby默认安装在%JAVA_HOME%/db目录下,包括核心库,演示程序以及一个例子数据库。Derby的优势在于体积小,管理操作简单。对于开发者来说,你可以轻易地用代码来创建和使用数据库,进行所有的数据库操作也是相当方便的。在系统的开发阶段使用Derby,可以加快开发速度。加上Java JDBC的跨数据库平台性,要转换数据库实现也是很容易的。

 

       下面就来讲讲Derby的基本使用:

       Derby提供了一个命令行工具:ij  表示交互式JDBC脚本工具。通过ij,我们可以连接到数据库,对数据库进行各种操作。要使用ij工具,你必须把下面两个jar文件放到你系统的CLASSPATH中,关于CLASSPATH的设置,你可不要告诉我你不会啊!

        set classpath=%JAVA_HOME%/db/lib/derby.jar;%JAVA_HOME%/db/lib/derbytools.jar;

 

其中,derby.jar包含JDBC驱动,derbytools.jarij工具本身。设置好CLASSPATH后,我们就可以输入下面的命令来使用ij工具,这里我们以Derby自带的演示数据库toursdb为例:

E:/我的文档>java org.apache.derby.tools.ij

ij 版本 10.2

ij> connect ‘jdbc:derby:c:/Program Files/Java/jdk1.6.0/db/demo/databases/toursdb’;

ij> SELECT * FROM countries WHERE country LIKE 'C%';

COUNTRY                   |C&|REGION

--------------------------------------------------------

Cambodia                  |KH|Asia

Cameroon                  |CM|Africa

Canada                    |CA|North America

Cape Verde                |CV|Africa

Chile                     |CL|South America

China                     |CN|Asia

Colombia                  |CO|South America

Congo                     |CG|Africa

Costa Rica                |CR|Central America

Cote d'Ivoire             |CI|Africa

Cuba                      |CU|Caribbean

Czech Republic            |CZ|Europe

 

已选择 12

ij>exit;

 

这样就退出了ij,下面讲一下新建数据库和表的操作。要创建数据库,我们需要给connect命令带上一个”create=true”参数。如果之前已经连上一个已存在的数据库,那应该先使用disconnect命令断开连接:

ij> connect 'jdbc:derby:C:/Program Files/Java/jdk1.6.0/db/demo/databases/toursdb';

ij> disconnect;

ij> connect 'jdbc:derby:TestDB;create=true';

ij> CREATE TABLE book(title VARCHAR(50), isbn CHAR(13), author VARCHAR(50));

已插入/更新/删除 0

ij> INSERT INTO book VALUES('Thinking in Java', '1234-37-134-7', 'Bruce Eckel');

已插入/更新/删除一行

ij> INSERT INTO book VALUES('Core Java', '8888-37-134-8', 'Cay Hostman');

已插入/更新/删除一行

ij> SELECT * FROM book;

TITLE                                             |ISBN         |AUTHOR

 

--------------------------------------------------------------------------------

-----------------------------------

Thinking in Java                                  |1234-37-134-7|Bruce Eckel

 

Core Java                                         |8888-37-134-8|Cay Hostman

 

已选择 2

ij>exit;

 

使用connect 'jdbc:derby:TestDB;create=true';创建新数据库TestDBDerby会在当前目录(你输入java org.apache.derby.tools.ij时所在的目录)创建一个数据库,子目录名就是数据库的名称。同时在当前目录还会创建一个derby.log文件,这是一个错误日志文件,记录了异常情况下的一些信息。TestDB目录下的文件,保存的就是整个数据库的信息了,我们绝不应该直接修改这些文件!

 

如上面所示,Derby提供的命令行工具很容易使用。运行命令后,使用connect来连接数据库,之后就可以使用SQL语言来对数据库进行常用的操作了。Derby实现了SQL-92的核心子集,同时也实现了SQL-99的部分特性。关于Derby具体的使用和操作,请参考Apache网站的在线文档:

Getting started: http://db.apache.org/derby/docs/10.2/getstart/

Derby Reference Manual: http://db.apache.org/derby/docs/10.2/ref/

Derby Developer's Guide: http://db.apache.org/derby/docs/10.2/devguide/

 

好了,关于Derby的使用就写到这里吧!我打算接下来再写一篇关于JDBC4的文章,到时会再次使用到Derby数据库,也会更加详细的讲解Derby的使用!

 

最后提一下,之前我一直是使用HSQLDB的。HSQLDB也是一个开源的小型数据库,功能强大且使用方便,关于两者的优劣对比,我并没有做过,也没有说这个话的能力。至于使用哪个,选择权完全在你的手上。不过既然Java6Derby包含在发布版里,那估计今后Derby也会被更多人了解和使用吧。

本文参考了:Wrox.Professional.Java.JDK.6.Edition.Jan.2007一书第一部分第一章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值