ImageVerifierCode 换一换
格式:DOCX , 页数:37 ,大小:35.66KB ,
资源ID:6978568      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-6978568.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Eclipse 和 HSQLDB 将关系数据库服务器嵌入到 Eclipse 中第一部分.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

Eclipse 和 HSQLDB 将关系数据库服务器嵌入到 Eclipse 中第一部分.docx

1、Eclipse 和 HSQLDB 将关系数据库服务器嵌入到 Eclipse 中第一部分本文介绍如何开发将 HSQLDB 纯 Java 关系数据库服务器集成到 Eclipse Workbench 中的插件。尽管不如 DB2 功能强大,也不如 MySQL 流行,但 HSQLDB(超音速 SQL 数据库)可以满足很大范围内 Java 应用程序的需要,因为它具有可扩展性,而且对内存/处理器的要求不高。如何编写将 HSQLDB 数据库服务器集成到 Eclipse Workbench 中的插件级别: 中级Fernando Lozano独立顾问2003 年 12 月本文介绍如何开发将 HSQLDB 纯 Ja

2、va 关系数据库服务器集成到 Eclipse Workbench 中的插件。尽管不如 DB2 功能强大,也不如 MySQL 流行,但 HSQLDB(超音速 SQL 数据库)可以满足很大范围内 Java 应用程序的需要,因为它具有可扩展性,而且对内存/处理器的要求不高。超音速 SQL 数据库后来正式更名为 HSQLDB,它是一类纯 Java 撰写的嵌入式关系数据库服务器,您可以在单机模式(使用直接文件访问)或客户机/服务器模式中使用它,它支持大量的并发用户。尽管不如 DB2 功能强大,也不如 MySQL 流行,但 HSQLDB(超音速SQL数据库)可以满足很大范围内 Java 应用程序的需要,因

3、为它具有可扩展性,而且对内存/处理器的要求不高。HSQLDB 是一类使用方便的 Java 开发数据库,因为它支持 Structured Query Language(SQL)的丰富子集,并且 Java 程序员根本不需要在他们的开发工作站上安装严重消耗处理器、内存和磁盘空间的数据库服务器。它对于集成到 Eclipse IDE 中来说是一种很理想的工具,既能为新手也能为经验丰富的开发人员提供有用的工具。 本文及同一系列的后续文章将向您展示如何构建一组 Eclipse 插件,以将 HSQLDB 嵌入到 Eclipse Workbench 中。您将看到一个现实世界中的例子,目的是说明如何在考虑到 AP

4、I 和用户接口(UI)的情况下开发这类插件,以及如何评估可供选择的方法以给用户带来所需要的功能。本文假定您使用的是 Eclipse SDK 分布,而不是 Platform Runtime-Binary 加上 JDT。但如果只是为了开发常规 Java 应用程序,则后者更加适合。在这个系列中,我们将根据“Levels of Integration” 一文中描述的基本原理(请参阅本文后面的 参考资料 中给出的链接),使用三个步骤创建并扩展插件组:1. 运行 Eclipse 中现有的工具, 以便从 Workbench 菜单容易地访问所需要的预先存在的工具。 2. 探讨如何使用 Eclipse 的其他功

5、能来向预先存在的工具集添加值,从而提高 Java 开发人员的生产力。 3. 使用 SWT 来重写工具,以实现与 Eclipse Workbench 的无缝集成。 了解 HSQLDB您可以从 SourceForge(; 请参阅 参考资料 中给出的链接)下载 HSQLDB,其中包括源代码和文档。这里注意不要与已经被冻结的原始 SourceForge 项目( )相混淆。二进制分布是一个标准的 ZIP 文件,而您要做的就是把这个 ZIP 文件解压缩到您硬盘上的某个地方。所有 HSQLDB 组件 数据库引擎、服务器进程、JDBC 驱动程序、文档以及一些实用工具都放在一个单独的 JAR 包中,这个包安装在

