HSqlDB认识及使用
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 数据库会包含如下文件:
- mydb.properties
- mydb.script
- mydb.log
- mydb.data
- mydb.backup
- 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)模式
- 首先切换到lib文件夹下,运行
java -cp hsqldb.jar org.hsqldb.Server -database.0 db/mydb -dbname.0 xdb
xdb相当于数据库别名,执行命令后后会在lib目录下生成一个db文件夹,将会在db文件夹下创建一个数据库mydb,别名(用于访问数据库)是xdb,如果存在mydb数据库,将会打开它。
- 在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。
- 第一次运行数据库引擎,创建数据库完,在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>
- 创建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
- 创建定制的数据库
首先在 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认识及使用相关推荐
- HSQLDB安装与使用
为什么80%的码农都做不了架构师?>>> HSQLDB是一个轻量级的纯Java开发的开放源代码的关系数据库系统.因为HSQLDB的轻量(占用空间小),使用简单,支持内存运行 ...
- HSQLDB两条基本命令
Hsqldb是一个开放源代码的JAVA数据库,其具有标准的SQL语法和JAVA接口,它可以自由使用和分发,非常简便快速.Hsqldb的官网http://www.hsqldb.org 现最新稳定版本是 ...
- springsecurity-sample中hsqldb的使用注意
作者:yan 1. <!--<property name="url" value="jdbc:hsqldb:file:hsqldb/test;shutdown ...
- spring hsqldb_在Spring中嵌入HSQLDB服务器实例
spring hsqldb 我一直在愉快地使用XAMPP进行开发,直到不得不将其托管在可通过Internet访问的某个地方,供客户端进行测试和使用. 我有一个仅具有384 RAM的VPS,并且需要快速 ...
- cobertura 使用_使用Cobertura,JUnit,HSQLDB,JPA涵盖您的测试
cobertura 使用 你好!你好吗? 今天让我们谈谈一个非常有用的工具,名为" Cobertura". 该框架与我们在另一篇文章中看到的Emma框架具有相同的功能. Cober ...
- dbunit使用_使用dbUnit,JSON,HSQLDB和JUnit规则进行数据库单元测试
dbunit使用 在本周TDD课程的运行中,我认为编写一些夹具以简化dbUnit的使用将很有趣. 我最初的想法只是教dbUnit有关JSON的知识,但事实证明Lieven Doclo已经做到了. 因此 ...
- 在Spring中嵌入HSQLDB服务器实例
我一直在愉快地使用XAMPP进行开发,直到不得不将其托管在可通过Internet访问的某个地方,供客户端进行测试和使用. 我有一个仅具有384 RAM的VPS,并且需要快速找到一种方法,因此决定将XA ...
- 使用Cobertura,JUnit,HSQLDB,JPA涵盖您的测试
你好!你好吗? 今天让我们谈谈一个非常有用的工具,名为" Cobertura". 该框架与我们在另一篇文章中看到的Emma框架具有相同的功能. Cobertura和Emma之间的主 ...
- 使用dbUnit,JSON,HSQLDB和JUnit规则进行数据库单元测试
在本周TDD课程的运行中,我认为编写一些夹具以简化dbUnit的使用将很有趣. 我最初的想法只是教dbUnit有关JSON的知识,但事实证明Lieven Doclo已经做到了. 因此,我决定更进一步, ...
- hsqldb快速入门
数据库环境配置和使用 首先从http://www.hsqldb.org/下载一个hsqldb的稳定版本,解压后可以浏览解压目录下的index.html,它描述了各个目录所包含内容,在doc段里有一个重 ...
最新文章
- linux ps命令大全,Linux ps命令例子汇总
- [codeforces] 383C Propagating tree(dfs序+线段树)
- 深度思考:从头开始训练目标检测
- html DOM操作表格及样式
- html表单和输入方法,HTML 表单和输入
- boost::graph::distributed用法的测试程序
- 《中国人工智能学会通讯》——4.7 当前研究热点
- Linux物理内存初始化
- MATLAB摄像头可以运行但是打不开视频
- java 集成 kafka 0.8.2.1 适配jdk1.6
- HTML+CSS+JS实现美女canvas仿ps橡皮擦刮刮卡
- 基金指数温度怎么算_壁挂炉采暖费怎么算?从两千到八百,内行人教你别再花冤枉钱...
- 微信小程序点击复制文本到剪切板,获取剪切板内容
- 【CPLEX教程01】Cplex介绍,下载和安装Cplex
- 2021年淘宝双11跨店满减如何使用?
- FX5u控制4个伺服,一个完整的项目 程序用 标签分层,说明了定位控制中的公共参数设定、回原点、
- LOJ #10005. 「一本通 1.1 练习 1」数列极差
- 如何利用基于PXI的下一代ATE系统测试平台进行军事/航天/卫星电子设备测试
- 西语加计算机专业怎么样,如何在电脑上添加西班牙语输入法?
- 计算机工程陶瓷,捏陶瓷之形,赏中华之美
热门文章
- 【特效】UE4 Niagara 制作爆炸特效
- solr面试题_查看您的Solr缓存大小:Eclipse Memory Analyzer
- 晶振-电路中的心脏起搏器
- 读取金税盘数据库_金税盘无法连接数据库是怎么回事
- OC门与OD门以及线与逻辑
- Matlab聚类分析/判别分析
- html5 如何播放h264流,html5播放rtsp视频流的方法
- 十天学会php之第七天
- 一个很好的多代理服务器调度软件-ProxyExpert(绿色软件) - 『 软件使用交流 』 - 赢政天下 - YingZheng.com - Powered by Discuz!...
- 侠客工具盒 v5.0 build 0313 bt