`

Hsqldb基本使用

阅读更多
Hsqldb是一个开放源代码的JAVA数据库,其具有标准的SQL语法和JAVA接口,它可以自由使用和分发,非常简洁和快速的。具有Server模式,进程内模式(In-Process)和内存模式(Memory-Only)三种。运行Hsqldb需要hsqldb.jar包, 它包含了一些组件和程序。每个程序需要不同的命令来运行。它位于项目的lib目录下,目前的版本是1.8.0.5。官方的下载地址是:http://prdownloads.sourceforge.net/hsqldb/hsqldb_1_8_0_5.zip?download
        在介绍这些模式之前我们需要了解一些Hsqldb所涉及的一些文件。每个Hsqld数据库包含了2到5个命名相同但扩展名不同的文件,这些文件位于同一个目录下。例如,名位"test"的数据库包含了以下几个文件:
test.properties
test.script
test.log
test.data
test.backup
properties文件描述了数据库的基本配置。 script文件记录了表和其它数据库对象的定义。log文件记录了数据库最近所做的更新。data文件包含了cached(缓冲)表的数据,而backup文件是将data文件压缩备份,它包含了data文件上次的最终状态数据。所有这些文件都是必不可少的,千万不可擅自删除。但如果你的数据库没有缓冲表(cached table),test.data和test.backup文件是不会存在。

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

一、 Server模式
 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的别名,可在连接数据库时使用。

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

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

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

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

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

java 代码
try{   
  
         Class.forName("org.hsqldb.jdbcDriver") ;   
  
}catch(ClassNotFoundException e){   
  
         e.printStackTrace();     
  
}   
  
     Connection c = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/xdb", "sa", "");   
  
   注:hsqldb的默认用户是sa密码为空。修改默认密码的方法我们将在工具使用部分做出介绍。

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

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

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

  Connection c = DriverManager.getConnection("jdbc:hsqldb:file:testdb ", "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()方法将会抛出异常。
0
0
分享到:
评论

相关推荐

    HSQLDB简介和基本使用.doc

    HSQLDB简介和基本使用 HSQLDB简介和基本使用 HSQLDB简介和基本使用

    用于数据库表和字段的查询以及数据库元数据的进一步使用的工具源码,数据库元数据 - 通用工具

    目前支持以下数据库(都能正确获取注释信息): Oracle Mysql MariaDB SQLite Hsqldb ...这个项目除了实现基本的表和字段查询外,还算是一个基于界面使用该工具的基础,你可以在该项目基础上增加其他功能。

    JBPM的使用与简单的操作

    安装hsqldb,并在后台启动。 创建数据库结构 在后台启动JBoss 根据示例创建一个examples.bar业务归档,把它发布到jBPM数据库中 从${jbpm.home}/install/src/demo/example.identities.sql,读取用户和组。 安装...

    EasyJForum v3.0 Java技术的社区论坛.rar

    系统相仿以方便用户使用,其基本目的是为基于 Java 平台的中文站点提供最好的论坛服务。通过本系统,网站架设者不需要进行任何编程,经过简单的安装和设置,在网上 搭建起功能完善的论坛服务。  EasyJForum 是...

    EasyJForum v3.0 简体中文 GBK.zip

    系统相仿以方便用户使用,其基本目的是为基于 Java 平台的中文站点提供最好的论坛服务。通过本系统,网站架设者不需要进行任何编程,经过简单的安装和设置,在网上 搭建起功能完善的论坛服务。 EasyJForum 是一套...

    EasyJForum v3.0 繁体中文 UTF8.zip

    系统相仿以方便用户使用,其基本目的是为基于 Java 平台的中文站点提供最好的论坛服务。通过本系统,网站架设者不需要进行任何编程,经过简单的安装和设置,在网上 搭建起功能完善的论坛服务。 EasyJForum 是一套...

    EasyJForum v3.0 繁体中文 BIG5.zip

    系统相仿以方便用户使用,其基本目的是为基于 Java 平台的中文站点提供最好的论坛服务。通过本系统,网站架设者不需要进行任何编程,经过简单的安装和设置,在网上 搭建起功能完善的论坛服务。 EasyJForum 是一套...

    ProjetoBaseVraptorAngularJS

    这是使用以下技术的 Java Web 项目的基本架构项目: Maven - 项目管理和建设。 VRaptor 4 - Web 框架。 CDI - 依赖注入。 JPA - 持久性。 HSQLDB - 内存数据库。 磁贴3-为页面创建模板。 AngularJS - 客户端...

    ormlitejar包

    支持MySQL、Postgres、Microsoft SQL Server、H2、Derby、HSQLDB、Sqllite且可以相对容易的扩展到其他数据库。 临时支持(Provisional support)DB2、Oracle、ODBC和Netezza。如果不支持你的数据库,联系作者。 ...

    monitor-service:监控服务

    Spring MVC模板应用 该应用程序可用作任何Spring MVC应用程序的起点。...HSQLDB嵌入式内存数据库 从标准分支继承功能 mybatis-远程数据库 连接到远程MySQL主机/数据库 c3p0池化数据库连接 继承mybatis分支的功

    EasyJForum 3.0 企业版 简体UTF8.zip

    系统相仿以方便用户使用,其基本目的是为基于 Java 平台的中文站点提供最好的论坛服务。通过本系统,网站架设者不需要进行任何编程,经过简单的安装和设置,在网上搭建起功能完善的论坛服务。 EasyJForum 3.0 ...

    EasyJForum 3.0 企业版 繁体BIG5.zip

    系统相仿以方便用户使用,其基本目的是为基于 Java 平台的中文站点提供最好的论坛服务。通过本系统,网站架设者不需要进行任何编程,经过简单的安装和设置,在网上搭建起功能完善的论坛服务。 EasyJForum 3.0 ...

    EasyJForum 3.0 企业版 繁体UTF8.zip

    系统相仿以方便用户使用,其基本目的是为基于 Java 平台的中文站点提供最好的论坛服务。通过本系统,网站架设者不需要进行任何编程,经过简单的安装和设置,在网上搭建起功能完善的论坛服务。 EasyJForum 3.0 ...

    EasyJForum论坛官方版下载 v3.0

    系统相仿以方便用户使用,其基本目的是为基于 Java 平台的中文站点提供最好的论坛服务。通过本系统,网站架设者不需要进行任何编程,经过简单的安装和设置,在网上 搭建起功能完善的论坛服务。 EasyJForum 是一套...

    jee6-demos:Java EE 6平台上的演示

    Java EE 6应用程序的基本示例集合。 基于教程,但是它们完全不同。 描述 图书馆 技术 执行 参考Impl。 网站 CDI 1.1 焊接SE 1.0.1-最终 ÿ EJB 3.0 OpenEJB 4.0.0 ñ JPA 2.0 EclipseLink JPA 2.5.0 ÿ ...

    dbeaver:免费的通用数据库工具和SQL客户端

    使用插件架构,并为以下数据库提供附加功能:MySQL / MariaDB,PostgreSQL,Greenplum,Oracle,DB2 LUW,Exasol,SQL Server,Sybase / SAP ASE,SQLite,Firebird,H2,HSQLDB,Derby,Teradata,Vertica,...

    Marid:免费的数据采集和数据可视化跨平台软件-开源

    其体系结构的基本概念包括:*图形化部署配置构建器*强大的Groovy脚本语言*嵌入式数据库(H2,HSQLDB)用于存储数据*跨平台设计(一次编写,可在任何地方运行)*嵌入式GUI可配置的二进制/ ASCII设备协议解析器/生成...

    meeds-docker:Meeds Docker映像构建

    Meeds Docker映像Meeds Docker映像支持HSQLDB (用于测试)。快速开始前提条件是: Docker守护程序12+版本+互联网访问4GB的可用RAM + 1GB的磁盘启动Meeds Server进行评估的最基本方法是执行docker run -v meeds_data...

    图书管理系统

    一键运行,非常方便,附带源码,实现基本管理功能。

    ProjetoBaseVraptor

    这是使用以下技术的 Java Web 项目的基本架构项目: Maven - 项目管理和建设。 VRaptor 4 - Web 框架。 CDI - 依赖注入。 JPA - 持久性。 HSQLDB - 内存数据库。 磁贴3-为页面创建模板。 Bootstrap - 页面...

Global site tag (gtag.js) - Google Analytics