6、 lib/hsqldb.jar 中,大小在 260 KB 左右。运行数据库引擎只需 170 KB 的 RAM,这即使是 PDA(如 Sharp 生产的 Zaurus)也能够满足,而且包括源文件和文档在内的整个下载文件小到可以放到一张标准的 1.44 MB 软盘上。您可以从命令行启动数据库服务器和实用工具,具体方法是调用像 org.hsqldb.Server 和 org.hsqldb.util.DatabaseManager 这样的方便的类,这两个类均可以接受为数不多的一组命令行选项,如“-url”(用于远程连接)、“-database”(用于直接文件访问)和“-user”。还有一种“-?”选项

7、也可以被接受,其作用是提供关于有效命令行语法的帮助。造成 HSQLDB 简单性的关键因素是SQL语句执行的顺序化。也就是说,尽管许多并发用户可以连接到数据库上(当数据库以服务器模式运行时),但是所有 SQL 语句都被放到一个队列中,然后一次执行一条。因此不需要实现复杂的锁定及同步算法。尽管如此,HSQLB 还是实现了 ACID(Atomicity, Consistency, Isolation, and Durability,即原子性、一致性、隔离性和持久性) 语义。换句话说,它是一个事务性的数据库,但仅仅处于读未提交级别,还不具备事务隔离功能。HSQLDB 实际上是为嵌入式应用程序而不是为共

8、同数据中心而创建的。如果您想要使用触发器、聚合函数、外部联接、视图以及其他 SQL 功能,HSQLB 都可以满足您的需要(大部分轻量级关系数据库无法做到这一点)。通过把您的 Java 类添加到 HSQLB 的类路径中,您可以实现存储过程。然后您发出一条 CREATE FUNCTION 语句即可大功告成。事实上,像 SQRT 和 ABS 之类的许多标准 SQL 函数都被实现为到标准 Java 类(比如 java.lang.Math)的直接映射 。HSQLDB 的运行模式HSQLDB 引擎可以以多种模式运行,以适应不同的应用场合:驻留内存模式所有数据库表和索引都放在内存中,而且永远不会保存到磁盘上

9、。在您发出为什么有人想要使用在应用程序终止时就会丢失的数据库这样的疑问之前,请先考虑为您可以使用标准 SQL 语句进行查询、排序、分组和更新的数据库数据拥有一块本地高速缓存。单机模式应用程序使用 JDBC 创建一个数据库连接,并且 HSQLDB 引擎运行在该应用程序中,这时允许直接访问数据库文件。不能存在并发用户(应用程序独占地访问数据库文件),但因此也没有额外的线程和 TCP 连接开销。单机模式是许多嵌入式应用程序的首选模式。服务器模式这是类似于其他关系数据库的标准客户机/服务器数据库配置,允许出现使用 TCP 套接字的并发连接。大部分开发人员喜欢这种模式,因为它允许任何 JDBC 客户机在

10、主应用程序仍在运行的情况下连接并查询/更新表。Web服务器模式HSQLDB 可以用作 Web 服务器,可以通过 HTTP 接受 SQL 查询;也能作为任何标准 Web 容器中的 servlet 来运行,可以穿过防火墙或者安装在 Web 宿主服务上,而不用涉及到提供者支持小组(和昂贵的数据库宿主选项)。由于 HTTP 是无状态的,所以本模式中不存在事务。HSQLDB 数据库文件结构HSQLDB 将所有表和索引数据放在内存中, 将所有发出的 SQL 语句保存到一个名为 database.script 的文件中,该文件同时也充当着事务日志的角色。初始化引擎之后,该文件被读取,然后其中所有的 SQL

11、语句都被运行,从而完成整个数据库的重建。停机期间,HSQLDB 引擎将生成一个新的 database.script 文件,其中只包含最少的语句,目的是让数据库可以快速启动。除了默认放在内存中的表之外,HSQLDB 还支持“缓存”表和“文本”表。所有缓存表的数据放在一个名为 database.data 的文件中,而文本表的数据则放在由 set table source 非标准 SQL 语句命名的任意分隔文本文件(像 CSV 文件)中。缓存表支持比可用 RAM 大的数据集,而文本表则可以作为一种导入导出数据的方便手段。除了 database.script 和 database.data 文件之外,

