`
yikaicheng_happy
  • 浏览: 7572 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论
阅读更多

Hsqldb 是一个开放源代码的JAVA数据库,其具有标准的SQL语法和JAVA接口,它可以自由使用和分发,非常简洁和快速的。具有Server模式,进程内模式(In-Process)和内存模式(Memory-Only)三种。运行Hsqldb 需要hsqldb .jar包, 它包含了一些组件和程序。每个程序需要不同的命令来运行。它位于项目的lib目录下,目前的版本是1.8.0.10。官方的下载地址是:http://sourceforge.net/project/showfiles.php?group_id=23316&package_id=16653 在介绍这些模式之前我们需要了解一些Hsqldb 所涉及的一些文件。每个Hsqld数据库包含了2到5个命名相同但扩展名不同的文件,这些文件位于同一个目录下。例如,名位"test"的数据库包含了以下几个文件:

  • test.properties <o:p></o:p>
  • test.script <o:p></o:p>
  • test.log <o:p></o:p>
  • test.data <o:p></o:p>
  • test.backup

properties 文件描述了数据库的基本配置。 script 文件记录了表和其它数据库对象的定义。 log 文件记录了数据库最近所做的更新。 data 文件包含了 cached (缓冲)表的数据,而 backup 文件是将 data 文件压缩备份,它包含了 data 文件上次的最终状态数据。所有这些文件都是必不可少的,千万不可擅自删除。但如果你的数据库没有缓冲表 (cached table),test.data test.backup 文件是不会存在。

  接下来我们对 Hsqldb 的三种模式进行简单介绍,同时包括部分工具的启动的方式

<o:p>一、 Server 模式 </o:p>

  Server 模式提供了最大的可访问性。应用程序(客户端)通过 Hsqldb JDBC 驱动连接服务器。在服务器模式中,服务器在运行的时候可以被指定为最多 10 个数据库。根据客户端和服务器之间通信协议的不同, Server 模式可以分为以下三种:

1 Hsqldb Serve

   这种模式是首选的也是最快的。它采用 HSQLDB 专有的通信协议。启动服务器需要编写批处理命令。 Hsqldb 提供的所有工具都能以 java class 归档文件 ( 也就是 jar) 的标准方式运行。假如 hsqldb .jar 位于相对于当前路径的 ../lib 下面。我们的命令将这样写:

   java -cp ../lib/hsqldb .jar org.hsqldb .Server -database.0 mydb -dbname.0 demoDB

  现在你可能会疑惑, [-database.0 ] [dbname.0] 为什么在后面加 [0] _ ... ... 我们不是在前面说服务模式运行的时候可以指定 10 个数据库吗,如有多个数据库,则继续写命令行参数 -database.1 aa -dbname.1 aa -database.2 bb-dbname.2 bb ... ...

  新建文本文件保存上面命令,文件名可以随意,将后缀名改成 bat ,然后直接执行批处理文件即可。在以后介绍的执行启动工具的命令采用同样方法。

   上面启动服务器的命令启动了带有一个(默认为一个数据库)数据库的服务器,这个数据库是一个名为 "mydb.*" 文件,这些文件就是 mydb.Properties mydb.script mydb.log 等文件。其中 demoDB mydb 的别名,可在连接数据库时使用。 <o:p></o:p>

<o:p>2 Hsqldb Web Server </o:p>

<o:p>  这种模式只能用在通过 HTTP 协议访问数据库服务器主机,采用这种模式唯一的原因是客户端或服务器端的防火墙对数据库对网络连接强加了限制。其他情况下,这种模式不推荐被使用。 </o:p>

<o:p> 运行 web 服务器的时候,只要将刚才命令行中的主类( main class )替换成: org.hsqldb .WebServer </o:p> <o:p></o:p>

3 Hsqldb Servlet

这种模式和 Web Server 一样都采用 HTTP 协议,当如 Tomcat Resin servlet 引擎(或应用服务器)提供数据库的访问时,可以使用这种模式。但是 Servlet 模式不能脱离 servlet 引擎独立启动。为了提供数据库的连接,必须将 HSQLDB .jar 中的 hsqlServlet 类放置在应用服务器的相应位置。

   Web Server Servlet 模式都只能在客户端通过 JDBC 驱动来访问。 Servlet 模式只能启动一个单独的数据库。请注意做为应用程序服务器的数据库引擎通常不使用这种模式。 <o:p></o:p>

连接到以 Server 模式运行的数据库

HSQLDB 服务器运行时,客户端程序就可以通过 hsqldb .jar 中带有的 HSQLDB JDBC Driver 连接数据库。

java 代码
  1. try {
  2. Class.forName( "org. hsqldb .jdbcDriver" ) ;
  3. } catch (ClassNotFoundException e){
  4. e.printStackTrace();
  5. }
  6. Connection c = DriverManager.getConnection( "jdbc: hsqldb :hsql://localhost/xdb" , "sa" , "" );

hsqldb 的默认用户是 sa 密码为空。修改默认密码的方法我们将在工具使用部分做出介绍。

<o:p></o:p> 二、 In-Process 模式

In-Process 模式又称 Standalone 模式。这种模式下,数据库引擎作为应用程序的一部分在同一个 JVM 中运行。对于一些应用程序来说, 这种模式因为数据不用转换和通过网络的传送而使得速度更快一些。其主要的缺点就是默认的不能从应用程序外连接到数据库。所以当应用程序正在运行的时候,你不能使用类似于 Database Manager 的外部工具来查看数据库的内容。在 <st1:chsdate isrocdate="False" w:st="on" year="1899" day="30" islunardate="False" month="12">1.8.0 </st1:chsdate>版本中,你可以从同一个 JVM 的一个线程里面来运行一个服务器实例,从而可以提供外部连接来访问你的 In-Process 数据库。

  推荐的使用 In-Process 模式方式是:开发的时候为数据库使用一个 HSQLDB 服务器实例,然后在部属的时候转换到 In-Process 内模式。

  一个 In-Process 模式数据库是从 JDBC 语句开始启动的,在连接 URL 中带有指定的数据库文件路径作为 JDBC 的一部分。例如,假如数据库名称为 testdb ,它的数据库文件位于与确定的运行应用程序命令相同的目录下,下面的代码可以用来连接数据库:

   Connection c = DriverManager.getConnection("jdbc:hsqldb:file:/apache-tomcat/hsqldb/demoDB", "sa", "");

数据库文件的路径格式在Linux主机和Windows主机上都被指定采用前斜线("/")。所以相对路径或者是相对于相同分区下相同目录路径的表达方式是一致的。使用相对路径的时候,这些路径表示的是相对于用于启动JVM的shell命令的执行路径。

三、Memry-Only数据库


  Memory-Only数据库不是持久化的而是全部在随机访问的内存中。因为没有任何信息写在磁盘上。这种模式通过mem:协议的方式来指定:

Connection c = DriverManager.getConnection("jdbc:hsqldb :mem:dbName", "sa", "");
  你也可以在server.properties中指定相同的URL来运行一个Memory-Only(仅处于内存中)服务器实例。

  注意事项:当一个服务器实例启动或者建立一个in-process数据库连接的时候,如果指定的路径没有数据库存在,那么就会创建一个新的空的数据库。这个特点的副作用就是让那些新用户产生疑惑。在指定连接已存在的数据库路径的时候,如果出现了什么错误的话,就会建立一个指向新数据库的连接。为了解决这个问题,你可以指定一个连接属性ifexists=true只允许和已存在的数据库建立连接而避免创建新的数据库,如果数据库不存在的话,getConnection()方法将会抛出异常。

四、 工具的使用


  Hsqldb 提供的主要的工具类:

  • org.hsqldb .util.DatabaseManager
  • org.hsqldb .util.DatabaseManagerSwing
  • org.hsqldb .util.Transfer
  • org.hsqldb .util.QueryTool
  • org.hsqldb .util.SqlTool


  其中DatabaseManage和Sql Tool,只能用命令行参数来运行。你可以在命令行后面加上参数-?来查看这些工具可用的参数列表。其他工具可以通过DatabaseManager的主界面启动,便于交互式操作。

  为了便于操作,我们同样把这些工具启动的命令做成批处理文件。方法和前面我们所介绍的创建启动服务模式命令的方法一样。在这里我们再强调一次hsqldb .jar的位置,因为所有启动命令都是参照hsqldb .jar的位置编写的

  如果您觉得麻烦你也可以采用绝对路径编写命令。

  现在我们一起运行AWT版本的DatabaseManager工具,hsqldb .jar位于相对于当前路径的../lib下面,命令如下:

  Java -cp ../lib/hsqldb .jar org.hsqldb .util.DatabaseManager

  将命令保存为后缀名为bat的批处理文件,保存为DatabaseManager.bat,也可根据个人习惯命名。执行DatabaseManager.bat你将看到如下画面:。

现在对这个简洁的登录界面做个简单的介绍*_*

  • Recent:选择你最近的登录方案,[可选]
  • Setting Name:本次登录方案名称,如果本次登录成功,那么等你下次登录的时候在Recent下拉列表中将看到你的成功登录方案[可选]
  • Type:登录模式,其中包括In-Memory模式、Standalone(In-process)模式、Server模式、WebServer模式... ...[必选]
  • Driver:连接数据库的驱动程序[必选]
  • URL:连接数据库的URL[必选]
  • User:用户名[必选]
  • Password:密码[ 除非密码为空]


  注:如果Type项选择Server模式或者WebServer模式需要你事先启动与之对应的服务模式。而Standalone(In-process)默认是不支持DatabaseManager连接的,具体原因我们已经在前面解释过。至于In-Memory可以随意登录,所有的操作数据都不会记录在本地磁盘。而Type还有很多其他选项,具体的用法可以参考官方文档,位置在hsqldb 目录\doc\guide\ guide.pdf。

  如果你想运行DatabaseManagerSwing也很简单,相信你已经想到了。我们只需要把启动DatabaseManager命令修改成:
  Java -cp ../lib/hsqldb .jar org.hsqldb .util. DatabaseManagerSwing

  两种工具的操作方法类似,这里就不再赘述。

差点忘记,前面我说过要给出修改sa用户密码的方法。最后再占用大家一点点时间。当你用SA通过DatabaseManager登录成功后会出现如下界面:

在右上方的空白区域输入set password "newpassword" 点击执行即可。

 

Hsqldb中分页:

select  limit 0 5  *  from [表名]

其中0表示第一条数据 1表示第二条记录

      5 表示查询5条数据

 

 

 

分享到:
评论
发表评论

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

相关推荐

    hsqldb快速入门

    以下是对HSQldb快速入门的详细讲解: **安装与配置** HSQldb可以从其官方网站(http://www.hsqldb.org/)下载最新稳定版,解压缩后,你会在`doc`目录下找到`User Guide`,这是HSQldb的官方用户手册,包含了详细的...

    java_hsqldb.jar_sqltool.jar_快速入门文档和代码

    在快速入门文档中,你可能会学习到如何下载和添加这两个jar包到你的项目中。通常,只需要将hsqldb.jar和sqltool.jar添加到项目的类路径中,就可以在Java代码中创建数据库连接并执行SQL语句。对于命令行使用,你可以...

    HSQLDB快速连接数据库

    #### 一、HSQLDB简介与特点 HSQLDB(HyperSQL Database)是一款优秀的轻量级开源纯Java SQL数据库管理系统。它被设计为易于集成到现有的Java应用环境中,尤其适合那些对性能和资源消耗有较高要求的应用场景。HSQLDB...

    HSQLDB快速上手实录

    ### HSQLDB快速上手实录 #### 一、引言 HSQLDB(HyperSQL Database)是一款基于Java编写的轻量级关系型数据库管理系统,它...希望本篇文章能够帮助初学者快速上手HSQLDB,并在实践中不断探索更多的功能和技术细节。

    HSQLDB用户指导学习手册

    - **运行工具**:介绍了运行HSQLDB所需的工具和环境配置,确保用户能够顺利启动和使用数据库。 - **服务器模式**:涵盖了HSQLDB支持的各种服务器模式,包括HSQLDB Server、HSQLDB Web Server、HSQLDB Servlet以及In-...

    HSQLDB中文文档

    - **定义**:HSQLDB(HyperSQL Database)是一款轻量级、开源的纯Java SQL数据库管理系统,适用于开发测试、小型应用和嵌入式场景。 - **特点**: - 轻量级:体积小、资源占用低。 - 纯Java实现:可以在任何支持...

    HSQL中文文档入门学习

    《HSQLDB中文文档入门学习》 HSQLDB(HyperSQL数据库)是一款开源、轻量级、嵌入式的Java关系型数据库管理系统,广泛应用于开发测试、小型应用以及单机应用中。它支持标准的SQL语法,并且具有高性能、低资源消耗的...

    spring-adventure-football-manager:Spring MVC、Hibernate、JPA、Hsqldb 入门

    本项目"spring-adventure-football-manager"旨在引导初学者通过Spring MVC、Hibernate、JPA和Hsqldb来创建一个入门级的足球经理应用程序,这是一次极好的学习实践机会。 1. **Spring MVC**: Spring MVC是Spring...

    spring boot入门的第一个项目

    例如,引入了`spring-boot-starter-data-jpa`,那么Spring Boot会自动配置JPA和HSQLDB数据库支持。 **5. RESTful API** 对于Web服务,Spring Boot通过`@RestController`注解创建RESTful API。`@RequestMapping`和`@...

    hibernate入门教程

    Hibernate的入门学习主要包括理解这些基本概念和操作,后续深入学习则会涉及到复杂映射、事务处理、性能优化和缓存管理等高级话题。随着不断实践和学习,开发者可以充分利用Hibernate框架提供的各种特性,编写更加...

    Eclipse Web开发从入门到精通(实例版)

    《Eclipse Web开发从入门到精通(实例版)》是一本详尽的指南,旨在帮助读者掌握使用Eclipse这一流行的开源集成开发环境(IDE)进行Web开发的技术和实践。本书覆盖了从Eclipse的基本操作到高级特性,以及如何利用...

    IReport入门(官方网)

    2)设计报表,包括元素布局和表示数据的参数;3)运行报表,这包括将JRXML源文件编译为Jasper文件,并填充数据以供导出或屏幕显示。 首先,让我们从建立连接开始。你可以使用任何数据库和表,但如果你想按照教程中...

    dorado5 快速入门

    本入门手册将引导初学者快速掌握Dorado5的基本操作和核心概念。 1. **前言** 在这个部分,作者介绍了Dorado5的主要特性,包括其模型-视图-控制器(MVC)架构、丰富的组件库、灵活的数据绑定机制以及对AJAX支持。...

    dorado快速入门手册一

    - **简介**:简要介绍HSQLDB的特点和优势。 - **使用HSQL数据库**:如何在dorado项目中使用HSQLDB作为数据库服务。 - **hsql使用参考**:提供一些常用的HSQLDB命令和语法示例。 - **视图模型基本概念以及实现类...

    Eclipse+Web开发从入门到精通(实例版).pdf

    书中还通过实例讲解了数据库开发的内容,以学生成绩管理系统为例,介绍了如何使用HSQLDB数据库,并利用SQLExplorer插件连接数据库,创建成绩表,以及如何使用JavaBean映射成绩表和管理成绩。这个实例不仅涉及了...

    掌握的jBPM的入门教程.doc

    - **数据库存储**:为了持久化流程定义和运行时数据,jBPM支持多种数据库,包括但不限于HSQLDB(内存数据库)、MySQL、Oracle、PostgreSQL和Sybase等。 - **流程设计器**:jBPM提供了多种流程设计工具,包括客户端...

    springboot入门以及短息服务源码

    例如,如果你有`spring-boot-starter-data-jpa`,SpringBoot会自动配置JPA和HSQLDB数据库连接。在短信服务中,可能也会有类似的自动配置,比如对HTTP客户端或阿里大鱼SDK的配置。 接下来,我们来看看阿里大鱼。阿里...

Global site tag (gtag.js) - Google Analytics