出处: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作为流行的Java集成开发环境,提供了丰富的工具支持,使得在Eclipse中开发Derby应用变得更加便捷。 首先,Java Development Tools (JDT)是Eclipse的核心组件,它包含了开发Java应用程序所需的基本功能,如...
在本节中,我们将详细介绍如何在 Eclipse 中安装 Apache Derby 相关插件,以便更好地支持数据库管理和开发工作。 ##### (一)所需组件 根据提供的部分内容,安装过程中会涉及以下组件: - `org.apache.derby.core...
Derby还支持嵌入式模式,可以直接在应用程序中运行,无需额外的服务器进程,这对于开发和测试环境非常方便。 Derby提供了丰富的JDBC驱动,使得Java开发者可以通过标准接口进行数据库操作。此外,它还支持SQL标准,...
该指南旨在为用户提供全面的 Derby 数据库开发知识,包括应用开发流程、连接数据库的方式以及如何优化应用程序的行为等。 #### 五、目标受众 - **Java 开发人员**:特别是那些希望利用 Derby 构建高效、轻量级应用...
**知识点:Apache Derby 10.6.2 内嵌数据库开发** Apache Derby是一款开源...通过以上知识点的详细阐述,开发者可以全面了解Apache Derby 10.6.2版的特性和功能,为实际项目中的数据库管理和应用开发打下坚实的基础。
- **应用开发概述:** 介绍了使用Derby进行应用开发的一般步骤和考虑因素。 - **Derby嵌入式基础:** 解释了如何将Derby作为应用程序的一部分直接嵌入。 - **Derby JDBC驱动:** 介绍了Derby提供的JDBC驱动程序及其...
Apache Derby 是一个开源的关系型数据库管理系统,它是Java平台上的轻量级数据库,特别适合于嵌入式应用和开发。Derby 提供了 ACID(原子性、一致性、隔离性和持久性)属性,使得它适用于需要高可靠性的应用程序。...
Apache Derby 是一款轻量级的关系型数据库管理系统,它完全用Java编写,以类库的形式提供服务,可以在多种操作系统上运行。...无论是对于学习数据库概念,还是进行实际项目开发,Derby都提供了便捷的工具和支持。
Derby Core Plugin(文件名:derby_core_plugin_10.2.2.485682.zip)是基础组件,提供了对Apache Derby数据库的核心支持。这个插件包含了以下关键特性: 1. **数据库连接管理**:允许开发者在Eclipse中创建、管理和...
总结这些文件,我们可以看出这是与Java开发相关的资源集合,主要用于构建支持数据库操作(尤其是Apache Derby)、邮件处理以及Web表单文件上传的应用程序。这些库文件涵盖了数据库连接、邮件服务和文件上传等多个...
对于初级开发工程师,尤其是对Oracle有一定了解的工程师,学习Derby能够快速提升其在Java开发中的数据库操作能力。整个学习过程大约需要100分钟,涵盖了从入门到实践的全面内容。通过这些知识,开发者能够有效地利用...
- Derby Developer's Guide for 10.10版本:开发者指南是一本专门为软件开发者编写的书籍,涵盖如何使用Derby进行应用开发的各个方面。 - Tuning Derby for 10.10版本:性能调优指南提供了一系列优化Derby性能的技巧...
Derby数据库以其轻量级、嵌入式特性而闻名,常用于开发桌面应用程序、测试环境以及小型服务器部署。 这个"db_derby10.10.1.1-bin.zip"压缩包是专门为Windows操作系统设计的,包含了Derby数据库的二进制文件和必要的...
"derby jar包.rar"是一个包含Derby运行所需库文件的压缩包,它提供了运行和开发Derby应用程序的基础组件。 这个压缩包中通常会包含以下关键的JAR文件: 1. ` derby.jar`:这是Derby的核心库,包含了数据库引擎、...
- **目标读者**:主要面向数据库管理员、应用程序开发者以及其他对Derby感兴趣的人员。 - **组织结构**:文档被细致地划分为多个章节,每个章节针对不同的主题进行深入讲解。 #### 二、SQL语言参考 这部分详细...
9. **应用开发**:通过“用 Apache Derby 进行数据库开发”系列文档,你可以逐步学习如何在实际项目中使用 Derby,包括创建数据库、编写 SQL 脚本、使用 DAO(数据访问对象)模式进行数据操作等。 10. **Apache ...
Cloudscape是一款轻量级且完全支持事务处理的Java关系型数据库引擎,适用于各种应用开发场景。 #### 二、Derby的历史背景 在介绍Derby之前,我们先了解一下它的前身——Cloudscape。Cloudscape是IBM于1999年推出的...
Derby,又称为Apache Derby,是一个开源的关系型数据库管理系统,由IBM贡献给Apache软件基金会,它基于Java语言,因此非常适合Java应用程序的开发。在MyEclipse中集成Derby插件,可以方便开发者在IDE内部直接进行...