12、任何 HSQLDB 数据库还可能包含一个 database.properties 文件,管理员可以在该文件中设置许多影响到 ANSI SQL 兼容性的参数。所有数据库文件(文本表数据文件除外)必须放在同一个目录中。不存在创建 HSQLDB 数据库的显式方法。如果您要求引擎打开一个目前不存在的数据库文件(使用服务器模式的 -database 选项或单机模式的 JDBC URL),就会创建该文件及其所在目录。所以,如果您肯定那个空数据库中存在数据,请检查是否有录入错误。现在让我们开始开发插件!创建 HSQLDB Eclipse 插件组把现有的应用程序放到 Eclipse 这样功能强大的工具中去并不

13、是一件容易的事情。值得庆幸的是,HSQLDB 和 Eclipse 均降低了上述任务的难度,因为 HSQLDB 本身可以嵌入到其他应用程序中,而 Eclipse 提供了清晰而且易于理解的插件基础设施以及用于创建新插件的健壮的开发环境 PDE。即使您以前从未接触过 Eclipse 插件开发,PDE 也可以让您很容易上手。请参阅本文后面 参考资料 部分中讲述 Eclipse 基础知识的文章。这些指导性内容假定您使用的是 Eclipse SDK 分布,而不是 Platform Runtime-Binary 加 JDT。但如果您只是要开发常规 Java 应用程序,则后者更加适合。您可以使用您最喜欢的操作

14、系统,因为我们将只使用 Java 代码,而根本不会用到本机代码。为了创建有用的插件组并尽可能地少书写代码,我们将从最不费力的工作开始。稍后,在这个系列的下一部分内容中,我们将看到如何利用 Eclipse 功能为 HSQLDB 提供增值。在本文中,我们将集中讲述我们代码的下列功能:1. 以服务器模式启动 HSQLDB 引擎,这样用户应用程序和 SQL 控制台(像 HSQLDB 自带的 DatabaseManager 实用工具)都可以运行 SQL 语句。 2. 完全停止 HSQLDB 服务器。 3. 调用 DatabaseManager 实用工具,这样开发人员可以从 Workbench 交互式地输

15、入 SQL 语句。 4. 使用 HSQLDB ScriptTool 实用工具运行 SQL 脚本文件。这些年来,为了创建数据库表和插入测试数据,我已经在我的项目文件夹中放入了大量 *.sql 文件,而且长久以来,我一直希望能够有一种容易的方式来运行它们。 5. 配置 HSQLDB 连接属性,比如 TCP 端口和管理员密码。 如何才能使得这些函数可以为 Workbench 所用呢?完成前面三步最容易的方式是提供一个 actionSet,它被添加到新的顶级菜单中并且可从它自己的工具栏访问。运行 SQL 脚本文件的操作必须只被绑定到扩展名为“*.sql” 的文件上,所以这将是一个 objectCont

16、ribution, 它被 Workbench 添加到显示这些文件的任意视图上的弹出式菜单中。最后,连接参数要能很好地符合插件的参数选择页面,从 Workbench Window 菜单中可以访问这个页面。图 1 显示了新的菜单和工具栏,而图 2 显示了 Navigator 视图的弹出式菜单中的新项,图 3 则显示了属性页面,这样您就可以看到我们的插件组的第一个版本是什么样子。图 1.HSQLDB 菜单和相关工具栏图 2. 添加到 *.sql 文件的弹出式菜单项图 3. HSQLDB 连接属性把 HSQLDB 变成一个 Eclipse 插件构建我们的插件组的第一步是把 HSQLDB 本身包装成一个

