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

2023-12-26 05:40

本文主要是介绍用 Apache Derby 进行开发 —— 取得节节胜利: 介绍 Apache Derby,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://www.ibm.com/developerworks/cn/opensource/os-ad-trifecta1/

亲自去试试 —— 欣赏它的简易性

从某一点来说,几乎每个应用程序开发人员都面临着保存数据的需求。随着支持 Internet 或 Web 的应用程序的增长,这种需要变得更加紧迫。常规专栏 “用 Apache Derby 进行开发 —— 取得节节胜利” 的这一期将介绍 Apache Derby —— 一个开放源码的、基于标准的、小内存占用的 Java 数据库系统 —— 把它与其他数据库系统进行比较,并讨论与它的下载和安装有关的问题。阅读完本文之后,就应当做好了开始用 Derby 开发数据库应用程序的准备。

Robert Brunner (rb@ncsa.uiuc.edu), NCSA 研究科学家,天文学助理教授, 伊利诺斯大学,Urbana-Champaign

2006 年 4 月 27 日

  • expand内容

Apache Derby 项目

本文是新的 “用 Apache Derby 进行开发 —— 取得节节胜利” 系列的第一篇,这个系列专门研究由 Apache Derby 项目开发的软件技术。Apache Derby 项目发布的软件是基于 IBM 赠给 Apache 软件基金会的技术基础上的开放源码数据库。Apache Derby 数据库软件是用 Java™ 编程语言编写的,所以是高度可移植的,但是在一个小小的包中仍然提供了可观的性能。

Derby 数据库也实现了许多数据库标准,所以如果有过数据库经验要开始使用 Derby,或者在需要的时候要把现有 Derby 数据库应用程序移动到其他符合标准的数据库系统,都会很容易。因为 Derby 正式发布还不到一年,所以有用的信息比较缺乏。IBM developerWorks 正在用大量 文章和教程 来填补这个空白。本系列针对的是数据库系统经验不多的用户。developerWorks Web 站点上的其他文章对 Apache Derby 数据库软件提供了更高级的介绍以及有关如何把它集成到 Java 企业软件栈中的信息。

为了符合本系列的精神,本文在详细讨论 Apache Derby 之前,首先简要介绍一下数据库系统。

数据库系统简要介绍

不论您是否意识得到,在 Internet 上冲浪时,其实是在与各种数据库支持(database-backed)的 Web 应用程序进行交互。这种说法可能还比较陌生,但它只是表示所访问的 Web 站点是用保存在数据库中的数据动态生成的。为了演示,请考虑以下可能访问的 Web 站点类型:

  • 信息门户,例如 图 1 所示的 developerWorks 开放源码项目区
  • 追踪本地新闻或体育事件的报纸 Web 站点
  • 财经 Web 站点,例如银行或投资机构的站点,您用于监视自己的金融投资组合
  • 地图 Web 站点,用于查找驾车路线
  • 搜索引擎,可以找到有兴趣的 Web 站点,获得某个主题的更详细信息
图 1. developerWorks 开放源码项目区
developerWorks 开放源码项目区

点击查看大图

这些示例,每个都使用数据库动态地保存、查找和检索信息。在这些应用程序中,Web 站点从用户收集必要的信息(例如街道地址),查询应用程序数据库,并把请求的数据集合到一个合适的可视结果中。

许多这样的数据库系统都是又大又复杂 —— 试想一下要容纳用图片提供正确驾车路线所需要的全部地图信息!显然,保存数据,并让应用程序可以使用数据,是一项巨大的任务,这项任务已经被许多厂商解决了,其中 IBM 使用 IBM DB2®,Microsoft® 使用 Microsoft SQL Server。这些商业数据库系统提供了完整的、企业级的能力。所以,它们可以容纳海量数据,可以并发地与大量用户交互,能够在多个大型计算系统之间伸缩。

数据库角色

