HsqlDB

  • 1、简介
  • 2、四种使用模式介绍
    • 2.1 内存(Memory-Only)模式
    • 2.2 进行(In-Process/Standlone)模式
    • 2.3 服务器(Server)模式
    • 2.4 Web服务器模式
    • 2.5 Servlet服务器模式

前段时间使用阿里云呼叫中心,给的demo中使用了hsqldb,对于数据的存储和获取很是方便,不用本地做任何的改动。查阅资料,看到了原作者写下的很好的一片文章,特整理过来以供自己熟悉和理解使用。
原文地址:
https://www.cnblogs.com/zdxster/p/5345194.html

1、简介

hsql数据库是一款纯Java编写的免费数据库,许可是BSD-style的协议,如果你是使用Java编程的话,不凡考虑一下使用它,相对其他数据库来说,其体积小,才563kb。仅一个hsqldb.jar文件就包括了数据库引擎,数据库驱动, 还有其他用户界面操作等内容。在Java开源世界里,hsql是极为受欢迎的(就Java本身来说),JBoss应用程序服务器默认也提供了这个数据库引 擎。由于其体积小的原因,又是纯Java设计,又支持SQL99,SQL2003大部分的标准,所以也是作为商业应用程序展示的一种选择。请到以下地址下载hsql
http://prdownloads.sourceforge.net/hsqldb/hsqldb_1_7_3_3.zip?download

2、四种使用模式介绍

一个db 数据库会包含如下文件:

  1. mydb.properties
  2. mydb.script
  3. mydb.log
  4. mydb.data
  5. mydb.backup
  6. mydb.lck
  • mydb.properties 文件包含关于数据库的一般设置.
  • mydb.script 文件包含表和其它数据库,插入没有缓存表的数据.
  • mydb.log 文件包含当前数据库的变更.
  • mydb.data 文件包含缓存表的数据
  • mydb.backup 文件是最近持久化状态的表的数据文件的压缩备份文件
  • 当操作db 数据库的时候, mydb.log 用于保存数据的变更. 当正常SHUTDOWN,这个文件将被删除. 否则(不是正常shutdown),这个文件将用于再次启动的时候,重做这些变更.
  • mydb.lck 文件也用于记录打开的数据库的事实, 正常SHUTDOWN,文件也被删除.在一些情况下,mydb.data.old 文件会被创建,并删除以前的.

所有以上这个文件都是必要的,不能被删除.如果数据库没有缓存表,mydb.data 和mydb.backup 文件将不会存在.另外,除了以上文件HSQLDB 数据库可以链接到任何文本文件,比如cvs 文件.

2.1 内存(Memory-Only)模式

所有的数据都将在内存中完成,如果程序退出,则相应的数据也将同时被销毁。不需要额外启动
连接JDBC的实例为:jdbc:hsqldb:mem:dbname

  Connection connection =DriverManager.getConnection("jdbcUriName","username","password");

2.2 进行(In-Process/Standlone)模式

不能通过网络来访问数据库,主要是在一个JVM中使用,那样的话,访问的速度会更加快。此模式从应用程序启动数据库,由于所有的数据都将写到文件中,所以,即使程序退出,数据也不会被销毁不需要额外启动
连接 JDBC 的实例为:jdbc:hsqldb:file:**

jdbc:hsqldb:file:/E:/hsqldb/data/dbname   // windows
jdbc:hsqldb:file:/opt/db/dbname          // Linux
jdbc:hsqldb:file:dbname                  // 当前项目名下

2.3 服务器(Server)模式

  1. 首先切换到lib文件夹下,运行

     java -cp hsqldb.jar org.hsqldb.Server -database.0 db/mydb -dbname.0  xdb
    

xdb相当于数据库别名,执行命令后后会在lib目录下生成一个db文件夹,将会在db文件夹下创建一个数据库mydb,别名(用于访问数据库)是xdb,如果存在mydb数据库,将会打开它。

  1. 在lib文件夹目录下运行数据库界面操作工具:

        java -cp hsqldb.jar org.hsqldb.util.DatabaseManager
    

在Type 选项里选上相应的服务器模式,这里选择HSQL Database Engine Server模式;Driver不用修改;URL修改为jdbc:hsqldb:hsql://localhost/xdb (主要这里xdb就是上面我们设置的别名);user里设置用户名,第一次登录时,设置的是管理员的用户名,password设置密码。然后点击Ok。

  1. 第一次运行数据库引擎,创建数据库完,在db文件夹下便会生成properties,script等文件。