17、 Eclipse 插件。这个插件将只包含 hsqldb.jar 和 Workbench 要求的必要的plugin.xml 文件。如果您已经浏览了标准 Eclipse 插件目录,那么您可能已经发现,JUnit, Xerces, Tomcat,以及其他常见的 Java 包被隔离在它们各自的插件中,未曾改变,而且所有的 Eclipse 细节都被封装在其他插件中。这种划分方式使得这些第三方工具易于更新,而不一定要求改变 Eclipse 本身。另外一个好处就是与许多插件共享这些常见的库很容易。打开您的 Eclipse SDK 安装,并创建一个新的插件项目;将其命名为 hsqldb.core(我知道推荐使

18、用的名称是 org.hsqldb.core,但是我不愿意假装使用了 HSQLDB 名称空间。或许 HSQLDB 开发人员阅读至此会赞同这个想法,并推荐它为“正式的”Eclipse 集成插件;这样的话该名称极有可能被改掉)。确保选中的是“Empty Plugin” 选项, 而不是任何插件模板;否则,您将得到一个毫无用处的顶级插件类,如果您创建了该类之后希望删掉它,那么它可以被安全地删除。把 hsqldb.jar 从您的 HSQLDB 安装拷贝到项目目录中,并将其添加到项目的 Runtime。您可以使用 PDE Plugin Manifest Editor或者简单地拷贝清单 1 中的内容来完成这项

19、工作。清单 1. 用于 hsqldb.core 插件的 plugin.xml 清单文件 添加 Workbench 扩展接下来,创建名为 hsqldb.ui 的第二个插件项目。这个项目将为插件组的第一修订本包含所有的 Eclipse 扩展:包含三个操作的一个操作集、与 *.sql 文件相关的对象作用,以及一个属性页面。将其主类(Plugin 类)命名为 PluginUi,并接受包的默认名称 hsqldb.ui。使用 Plugin Manifest Editor 打开 plugin.xml 文件,并选择 Extensions 选项卡。将所分配菜单更名为 HSQLDB 并改变示范操作,使其显示标签“

20、Runs HSQLDB Database Manager”。向带有标签“Stops HSQLDB database server” 和“Starts HSQLDB database server”的同一个 actionSet 添加另外两个操作,并为每个操作提供惟一的操作 ID 和实现类。请注意,上述操作将以与创建时相反的顺序(即与在插件清单文件中出现的顺序相反)显示在菜单和工具栏中。单击 Add 按钮,从而使用 Extension 模板、弹出式菜单和属性页面添加两个新的扩展。弹出式菜单应该与 *.sql 文件模式相关联,但是属性页面字段应该通过编程进行设置。图 4 显示了 Plugin Man

21、ifest 编辑器的最终外观,并显示了所有的插件扩展;图 5 显示了对象分配的属性(注意针对 *.sql 文件的过滤器),而图 6 显示了文件资源弹出式菜单中的“Run SQL Script”操作的属性。 图标在本文的源代码中给出(请参阅 参考资料),但是我敢肯定您认识有比这画得更好的图形专家!图 4. 清单编辑器上的 HSQLDB 操作图 5. 清单编辑器上的 HSQLDB 对象分配图 6. 清单编辑器上的 Run SQL Script 操作在能够给我们的操作添加代码之前,我们需要将这种 UI 插件与相应的核心插件区别开来,否则它将不能访问 HSQLDB 类。转到 Plugin Manife

22、st Editor 上的“Dependencies” 页面,并添加一个插件依赖性,如图 7 所示。某些依赖性,像“eclipse.ui”,由 PDE 自动进行配置,而其他依赖性,像 “org.eclipse.debug.core”,则在对操作进行编码时添加。如果您情愿直接编辑 XML 代码,清单 2 显示了 hsqldb.ui 插件的完整 plugin.xml 文件。要完成插件的安装工作,请添加一个新类到 hsqldb.ui 包中,然后将其命名为 HsqldbUtil。这个类将包含所有直接处理 HSQLDB 的代码,并使分配的扩展代码保持简单。 图 7. hsqldb.ui 插件依赖性清单 2. hsqldb.ui 插件的 plugin.xml 清单文件 action label=Run SQL Script class=hsqldb.ui.popup.actions.HsqldbRunScript menubarPath=additions

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2