技术库 > 数据库

Derby

技术库:tec.5lulu.com

Apache Derby是一个完全用java编写的数据库Derby是一个Open source的产品,基于Apache License 2.0分发。

from:tec.5lulu.com

Apache Derby非常小巧,核心部分derby.jar只有2M,所以既可以做为单独的数据库服务器使用,也可以内嵌在应用程序中使用。Cognos 8 BI的Content Store默认就是使用的Derby数据库,可以在Cognos8的安装目录下看到一个叫derby10.1.2.1的目录,就是内嵌的10.1.2.1 版本的derby。 

1 历史

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。
基于JavaJDBCSQL标准。
提供内嵌的JDBC驱动,你可把Derby嵌入到基于Java的应用程序中。
支持客户端/服务器模式。
安装、布置和使用简单。

3 使用技巧

配置环境变量

建立DERBY_HOME,值:E:JavaJoyderbydb- derby-10.5.3.0-bindb-derby-10.5.3.0-bin
在Path加入:%DERBY_HOME%bin
在CLASSPATH加入:%DERBY_HOME%lib derby.jar;%DERBY_HOME%libderbyclient.jar;%DERBY_HOME%libderbytools.jar;%DERBY_HOME%libderbynet.jar

创建数据库

打开命令行,进入想要放置数据库的目录,我的是:E:JavaJoy derbyDerby_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工程,加入以下依赖
        <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代码进行测试:
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 * from firsttable");
            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,完成了。
运行后控制台输出如下信息:
Loadedtheappropriatedriver
starting
E:JavaJoyderbyDerby_datafirstdb
1
Hotpepper

Derby


标签: 数据库 derby本文链接 http://tec.5lulu.com/detail/104dsn2wtnytr857d.html

我来评分 :6.1
0

转载注明:转自5lulu技术库

本站遵循:署名-非商业性使用-禁止演绎 3.0 共享协议

www.5lulu.com

相关文章
1Derby