`
brandNewUser
  • 浏览: 456873 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hsqldb简单使用总结

阅读更多

 

 

 
hsqldb数据库是一款纯Java实现的开源免费数据库,相对其他数据库来说,体积非常小,使用方便,非常利于在测试环境中使用,无需复杂的数据库配置。
 
hsqldb数据库引擎有几种服务器模式:Server模式,WebServer模式,Servlet模式,Standalone模式,Memory-Only模式。
 
其中最常用的要数Server模式了,首先需要从网站从http://www.hsqldb.org/下载一个hsqldb的稳定版本,当前稳定版本是2.3.2,启动Server模式就类似启动mysql,oracle数据库一样,数据库启动后就作为一个系统服务存在,此时就可以使用数据库工具通过jdbc的方式访问,启动脚本类似:
 
java -cp hsqldb.jar org.hsqldb.Server -database.0 ./db/test -dbname.0 test
 
 
后面的参数含义如下,-database.index后面接数据库文件(如果当前系统中并不存在该数据文件,就会默认新建一个空文件,支持相对路径的方式,本例子中就会将数据文件建立在相对文件夹db中); -database.index后面接该index数据库的名称(访问数据库时会使用到该名称)。
 
由于启动hsqldb时可以看出,使用了index,在一次启动的过程中,就可以同时启动多个数据库实例。
 
其他模式并不是很常用,但是可以稍微了解一下。比如WebServer模式就是Server模式的扩展,支持http协议;Servlet模式可以允许通过Servlet容器来访问数据库;Standalone模式不能通过网络来访问数据库,主要在一个JVM中使用。
 
hsqldb的zip包中自带了一个简单方便的数据库管理工具,Swing界面的DatabaseManagerSwing,该工具可以通过jdbc访问多种数据库(不仅限于hsqldb哦,还可以连接MySQL,Oracle等数据库),通过运行以下的命令可以打开主界面来访问数据库:
 
java -cp hsqldb.jar org.hsqldb.util.DatabaseManagerSwing
 
 
打开后主界面如下:


 由于我们是以Server模式启动的,需要选择HSQL Database Engine Server模式启动:


 
启动的Server默认用户是SA,缺省密码为空,连接成功后,就可以查看到该数据库中的所有数据表,并可以通过执行sql的方式查看数据:


 
我们在测试的是一个简单的web项目,在测试场景中频繁启动hsqldb比较麻烦。既然hsqldb是一个非常轻量级的文件数据库,我们可以将hsqldb的启动绑定在Web容器的生命周期中。
 
Web应用中的监听器可以实现这一目标,ServletContextListener的实现类能够帮助监听ServletContext一生中的两个关键事件:初始化以及销毁,能够帮助我们:
 
  • 在容器初始化是得到通知,并获得上下文初始化对象,并启动hsqldb数据库;
  • 容器销毁时,新建hsqldb连接,关闭hsqldb数据库;
 
实现后的Listener类似如下(本例子中硬编码,建议将其配置到web.xml中的content-param中):
public class HsqlDbListener implements ServletContextListener {

    private static final Logger LOG = Logger.getLogger(HsqlDbListener.class);

    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        LOG.info("start hsql db server...");
        startServer();
    }

    /**
     * java -cp hsqldb.jar org.hsqldb.Server -database.0 testdb -dbname.0 test
     */
    private void startServer() {
        Server server = new Server();
        server.setDatabaseName(0, "test");
        server.setDatabasePath(0, "/Users/mazhiqiang/develop/server/hsqldb-2.3.2/hsqldb/lib/testdb");
        server.setPort(9002);
        server.setSilent(true);
        server.setTrace(true);
        server.start();
    }

    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        try {
            stopServer();
        } catch (BusinessException e) {
            throw new BusinessRuntimeException(e);
        }
        LOG.info("hsql db server stopped.");
    }

    private void stopServer() throws BusinessException {
        Connection connection = null;
        try {
            Class.forName("org.hsqldb.jdbcDriver");
            connection = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/test");
            Statement statement = connection.createStatement();
            statement.execute("SHUTDOWN;");
        } catch (ClassNotFoundException e) {
            throw new BusinessException(e);
        } catch (SQLException e) {
            throw new BusinessException(e);
        }
    }
 
 
并将该Listener配置到web.xml中,就可以跟随上下文一起启动。
 
 
<listener>
           <listener-class>xxx.HsqldbListener</listener-class>
</listener>
 
 
 
 
 
 
 
 
 
 
 
 

 

 
  • 大小: 42.1 KB
  • 大小: 42.8 KB
  • 大小: 79.4 KB
分享到:
评论

相关推荐

    HSQLDB 1.8.0

    1. **安装与启动**:HSQLDB的安装非常简单,只需解压压缩包(hsqldb)即可运行,通过命令行或Java API启动数据库服务器。 2. **数据库连接**:使用JDBC驱动进行连接,通过URL指定数据库类型、路径及访问参数。 3. ...

    hsqldb实例源代码

    总结来说,HSQldb实例源代码为我们提供了学习和实践HSQldb数据库操作的实例,涵盖了数据库的创建、数据操作以及查询等核心功能。通过研究这些代码,开发者可以快速掌握HSQldb的使用,并将其应用于自己的项目中,无论...

    hsqldb-2.3.4

    总结,HSQldb 2.3.4是一款强大而实用的轻量级数据库解决方案,尤其适合Java开发者使用。其简洁的设计、全面的SQL支持以及灵活的运行模式,使它在许多场合都能发挥出高效的作用。了解并掌握HSQldb的使用,对于提升...

    hsqldb-2.3.3.zip

    2. **小型应用**:对于只需要简单数据库功能的轻量级应用,HSQldb是一个理想选择。 3. **嵌入式系统**:在物联网设备或移动应用中,HSQldb可以作为内置数据库,提供数据存储功能。 4. **教学示例**:在数据库教程和...

    HSQLDB安装与使用-转自http://www.cnblogs.com/wllyy189/archive/2008/11/15/1334002.html

    HSQLDB因其简单易用、快速启动和关闭、体积小、内存数据库特性而被广泛应用于测试环境和小型项目中。 **安装HSQLDB** 1. **下载**: 首先,你需要从官方网站或者第三方源(如Apache镜像站点)下载HSQLDB的最新版本...

    HSQLDB 用户指南

    - **创建新数据库**:可以通过简单的命令行指令或 API 创建新的数据库。 #### 四、数据库引擎特性 **4.1 表类型** HSQLDB 支持多种表类型,包括临时表、常规表等。 **4.2 约束与索引** - **主键约束**:确保表...

    HSQLDB中文文档 第六章 Text表

    这类文件可以通过简单的分隔符(如逗号、制表符等)来组织数据结构,使其成为一种易于理解和处理的数据形式。在HSQLDB中,Text表具备以下特点: 1. **SQL查询支持**:可以使用所有标准的SQL语句(如SELECT、INSERT...

    HSQLDB快速上手实录

    本文将详细介绍如何从零开始使用HSQLDB,并通过实际操作步骤帮助读者快速掌握其基本使用方法。 #### 二、下载与安装 1. **下载HSQLDB** - 访问HSQLDB官方网址(http://hsqldb.org/),由于可能存在网络限制问题,...

    hsqldb学习包括数据库创建启动配置等

    总结来说,HSQldb是一个功能丰富的轻量级数据库系统,适用于各种应用场景,从简单的本地开发到复杂的服务器部署。其易用性、灵活性和高性能使其成为Java开发者的一个理想选择。通过深入学习HSQldb的配置和管理,...

    Hsqldb usage

    ### Hsqldb 使用详解 #### 1. 概述与组件介绍 Hsqldb是一款开源、类型安全且高性能的关系型数据库管理系统。它支持标准的SQL语法,并提供了多种使用模式,适用于开发过程中的不同需求场景。Hsqldb的核心功能由`...

    hsqldb_1_8_0_2

    总结,HSQldb 1.8.0_2作为一个轻量级的Java数据库,凭借其易用性、高性能和全面的SQL支持,在开发过程中扮演了不可或缺的角色。无论是在快速原型设计还是小型应用中,HSQldb都能提供高效且稳定的数据库服务。了解并...

    hsqldb-1.9.0-rc4.zip

    总结,HSQldb 1.9.0-rc4版本以其全面的SQL支持、高效的性能和灵活的运行模式,为开发者提供了强大的数据库解决方案。无论是在开发环境还是生产环境中,HSQldb都能以其实用性和易用性赢得用户的青睐。在使用HSQldb时...

    jasperreport ant运行以及启动hsqldb服务

    HSQLDB可以作为嵌入式数据库使用,也可以作为一个独立的服务运行。在本篇文档中,我们将探讨如何使用Ant启动HSQLDB服务。 #### 四、JasperReports与Ant集成 1. **环境搭建**: - 安装JDK:JasperReports需要Java...

    hsqldb-example:在内存中使用数据库,hsqldb的用法

    **HSQldb在内存中的使用** HSQldb的一个关键优势在于其能在内存中运行数据库的能力。这意味着数据库的所有操作都在内存中完成,无需频繁地读写磁盘,从而显著提高性能。内存模式下的HSQldb非常适合进行快速的数据...

    test-db-in-memory:在内存中使用db进行简单测试,例如HSQLDB和H2

    总结来说,使用HSQLDB和H2进行内存数据库测试能提高开发效率,简化测试流程,且两者都提供了良好的Java支持。在实际项目中,根据需求和性能考虑可以选择其中之一,并按照上述步骤进行集成和使用。通过"test-db-in-...

    hsql及其官方说明书

    HSQldb 提供了简单的备份和恢复功能,可以通过导出和导入数据来实现数据库的备份和恢复操作。 ### 与其他技术集成 HSQldb 可以与各种Java应用程序框架如Spring、Hibernate等无缝集成,方便地在应用中使用数据库。 ...

    hsqldb-2.3.1:我的项目只需要库文件

    总结来说,HSQldb是一个强大的Java数据库解决方案,适用于各种项目需求,从简单的小型应用到更复杂的系统。通过正确地集成和使用HSQldb,你可以充分利用其提供的功能,为你的项目构建可靠的数据存储层。

    HSQL安装部署使用手册

    如果你需要在Web应用中使用HSQL,可以将数据库文件复制到Web应用的`WEB-INF`目录下,并将`hsqldb.jar`添加到`WEB-INF/lib`目录,确保Web服务器能够访问到。 ### 七、配置数据源 在你的`applicationcontext.xml`...

    HSQL数据库2.2.5

    1. 配置简单:HSQLDB可以通过简单的配置文件启动,也可以作为Java应用程序的一部分直接嵌入。 2. JDBC驱动:作为Java数据库,HSQLDB提供了JDBC驱动,可以方便地与Java应用进行集成。 七、总结 HSQLDB 2.2.5以其轻...

    嵌入式开源数据库系统对比

    - **应用场景**:适用于移动设备、嵌入式系统、桌面应用程序等需要简单而可靠的数据存储方案。 #### HSQLDB (HyperSQL Database) - **简介**:HSQLDB 是一个高性能、全功能的纯 Java 数据库引擎。它支持 SQL 标准...

Global site tag (gtag.js) - Google Analytics