与您预期的一样,处理这些系统并不简单,而且它们运作起来也会很昂贵。从历史上看,操作这些数据库所需要的任务分成三类。虽然角色之间有时会有重叠,但它们各自的职责理解起来很容易:

  1. 数据库管理员(DBA) —— 负责数据库系统的整体操作,其中包括:底层硬件的选择和布置,数据库服务器的安装和优化(特别是在使用硬件的情况下),数据库服务器的日常操作,例如数据备份和恢复。
  2. 数据库开发人员 —— 负责实际运行的数据库,包括设计数据库、模式、表、表关系、索引,以及对查询进行优化。
  3. 数据库应用程序开发人员 —— 负责通过用数据库应用程序编程接口(API),例如 Java 数据库连接(JDBC)或开放数据库连接(ODBC),根据需要保存和检索数据,从而把应用程序代码与底层数据库集成在一起。

如果前面的讨论让您觉得有点害怕,那就对了 —— 操作数据库历史上来说一直都很难。为了理解为什么,我们详细地来看一个具体示例:在线银行。在连接到银行的 Web 站点时,要提供凭证(最常见是用户名和口令),然后获得对财务帐户的访问。可以查看数据、支付帐户、转移资金。银行使用的数据库必须迅速地找到相关信息,安全地管理交易、安全地与用户交互,而最重要的是不能丢失任何数据!并且银行必须要同时为大量用户做这件事。

但并不是所有的应用程序都这么严格要求,特别是刚开始设计的应用程序。如果只是学习使用数据库,或者只想快速地实现数据库应用程序的原型,那么大多数商业数据库系统可能过于笨重。幸运的是,用 Apache Derby 数据库开发支持数据库的应用程序要比想像的简单。本文其余部分,将提供对 Apache Derby 项目的基本介绍。未来的专栏文章会演示如何用 Apache Derby 数据库构建数据库应用程序。

什么是 Apache Derby 项目?

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 项目诞生了(参见 图 2)。

图 2. Apache Derby 项目的 Web 站点
Apache Derby 项目的 Web 站点

这时,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 通用数据库™。

Apache Derby 数据库概述

Apache Derby 是用 Java 语言编写的,所以可以在任何存在合适的 Java 虚拟机(JVM)的地方运行。这意味着 Derby 实际上可以在任何操作系统上运行,包括 Microsoft Windows®、Macintosh、Linux® 和 UNIX® 平台。Derby 也可以在三个 Java 平台的任何一个上运行:Java 2 Platform, Micro Edition (J2ME)、Java 2 Platform, Standard Edition (J2SE) 和 Java 2 Platform, Enterprise Edition (J2EE)。Derby 软件绑定在 Java 档案(JAR)文件中,只有 2 MB 大小。由于内存占用这么小,所以 Derby 数据库可以容易地与应用程序绑定在一起。

可以用两种方式使用 Derby 数据库:

  • 作为内嵌的数据库,用户并不知道数据库的存在。应用程序使用数据库,二者在同一个 JVM 中运行,而数据库把数据保存在本地文件系统中。在内嵌模型中,数据库只与运行在同一 JVM 中的应用程序通信。
  • 作为客户机-服务器连接,是许多商业厂商使用的更传统的模型。在这种模型中,应用程序通过网络连接与数据库通信,应用程序和数据库分别在各自的 JVM 中运行。数据库服务器可以与多个客户机应用程序通信。

下载 Apache Derby

为了体会使用 Apache Derby 的简单性,最好的方式就是亲自试用它。本节其余部分提供了下载和验证 Apache Derby 版本的通用说明(请参阅参考资料 获得 Apache Derby 官方 Web 站点的链接,获得针对具体操作系统的说明)。这些说明假设已经在系统上安装了合适的 Java 运行时环境(JRE)。任何高于 1.3 版本的 JRE 都可以,但是本系列文章使用 Java 1.4.2 及以上版本。

