Eclipse与Derby集成

 

作者:曾巧(numen)

 

 

摘要

Apache Derby是一个完美的,并且开源的,100% Java编写的,容易管理的关系数据库管理系统,它可以和一些商业产品的特性进行交付。

 

正文

Apache Derby 是一个与平台无关的数据库引擎,它以 Java 类库的形式对外提供服务。与其他难以部署的数据库不同,安装 Derby 非常简单,只需要将其 .jar 文件复制到系统中并为您的项目添加该 .jar 文件即可。

尽管 Derby 很容易安装,但是它的特性却非常丰富。它可以支持关系数据库中的所有企业级的特性,包括崩溃恢复、事务回滚和提交、行/表级锁、视图、主键/外键约束、触发器、子查询表达式,等等。

另外,Derby提供了Eclipse的插件供开发人员使用,本文主要介绍插件的安装及使用。

   

内容

l         Derby下载

l         安装插件

l         使用插件

l         运行模式

l         例子

l         访问和查看数据

l         使用IJ工具

l         sysinfo工具

l         dblook工具

l         概要

 

Derby下载

撰写本文时,Derby的最新版本为10.2.2.0,你可以在Derby的官方网站下载,同时也可以下载Derby的两个Eclipse插件:derby_core_plugin和derby_ui_plugin;在下面使用前,请安装好JVM 1.4.x或更高版本;以及Eclipse 3.x。

 

安装插件

Derby插件的安装与其他Eclipse插件安装类似,只需要将之前下载的两个插件解压到Eclipse plugins目录下,然后重新启动Eclipse即可。你可以通过Plugin Details窗口来查看该插件是否安装成功:选择菜单[Help]->[About Eclipse SDK],然后点击[Plugin Details],如下图:

   

使用插件

在使用该插件前,我们先创建一个Java项目,取名为DerbyDemo,然后在Package Explorer视图选择该项目,单击右键选择菜单[Apache Derby]->[Add Apache Derby Nature],如图:

    接下来是配置Derby相关属性,在Package Explorer视图选择项目单击[Properties]在左边的属性列表中选择Apache Derby;并将 Derby 的主目录设为不同于项目根目录的某个目录,例如D:/derbyDB,如图:

配置完毕后,我们就可以启动Derby服务器了,在Package Explorer视图选择项目单击[Apache Derby]->[Start Derby Network Server];控制台将输出Derby的启动信息,如图:

    同样的,Derby 服务器的关闭也是类似的,在Package Explorer视图选择项目单击[Apache Derby]->[Stop Derby Network Server]。

    另外,我们在[Apache Derby]菜单下看到的ij(Interactive SQL)和sysinfo(Derby System Information)工具将在后面进行介绍。

 

运行模式

您可以采用两种模式来部署和运行Derby

l         在嵌入式模式(embedded mode)中,Derby只处理来自与应用程序使用的JVM相同的JVM的请求。在采用嵌入式模式来使用Derby时,应用程序会在启动和关闭时分别自动启动或停止关系引擎。Derby包的derby.jar文件(2MB)包含了Derby 数据库引擎和嵌入式JDBC驱动程序。

l         在网络服务器模式(network server mode)中,Derby会处理来自不同JVM的应用程序请求。或者,如果您喜欢使用PerlPHPPythonC来编写程序,那么您也可以部署一个Derby网络服务器,并通过各种语言特有的模块连接到这个服务器上,例如PerlDBIDatabase Interface)和PHPODBCOpen Database Connectivity)。Derbyderbynet.jar文件(0.2MB)包含了Derby Network Server

 

例子

    本例子将创建一个术语表,然后插入一些数据,并通过eclipse和程序对该表进行操作,关于Derby的高级例程将在其他文档中进行介绍。在开始介绍该例子前,请先阅读《项目组织的最佳实践.doc》文档,本例的文档结构也将与之相同。下面开始我们的例程吧。

1、  按照之前所讲的,启动Derby数据库服务;

2、  选择菜单[Window]->[Show View]->[Other],然后在Show View窗口选择Database Explorer;如图:

3、  从Database Explorer视图,右击[Connections],然后选择[New Connection];如图:

4、  配置数据库连接信息,用户名和密码设置成为admin,另外可以根据JDBC driver的不同,而设置不同的运行模式,相应的Class location也需要修改,为方便起见,我们使用的是Derby网络服务器模式;在生产环境中,我们将切换到Derby嵌入式模式中,以避免在网络操作过程中运行DDL脚本;如图:

5、  然后在选择Database Explorer视图下选择刚才创建的数据库demo的APP schema下,右击[Tables]选择[New]->[With SQL Editor],新建创建表的脚本;代码及图片如下:

 

CREATE TABLE APP.GLOSSARY 
  (TERM_ID INT NOT NULL GENERATED ALWAYS AS IDENTITY
    (start WITH 1, INCREMENT BY 1),
      TERM VARCHAR(80) NOT NULL,
      DEFINITION VARCHAR(500) NOT NULL);

6、  用类似的方法为该表创建插入数据脚本;代码如下:

INSERT INTO APP.GLOSSARY VALUES (DEFAULT,'Velocity','Rapidity or speed of motion; specifically, the distance traveled per unit time.');

INSERT INTO APP.GLOSSARY VALUES (DEFAULT,'Value','Monetary or material worth.');

INSERT INTO APP.GLOSSARY VALUES (DEFAULT,'Speed','The magnitude of a velocity.');

INSERT INTO APP.GLOSSARY VALUES (DEFAULT,'Agile','Characterized by quickness, lightness, and ease of movement; nimble.');

7、  运行脚本前,一定要保证选择正确的数据库连接,在脚本编辑框单击右键,然后选择[Use Database connection],如图:

8、  运行脚本有多种方法,你可以通过Ant来运行脚本,也可以直接在之前的脚本编辑框单击右键,选择[Run SQL],为了简便,我们直接通过[Run SQL]运行脚本了,运行结果将在Data Output视图显示。如图:

9、  刷新Database Explorer视图,就能看见刚才创建的Glossary表及数据,并能对其进行修改,如图:

10、              用Java代码实现对Derby的访问也比较简单,更其它的数据库访问方式类似,如下例:

 

package com.gelc.db.derby.demo;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

/** *//**
 * A derby demo
 * 
 * 
@author numen
 * 
 
*/
public class DerbyDemo ...{

    
/** *//**
     * 
@param args
     * 
@throws Exception
     
*/
    
public static void main(String[] args) throws Exception ...{

        Class.forName(
"org.apache.derby.jdbc.ClientDriver").newInstance();

        String url 
= "jdbc:derby://localhost:1527/demo;create=true";

        String strSql 
= "select g.term_id, g.term from app.glossary g";

        Connection conn 
= DriverManager.getConnection(url, "admin""admin");

        Statement stat 
= conn.createStatement();

        ResultSet rs 
= stat.executeQuery(strSql);

        
while (rs.next()) ...{
            System.out.print(rs.getString(
"term_id"+ ""
                    
+ rs.getString("term"));
            System.out.println(
" ");
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值