Apache Derby Database

Apache Derby 项目的目标是构建一个完全用 Java 编程语言编写的、易于使用却适合大多数应用程序的开放源码数据库。可以想像,开发一个数据库并不简单,Apache Derby 数据库也不例外(因为它是个开放源码软件,所以您可以自行查看它)。但是 Derby 项目并不是从零开始的。回到 1996 年,一个叫做 Cloudscape, Inc 的新公司成立了,公司的目标是构建一个用 Java 语言编写的数据库服务器。公司的第一个发行版在一年之后推出,后来产品的名称变成 Cloudscape。1999 年,Cloudscape, Inc. 被大型数据库厂商 Informix Software, Inc. 收购。
Informix Software 在 2001 年又被 IBM 收购,然后 IBM Cloudscape™ 数据库系统在许多 IBM 的产品中被用作内嵌的数据库引擎。2004 年 4 月,IBM 把 Cloudscape 数据库软件赠送给 Apache 软件基金会,从此 Apache Derby 项目诞生了。
这时,Cloudscape 数据库几乎已经有了 50 万行 Java 代码,所以花了一些时间才正确地把它转换成 Apache Derby 项目。经过孵化期之后,Derby 于 2005 年 7 月正式发布。所以虽然看起来像是新事物,但是 Derby 背后已经开发了几乎十年了。
IBM 继续管理 Cloudscape 数据库,该数据库是从 Apache Derby 源代码构建的。IBM 把 Cloudscape 数据库作为免费下载提供,而且为需要增强信心的客户提供收费的咨询服务。另外,Sun Microsystems 已经宣布它将包含一个修补过的 Apache Derby 版本作为它的 Java 数据库产品。来自 IBM 和 Sun 的强大投入,强化了 Apache Derby 数据库的光明前景。Derby 数据库也符合许多数据库标准,例如 SQL-92 和 JDBC 3.0 版本,所以开始用 Derby 数据库系统开发的应用程序可以容易地移植到其他数据库系统,例如 IBM DB2 通用数据。

2主要特点编辑

程序小巧,基础引擎和内嵌的JDBC驱动总共大约2MB。
基于Java、JDBC和SQL标准。
提供内嵌的JDBC驱动,你可把Derby嵌入到基于Java的应用程序中。
支持客户端/服务器模式。
安装、布置和使用简单。

3使用技巧编辑

配置环境变量

建立DERBY_HOME,值:E:\Java\Joy\derby\db- derby-10.5.3.0-bin\db-derby-10.5.3.0-bin
在Path加入:%DERBY_HOME%\bin
在CLASSPATH加入:%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>
接下来就可以创建数据库了。
例:
  1、 创建firstdb数据库:
  ij> connect 'jdbc:derby:firstdb;create=true';
  连接firstdb数据库:
  ij> connect 'jdbc:derby:firstdb';
查询数据库等操作,只需要输入相应的Sql语句即可。
2、创建一个table:
create table firsttable(id int primary key, name varchar(20));
3、插入数据:
insert into firsttable values(1, 'Hotpepper');
在命令行测试一下:
select * from firsttable;
结果如下:
ID   |NAME
  ——————————–
  1   |Hotpepper

  断开连接:
  ij> disconnect;
  退出ij:
  ij> exit;

在程序中使用

在Java程序中使用Derby
首先要把相关的Derby jar包加进来(Build Path)。
如果是Maven工程,加入以下依赖
?
1
2
3
4
5
< dependency >
    < groupId >org.apache.derby</ groupId >
    < artifactId >derby</ artifactId >
    < version >10.5.3.0</ version >
</ dependency >
把derby-10.5.3.0.jar加进来,如果没有加进来会出现 “java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver”错误
好了,下面写JAVA代码进行测试:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
publicclassTest{
    privatestaticStringdriver= "org.apache.derby.jdbc.EmbeddedDriver" ;
    privatestaticStringprotocol= "jdbc:derby:" ;
    StringdbName= "E:\\Java\\Joy\\derby\\Derby_data\\firstdb" ;
    publicstaticvoidloadDriver(){
        try {
            Class.forName(driver).newInstance();
            System.out.println( "Loadedtheappropriatedriver" );
        } catch (Exceptione){
            e.printStackTrace();
        }
    }
    publicvoiddoIt(){
        Connectionconn= null ;
        Statements= null ;
        ResultSetrs= null ;
        System.out.println( "starting" );
        try {
            conn=DriverManager.getConnection(protocol+dbName+ ";create=true" );
        } catch (SQLExceptione){
            e.printStackTrace();
        }
        System.out.println(dbName);
        try {
            s=conn.createStatement();
            rs=s.executeQuery( "select*fromfirsttable" );
            while (rs.next()){
                System.out.println(rs.getInt( 1 ));
                System.out.println(rs.getString( 2 ));
            }
        } catch (SQLExceptione1){
            e1.printStackTrace();
        }
        try {
            conn.close();
            conn= null ;
            s.close();
            s= null ;
            rs.close();
            rs= null ;
        } catch (Exceptione){
            e.printStackTrace();
        }
    }
    publicstaticvoidmain(String[]args){
        Testt=newTest();
        loadDriver();
        t.doIt();
    }
}
OK,完成了。
运行后控制台输出如下信息:
?
1
2
3
4
5
Loadedtheappropriatedriver
starting
E:\Java\Joy\derby\Derby_data\firstdb
1
Hotpepper
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值