package com.util;import java.sql.*;public class DBWork {public static void main(String args[]){try{Class.forName("org.hsqldb.jdbcDriver");Connection conn = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/xdb", "sa", "");System.out.println("conn = " + conn);} catch(Exception e){e.printStackTrace();}}
}

spring+hibernate中,applicationContext.xml中配置:

<bean
class="org.springframework.jdbc.datasource.DriverManagerDataSource" id="dataSource">
<property name="driverClassName"><value>org.hsqldb.jdbcDriver</value>
</property>
<property name="url"><value>jdbc:hsqldb:hsql://localhost/xdb</value>
</property>
<property name="username"><value>sa</value>
</property>
<property name="password"><value/>
</property>
</bean>
<bean
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" id="sessionFactory">
<property name="dataSource"><ref local="dataSource"/>
</property>
<property name="mappingResources"><list><value>com/hibernate/UserInfo.hbm.xml</value></list>
</property>
<property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop><prop key="hibernate.show_sql">true</prop></props>
</property>
</bean>
  1. 创建bat文件快速运行。
    首先在 E:\hsqldbTest 目录下建立两个子目录,data和lib目录,data用来存放数据,lib用来管理jar包。将解压之后的hsqldb中的lib目录下的 hsqldb.jar 文件拷贝到 E:\hsqldbTest\lib 目录下。
    在hsqldbTest目录下创建 runServer.bat 文件,其内容为:(winow 下命令格式)
cd ./data
@java -classpath ../lib/hsqldb.jar org.hsqldb.server.Server

保存 runServer.bat 文件,并双击运行该文件,此时回弹出命令行窗口,如下图,表示已启动 HSQLDB 数据库。

再创建 runManager.bat 文件,用来启动图形界面管理工具,其内容为:

cd ./data
@java -classpath  ..\lib\hsqldb.jar org.hsqldb.util.DatabaseManager


Recent:将会列出最近的数据库配置
Setting Name: 设置名称,这里不需要填写
Type:选择服务器模式(HSQL Database Engine Server)
Driver:驱动名称,不需要修改
URL:JDBC连接,无需修改
User:用户名,根据需要设置
Password:密码,根据需要设置


另外还可以用 DatabaseManagerSwing 工具启动图形界面。创建 runManagerSwing.bat 文件,内容为

cd ./data
@java -classpath  ..\lib\hsqldb.jar org.hsqldb.util.DatabaseManagerSwing

  1. 创建定制的数据库
    首先在 E:\hsqldbTest 目录下创建一个 server.properties(本人实验,不用写这个文件也可以) 文件,文件内容为(注:在实际文件中,删除后面的注释内容):
server.port = 9001           #指定端口号为9001
server.database.0 = file:data/mydb  #将在data目录下创建mydb数据库  文件中定义启动的数据库,最多10个
server.dbname.0 = xdb  #指定数据库名,jdbc连接时就是用此名称
server.silent = true
cd  ./data
@java  -classpath  ../lib/hsqldb.jar org.hsqldb.server.Server -port 9001 -database.0 file:../data/mydb -dbname.0 xdb

Hsqldb 的主要工具类:

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

2.4 Web服务器模式

WebServer模式和Server运行模式基本一样,只是支持了Http等协议,主要用于防火墙,默认端口是9001。启动Server,
java -cp hsqldb.jar org.hsqldb.WebServer … 剩余的和上面的一致。

  java -cp hsqldb.jar org.hsqldb.WebServer -database.0 testdb  -dbname.0 testdbname

2.5 Servlet服务器模式

Servlet模式可以允许你通过Servlet容器来访问数据库

HSqlDB认识及使用相关推荐

  1. HSQLDB安装与使用

    为什么80%的码农都做不了架构师?>>>      HSQLDB是一个轻量级的纯Java开发的开放源代码的关系数据库系统.因为HSQLDB的轻量(占用空间小),使用简单,支持内存运行 ...

  2. HSQLDB两条基本命令

    Hsqldb是一个开放源代码的JAVA数据库,其具有标准的SQL语法和JAVA接口,它可以自由使用和分发,非常简便快速.Hsqldb的官网http://www.hsqldb.org  现最新稳定版本是 ...

  3. springsecurity-sample中hsqldb的使用注意

    作者:yan 1. <!--<property name="url" value="jdbc:hsqldb:file:hsqldb/test;shutdown ...

  4. spring hsqldb_在Spring中嵌入HSQLDB服务器实例

    spring hsqldb 我一直在愉快地使用XAMPP进行开发,直到不得不将其托管在可通过Internet访问的某个地方,供客户端进行测试和使用. 我有一个仅具有384 RAM的VPS,并且需要快速 ...

  5. cobertura 使用_使用Cobertura,JUnit,HSQLDB,JPA涵盖您的测试

    cobertura 使用 你好!你好吗? 今天让我们谈谈一个非常有用的工具,名为" Cobertura". 该框架与我们在另一篇文章中看到的Emma框架具有相同的功能. Cober ...

  6. dbunit使用_使用dbUnit,JSON,HSQLDB和JUnit规则进行数据库单元测试

    dbunit使用 在本周TDD课程的运行中,我认为编写一些夹具以简化dbUnit的使用将很有趣. 我最初的想法只是教dbUnit有关JSON的知识,但事实证明Lieven Doclo已经做到了. 因此 ...

  7. 在Spring中嵌入HSQLDB服务器实例

    我一直在愉快地使用XAMPP进行开发,直到不得不将其托管在可通过Internet访问的某个地方,供客户端进行测试和使用. 我有一个仅具有384 RAM的VPS,并且需要快速找到一种方法,因此决定将XA ...

  8. 使用Cobertura,JUnit,HSQLDB,JPA涵盖您的测试

    你好!你好吗? 今天让我们谈谈一个非常有用的工具,名为" Cobertura". 该框架与我们在另一篇文章中看到的Emma框架具有相同的功能. Cobertura和Emma之间的主 ...

  9. 使用dbUnit,JSON,HSQLDB和JUnit规则进行数据库单元测试

    在本周TDD课程的运行中,我认为编写一些夹具以简化dbUnit的使用将很有趣. 我最初的想法只是教dbUnit有关JSON的知识,但事实证明Lieven Doclo已经做到了. 因此,我决定更进一步, ...

  10. hsqldb快速入门

    数据库环境配置和使用 首先从http://www.hsqldb.org/下载一个hsqldb的稳定版本,解压后可以浏览解压目录下的index.html,它描述了各个目录所包含内容,在doc段里有一个重 ...

最新文章

  1. linux ps命令大全,Linux ps命令例子汇总
  2. [codeforces] 383C Propagating tree(dfs序+线段树)
  3. 深度思考:从头开始训练目标检测
  4. html DOM操作表格及样式
  5. html表单和输入方法,HTML 表单和输入
  6. boost::graph::distributed用法的测试程序
  7. 《中国人工智能学会通讯》——4.7 当前研究热点
  8. Linux物理内存初始化
  9. MATLAB摄像头可以运行但是打不开视频
  10. java 集成 kafka 0.8.2.1 适配jdk1.6
  11. HTML+CSS+JS实现美女canvas仿ps橡皮擦刮刮卡
  12. 基金指数温度怎么算_壁挂炉采暖费怎么算?从两千到八百,内行人教你别再花冤枉钱...
  13. 微信小程序点击复制文本到剪切板,获取剪切板内容
  14. 【CPLEX教程01】Cplex介绍,下载和安装Cplex
  15. 2021年淘宝双11跨店满减如何使用?
  16. FX5u控制4个伺服,一个完整的项目 程序用 标签分层,说明了定位控制中的公共参数设定、回原点、
  17. LOJ #10005. 「一本通 1.1 练习 1」数列极差
  18. 如何利用基于PXI的下一代ATE系统测试平台进行军事/航天/卫星电子设备测试
  19. 西语加计算机专业怎么样,如何在电脑上添加西班牙语输入法?
  20. 计算机工程陶瓷,捏陶瓷之形,赏中华之美

热门文章

  1. 【特效】UE4 Niagara 制作爆炸特效
  2. solr面试题_查看您的Solr缓存大小:Eclipse Memory Analyzer
  3. 晶振-电路中的心脏起搏器
  4. 读取金税盘数据库_金税盘无法连接数据库是怎么回事
  5. OC门与OD门以及线与逻辑
  6. Matlab聚类分析/判别分析
  7. html5 如何播放h264流,html5播放rtsp视频流的方法
  8. 十天学会php之第七天
  9. 一个很好的多代理服务器调度软件-ProxyExpert(绿色软件) - 『 软件使用交流 』 - 赢政天下 - YingZheng.com - Powered by Discuz!...
  10. 侠客工具盒 v5.0 build 0313 bt