这些准备条件就绪后,第一步是下载 Apache Derby。如 图 3 所示,可以下载三个不同版本:源代码、库和二进制。源代码版本就是源代码。要使用这个版本,必须编写源代码并构建自己的 .jar 文件。库版本只包含 Derby 数据库必要的 .jar 文件。二进制版本包含 .jar 文件和 Derby 文档。

为了简单起见,请下载二进制版本。请确保验证下载的完整性;包括验证 PGP(Pretty Good Privacy)签名,它可以保证下载的是正式版本,还要验证 MD5(消息摘要算法 5)签名,它可以保证下载的文件没有破坏。

图 3. 下载 Apache Derby 数据库
下载 Apache Derby 数据库

安装 Apache Derby

在成功下载并验证了包含 Derby 数据库文档的档案之后,安装非常简单(虽然有轻微的平台依赖性):

  1. 选择合适的位置,例如在 Windows 系统上的 C:\Apache 或在基于 Unix 的系统上 的 /opt/Apache。
  2. 打开终端窗口(在 Windows 上是命令提示符),转换到这个新目录,展开包含 Derby 数据库的档案。这么做之后,会创建一个新目录,目录名与安装的 Derby 数据库版本对应,例如 db-derby-10.1.2.1-bin。
  3. 把 Derby .jar 文件添加到 CLASSPATH 环境变量。如果习惯使用命令提示符,也可以直接把 derby.jar(位于 db-derby-10.1.2.1-bin/lib 子目录)添加到 CLASSPATH 变量。另外,也可以运行 db-derby-10.1.2.1-bin\frameworks\embedded\bin 子目录中提供的 setEmbeddedCP 脚本。在运行这个脚本之前,或者应当设置 DERBY_INSTALL 环境变量,或者修改脚本,以便 DERBY_INSTALL 指向安装 Derby 数据库的目录。
  4. 用 sysinfo 工具验证安装,如 清单 1 所示。
清单 1. 用 sysinfo 测试 Derby 安装
rb$ java org.apache.derby.tools.sysinfo
------------------ Java Information ------------------
Java Version:    1.4.2_09
Java Vendor:     Apple Computer, Inc.
Java home:       /System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Home
Java classpath:  /opt/Apache/db-derby-10.1.2.1-bin/lib/derby.jar:/opt/Apache/db-derby-10.1.2.1-bin/lib/derbytools.jar:.
OS name:         Mac OS X
OS architecture: ppc
OS version:      10.4.3
Java user name:  rb
Java user home:  /Users/rb
Java user dir:   /opt/Apache/db-derby-10.1.2.1-bin
java.specification.name: Java Platform API Specification
java.specification.version: 1.4
--------- Derby Information --------
JRE - JDBC: J2SE 1.4.2 - JDBC 3.0
[/opt/Apache/db-derby-10.1.2.1-bin/lib/derby.jar] 10.1.2.1 - (330608)
[/opt/Apache/db-derby-10.1.2.1-bin/lib/derbytools.jar] 10.1.2.1 - (330608)
[/opt/Apache/db-derby-10.1.2.1-bin/lib/derby.jar] 10.1.2.1 - (330608)
[/opt/Apache/db-derby-10.1.2.1-bin/lib/derbytools.jar] 10.1.2.1 - (330608)
------------------------------------------------------
----------------- Locale Information -----------------
------------------------------------------------------

这时,就有了一个可工作的数据库系统,既可以作为独立的网络服务器运行,也可以作为内嵌的数据库在自己的应用程序中运行。未来的专栏文章会介绍如何在这两种模型下运行 Derby,并提供附加的数据库深入介绍。

使用 Apache Derby

使用数据库系统并不很难。使用 Apache Derby,可以迅速地开始使用特性齐全的数据库系统。而且因为 Apache Derby 是符合标准的数据库,所以在情况许可的时候,用它开发的应用程序可以容易地迁移到更强大的数据库系统上。

这篇关于用 Apache Derby 进行开发 —— 取得节节胜利: 介绍 Apache Derby的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/538290

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测