`
pengyan
  • 浏览: 36377 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Derby对应用开发的支持

阅读更多

出处:blog.csdn.net 作者:eye_of_back 更新时间:2007-08-21  原文

一,derby是什么

  Derby是什么,即使你说不上来,想必你也早就听说过了,当然了,如果没有听说过,也没有关系,因为下面就要和你说一下Derby。

  Derby是一款轻量级的关系型数据库,它的出现要感谢的人很多,其中一位是IBM,它把Cloudscape源码开源,并捐献给了Apache软件基金会,因此另外一位要感谢的,就是Apache软件基金会,它带给我们开发设计人员的东西真是太多了。

  Derby的功能很强大,它不仅支持内嵌式与客户机服务器模式,而且还支持事务处理、日志管理等许多大型数据库具有的功能,当然了Derby的价值并不在 于解决复杂事务和高性能方面,而在于它对应用开发支持,由于有Derby的出现,我们的一些应用开发模式也随着变了,变得更易于我们接受了。

二,去哪里下载derby

  既然Derby是ASF(Apache软件基金会)的一个项目,那么最直接下载的地方就是Apache网站了,你可以直接访问http://db.apache.org/derby ,里面有关于derby方方面面的东西,当然也包括下载,可以访问http://db.apache.org/derby/derby_downloads.html 下载derby。

  我写这篇文章的时候,Derby的最新官方版本是10.2.2.0 ,当然了点击这个链接进入后,会发现有许多可以下载的打包形式,如果只是为了使用,则下载其中的二进制包即可,例如windows下选择db-derby-10.2.2.0-bin.zip ,下载后解压,会发现里面有许多我们熟知的二进制包中一般都有的目录,例如lib目录,里面包含了derby的应用支持jar包。

三,derby与eclipse的集成

  如果你喜欢在DOS或者Linux命令行模式下运行Derby,Derby绝对能满足你的要求,但是我在这里要说的是在Eclipse中如何使用 Derby,我想现在应该有不少人或者说大多数人都在使用Eclipse进行这应用程序的开发,在集成了cvs(svn)、WTP等一系列插件之后,再补 充上能够支持内嵌式数据库访问的derby,这样的环境下使用Eclipse进行应用开发,也可以算得上是完美了。

  那么,如何在一个Ecilpse之中加入对derby的支持呢?

  首先,我们要去现在derby在elicpse上的插件,我使用的是eclipse3.2,插件可以去Eclipse网站下载,也可以在Apache的derby下载处下载,即访问http://db.apache.org/derby/derby_downloads.html ,选择某个发布版本的Derby,进入后就会看到与该版本Derby对应的Eclipse插件版本的下载。

  一般会有两个插件需要下载,一个是支持Derby服务的核心插件,一个是支持Eclipse界面的UI插件,例如对于10.2.2.0的Derby对应的插件为:

  derby_core_plugin_10.2.2.485682.zip
  derby_ui_plugin_1.1.0.zip

  下载之后,将其解压到Eclipse安装目录中的plugins目录即可,然后重新启动Eclipse。

   接下来,我们可以在Eclipse创建一个Java工程,当然了也可以使用已经存在Java工程,在eclipse中可以为每个Java项目创建一个Derby环境,我们先看一下如为一个Java工程创建一个Derby环境。

  右键点击一个Java工程,选择“Apache Derby -->Add Aapche Derby Nature”,入下图所示:

  完成后,该工程就具备了Derby环境,这个时候,你可以右键选择“属性”,在弹出的面板中,选择“Apache Derby”,则右边会出现该工程中Derby的相关参数配置,入下图所示:

  你可以修改端口网络服务主机、端口以及数据的存放目录,一般来说保持默认即可。

  在配置好相关参数之后,你可以通过对该工程的Derby进行一些操作了,入口如下所示:

  从上图我们可以看出,可以进行的操作有:

  1)删除该工程的Apache Derby环境
  2)启动Derby的网络服务器,Derby通过这个提供客户机/服务器模式的数据库访问
  3)打开ij,ij是用来查看操作Derby数据库的一个方便的工具,支持命令行方式的访问,使用起来很方便,关于ij的一些语法,可以参考下载下来的二进制包中的/docs目录下面的ij相关的文档,写的很详细,这里就不多说了。
  4)查看Derby系统信息,例如执行后可能会看到类似如下的信息:
  ------------------ Java Information ------------------
Java Version:    1.4.2
Java Vendor:     Sun Microsystems Inc.
Java home:       G:\j2sdk1.4.2\jre
Java classpath:  G:\eclipse\workspace\DerbyTest;G:\eclipse\plugins\org.apache.derby.core_10.2.2\derby.jar;G:\eclipse\plugins\org.apache.derby.core_10.2.2\derbyclient.jar;G:\eclipse\plugins\org.apache.derby.core_10.2.2\derbytools.jar;G:\eclipse\plugins\org.apache.derby.core_10.2.2\derbynet.jar
OS name:         Windows XP
OS architecture: x86
OS version:      5.1
Java user name:  sysuser
Java user home:  C:\Documents and Settings\sysuser
Java user dir:   G:\eclipse\workspace\DerbyTest
java.specification.name: Java Platform API Specification
java.specification.version: 1.4
--------- Derby Information --------
JRE - JDBC: J2SE 1.4.2 - JDBC 3.0
[G:\eclipse\plugins\org.apache.derby.core_10.2.2\derby.jar] 10.2.2.0 - (485682)
[G:\eclipse\plugins\org.apache.derby.core_10.2.2\derbytools.jar] 10.2.2.0 - (485682)
[G:\eclipse\plugins\org.apache.derby.core_10.2.2\derbynet.jar] 10.2.2.0 - (485682)
[G:\eclipse\plugins\org.apache.derby.core_10.2.2\derbyclient.jar] 10.2.2.0 - (485682)
------------------------------------------------------
----------------- Locale Information -----------------
------------------------------------------------------
  说到这里,Derby与Eclipse的集成应该是可以了,至于如何在这个环境中使用Java代码链接该数据库,那就是后面的话题了。

四,derby实际应用

  Derby可以做为轻量级数据库的一个缩影,轻量级数据库的一个非常显著的优点,就是安装简便,容易在一个较小的环境中支撑应用的开发与测试以及试运行, 想想为了验证一个数据库存储逻辑,要在一台笔记本上安装一个Oracle或者DB2真是太不值当了,当然可以安装Mysql,但是既然有一个非常轻量的 Derby,为何不直接使用Derby呢。

  Derby做为一种关系型数据库,支持两种连接访问模式,一种是内嵌式模式,一种式消息服务器模式 ,下面分些写一个程序予以说明:
程序一:客户机/服务器模式:
public class DerbyTest {
 public static void main(String[] args) throws Exception{
  Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
  String url="jdbc:derby://localhost:1527/myDB;create=true";  (来源:www.iocblog.net)
  String username="me";
  String password="mine";
  Connection conn=DriverManager.getConnection(url,username,password);
  System.out.println("conn:"+conn);
  conn.close();
 }
}

程序二:内嵌模式:
public class DerbyTest {
  public static void main(String[] args) throws Exception{
  Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
  String url="jdbc:derby:myDB;create=true;user=me;password=mine";
  String username="me";
  String password="mine";
  Connection conn=DriverManager.getConnection(url,username,password);
  System.out.println("conn:"+conn);
  conn.close();
 }
}

注意,运行客户机/服务器模式的程序时,需要预先启动Dery的NetWorkServer,在eclispe中,在工程上点击右键,选择“Apache Derby”
——>Start Derby Network Server,启动后之后,再运行程序一即可。对于程序二则不需要NetWorkServer,直接运行即可。

  另外一个需要说的,就是如何在Spring中集成Derby,其实配置起来很简单,我们只说一下Spring配置文件中DataSource的配置,如下:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  <property name="driverClassName">
   <value>org.apache.derby.jdbc.EmbeddedDriver</value>
  </property>
  <property name="url">
   <value>jdbc:derby:myDB;create=true</value>
  </property>
  <property name="username">
   <value>me</value>
  </property>
  <property name="password">
   <value>mine</value>
  </property>
 </bean>

  有了Spring、Derby,想想如果做DAO层的单元测试,将会是多么方便吧,当然了可能你还会说,DOA测试还需要提前创建好数据库的表结构以及放 置一些初始化数据,这该怎么办呢?我这里给你介绍一个可以执行sql文件的Java程序,即ibatis的ScriptRunner。

  下面我们看一个DAO单元测试的例子:

protected void setUp() throws Exception {
        super.setUp();
        DataSource ds=(DataSource)SpringContextUtil.getContext().getBean("dataSource");
        ScriptRunner runner=new ScriptRunner(ds.getConnection(),true,true);
        String file=UserManageServiceTest.class.getResource("/sample/spring/test/usertest.sql").getFile();
        Reader reader=new FileReader(file);
        runner.runScript(reader);
        service = (UserManageService) SpringContextUtil
                .getBean("userManageService");
    }

    public void testSaveAndSearchAndRemoveUser() throws Exception {
        User user = new User();
        user.setUsername("zhangsan");
        user.setEmail("zhangsan@test.com");
        user.setBirthday(new Date());
        service.saveUser(user);
        logger.debug("存入一个新用户:" + user);
        User userFromDb = service.getUserByName("zhangsan");
        assertNotNull(userFromDb);
        assertEquals(userFromDb.getEmail(), "zhangsan@test.com");
        logger.debug("从数据库中查到用户:" + userFromDb);
        service.removeUser("zhangsan");
        logger.debug("从数据库删除用户:" + userFromDb);
    }

    /*
     * @see TestCase#tearDown()
     */
    protected void tearDown() throws Exception {
        super.tearDown();
    }

五,derby带给我们的思考 

  开源世界曾经被商业巨头们嘲笑,然而随着近些年的实际发展,开源的力量在整个IT业界内,成为了一股强大的力量,开源的模板Velocity、开源的 Web MVC Struts,开源的应用程序框架Spring,开源的ORM Hibernate、开源的数据库Mysql、开源的portal JetSpeed、开源的集成开发工具Eclipse等等,这一切为我们的开发提供了相当的便利。

  另外一点,轻量级这个概念,在越来越多的领域得到运用,轻量的应用程序框架,轻量级的目录存储协议、轻量级的数据库等等,轻量级对日常应用开发以及单元测 试等提供了极大的便利,这也使得我们的应用开发模式,得到了很大的改观,我们没有必要为了搭建一个开发或者测试环境,而购买多台服务器,也没有必要担心使 用同一个数据库做测试会使得数据库混乱,由此也可以看出,轻量级的一个结果就是本地化和个性化。

  Derby所带给我们,也许已经不仅仅是一种或某种这样的或者那样的思考,那么它所带给我们的更深的东西又到底是什么呢...

 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Eclipse下Apache Derby开发

    Eclipse作为流行的Java集成开发环境,提供了丰富的工具支持,使得在Eclipse中开发Derby应用变得更加便捷。 首先,Java Development Tools (JDT)是Eclipse的核心组件,它包含了开发Java应用程序所需的基本功能,如...

    Eclipse插件Derby安装 Derby插件开发

    在本节中,我们将详细介绍如何在 Eclipse 中安装 Apache Derby 相关插件,以便更好地支持数据库管理和开发工作。 ##### (一)所需组件 根据提供的部分内容,安装过程中会涉及以下组件: - `org.apache.derby.core...

    用 Apache Derby 进行开发 —— 取得节节胜利

    Derby还支持嵌入式模式,可以直接在应用程序中运行,无需额外的服务器进程,这对于开发和测试环境非常方便。 Derby提供了丰富的JDBC驱动,使得Java开发者可以通过标准接口进行数据库操作。此外,它还支持SQL标准,...

    derby 数据库开发文档

    该指南旨在为用户提供全面的 Derby 数据库开发知识,包括应用开发流程、连接数据库的方式以及如何优化应用程序的行为等。 #### 五、目标受众 - **Java 开发人员**:特别是那些希望利用 Derby 构建高效、轻量级应用...

    内嵌数据库derby 10.6.2开发文档

    **知识点:Apache Derby 10.6.2 内嵌数据库开发** Apache Derby是一款开源...通过以上知识点的详细阐述,开发者可以全面了解Apache Derby 10.6.2版的特性和功能,为实际项目中的数据库管理和应用开发打下坚实的基础。

    derby开发手册

    - **应用开发概述:** 介绍了使用Derby进行应用开发的一般步骤和考虑因素。 - **Derby嵌入式基础:** 解释了如何将Derby作为应用程序的一部分直接嵌入。 - **Derby JDBC驱动:** 介绍了Derby提供的JDBC驱动程序及其...

    Derby 数据库开发

    Apache Derby 是一个开源的关系型数据库管理系统,它是Java平台上的轻量级数据库,特别适合于嵌入式应用和开发。Derby 提供了 ACID(原子性、一致性、隔离性和持久性)属性,使得它适用于需要高可靠性的应用程序。...

    eclipse derby的配置

    Apache Derby 是一款轻量级的关系型数据库管理系统,它完全用Java编写,以类库的形式提供服务,可以在多种操作系统上运行。...无论是对于学习数据库概念,还是进行实际项目开发,Derby都提供了便捷的工具和支持。

    derby_plugin derby_ui_plugin

    Derby Core Plugin(文件名:derby_core_plugin_10.2.2.485682.zip)是基础组件,提供了对Apache Derby数据库的核心支持。这个插件包含了以下关键特性: 1. **数据库连接管理**:允许开发者在Eclipse中创建、管理和...

    derby.jar derby.jar

    总结这些文件,我们可以看出这是与Java开发相关的资源集合,主要用于构建支持数据库操作(尤其是Apache Derby)、邮件处理以及Web表单文件上传的应用程序。这些库文件涵盖了数据库连接、邮件服务和文件上传等多个...

    derby指南

    对于初级开发工程师,尤其是对Oracle有一定了解的工程师,学习Derby能够快速提升其在Java开发中的数据库操作能力。整个学习过程大约需要100分钟,涵盖了从入门到实践的全面内容。通过这些知识,开发者能够有效地利用...

    Apache Derby 10.10版手册集

    - Derby Developer's Guide for 10.10版本:开发者指南是一本专门为软件开发者编写的书籍,涵盖如何使用Derby进行应用开发的各个方面。 - Tuning Derby for 10.10版本:性能调优指南提供了一系列优化Derby性能的技巧...

    derby10.10.1.1数据库

    Derby数据库以其轻量级、嵌入式特性而闻名,常用于开发桌面应用程序、测试环境以及小型服务器部署。 这个"db_derby10.10.1.1-bin.zip"压缩包是专门为Windows操作系统设计的,包含了Derby数据库的二进制文件和必要的...

    derby jar包.rar

    "derby jar包.rar"是一个包含Derby运行所需库文件的压缩包,它提供了运行和开发Derby应用程序的基础组件。 这个压缩包中通常会包含以下关键的JAR文件: 1. ` derby.jar`:这是Derby的核心库,包含了数据库引擎、...

    Derby开发指南

    - **目标读者**:主要面向数据库管理员、应用程序开发者以及其他对Derby感兴趣的人员。 - **组织结构**:文档被细致地划分为多个章节,每个章节针对不同的主题进行深入讲解。 #### 二、SQL语言参考 这部分详细...

    derby教程

    9. **应用开发**:通过“用 Apache Derby 进行数据库开发”系列文档,你可以逐步学习如何在实际项目中使用 Derby,包括创建数据库、编写 SQL 脚本、使用 DAO(数据访问对象)模式进行数据操作等。 10. **Apache ...

    MyEclipse Derby是什么.txt

    Cloudscape是一款轻量级且完全支持事务处理的Java关系型数据库引擎,适用于各种应用开发场景。 #### 二、Derby的历史背景 在介绍Derby之前,我们先了解一下它的前身——Cloudscape。Cloudscape是IBM于1999年推出的...

    myeclipse的derby插件

    Derby,又称为Apache Derby,是一个开源的关系型数据库管理系统,由IBM贡献给Apache软件基金会,它基于Java语言,因此非常适合Java应用程序的开发。在MyEclipse中集成Derby插件,可以方便开发者在IDE内部直接进行...

Global site tag (gtag.js) - Google Analytics