介绍

HSQLDB是一个开放源代码的JAVA数据库,其具有标准的SQL语法和JAVA接口,它可以自由使用和分发,非常简洁和快速的。具有Server模式,每个程序需要不同的命令来运行。

HyperSQL数据库(HSQLDB)是一种现代关系数据库系统。版本2.4.1是全新版本2代码的最新版本。从头开始编写,遵循国际ISO SQL:2011标准,它支持完整的经典功能集,以及存储过程和触发器等可选功能。

HyperSQL版本2.4.1与Java 8或更高版本兼容。还可以使用JDK 6或JDK 5编译的HSQLDB jar版本。这些版本编号为2.3.6,以区分功能差异。

HyperSQL用于数据库应用程序的开发,测试和部署。

HSQLDB Jar

HSQLDB jar包hsqldb.jar位于ZIP包的/ lib目录中,包含多个组件和程序。

Hsqldb jar包的组件

HyperSQL RDBMS引擎(HSQLDB)

HyperSQL JDBC驱动程序

数据库管理器(GUI数据库访问工具,带Swing和AWT版本)

HyperSQL RDBMS和JDBC驱动程序提供核心功能。DatabaseManagers是通用数据库访问工具,可以与任何具有JDBC驱动程序的数据库引擎一起使用。

另一个jar,sqltool.jar,包含Sql Tool,命令行数据库访问工具。这是一个通用的命令行数据库访问工具,也可以与其他数据库引擎一起使用。

运行数据库访问工具

这些工具用于交互式用户访问数据库,包括创建数据库,插入或修改数据或查询数据库。所有工具都以Java程序的正常方式运行。在以下示例中,将执行数据库管理器的Swing版本。本hsqldb.jar所在的目录中../lib相对于当前目录。

java -cp ../lib/hsqldb.jar org.hsqldb.util.DatabaseManagerSwing

如果hsqldb.jar在当前目录中,该命令将更改为:

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

Hsqldb工具的主要类

org.hsqldb.util.DatabaseManager

org.hsqldb.util.DatabaseManagerSwing

当工具启动并运行时,您可以连接到数据库(可能是新数据库)并使用SQL命令来访问和修改数据。

工具可以使用命令行参数。您可以添加命令行参数--help以获取这些工具的可用参数列表。

双击HSQLDB jar将启动DatabaseManagerSwing应用程序

目录数据的类型

mem:完全存储在RAM中 - 没有任何超出JVM进程生命周期的持久性

file:存储在filesystem文件中

res:存储在Java资源中,例如Jar,并且始终是只读的

运行模式

一、内存(Memory-Only)模式:所有的数据都将在内存中完成,如果程序退出,则相应的数据也将同时被销毁。

连接JDBC的实例为:jdbc:hsqldb:mem:dbname

二、进行(In-Process)模式:此模式从应用程序启动数据库,由于所有的数据都将写到文件中,所以,即使程序退出,数据也不会被销毁。In-Process 不需要另外启动,可以通过 DriverManager.getConnection("jdbcUriName","username","password"); 方式即可启动数据库。

连接 JDBC 的实例为:

jdbc:hsqldb:file:/E:/hsqldb/data/dbname

jdbc:hsqldb:file:/opt/db/dbname

jdbc:hsqldb:file:dbname

三、服务器模式:此模式下 HSQLDB 跟其它数据库服务器一样,需要通过服务器的形式来进行启动

通过命令:java -cp ../lib/hsqldb.jar org.hsqldb.server.Server --database.0 file:testdb --dbname.0 testdbname

启动一个守护进程。

连接 JDBC 的实例为:jdbc:hsqldb:hsql://localhost:port/testdbname

四、Web服务器模式:此模式以WEB服务器的形式启动,并通过HTTP协议接受客户端命令。从1.7.2版本开始,Web服务器模式的 HSQLDB 开始支持事务处理。

启动命令:java -cp ../lib/hsqldb.jar org.hsqldb.server.WebServer –database.0 testdb –dbname.0 testdbname

连接 JDBC 的实例为:jdbc:hsqldb:http://localhost:port/testdbname

当以二三四模式运行时,会在运行目录下产生三个文件

test.lck ——标识数据库锁状态。

test.log ——运行数据库产生的log信息,它将记录每一个运行和用户操作环节。

test.properties——数据库的配置信息,包括分配的内存大小等,可更具需要修改。

简单使用

需要java环境

内存模式使用(自带工具测试)

1、在官网下载jar包(hsqldb-2.4.1.jar ),双击jar包运行hsqldb数据库访问工具,如下:

2、默认连接到内存模式的hsqldb数据库(.),可以不修改任何东西,也可以修改url,修改内存模式运行的数据库名,

url修改为:jdbc:hsqldb:mem:db,此内存模式运行的数据库名(db),数据库会自动创建在内存中

3、点击ok,进入操作界面,如下图:

4、选择测试脚本(command-》test script)

5、运行Execute SQL

内存模式使用(JDBC测试)

1、新建Maven工程,引入jar包

2、编辑JDBC,java测试类

1 package com.test.hsqldb;2

3 import java.sql.Connection;4 import java.sql.DriverManager;5 import java.sql.PreparedStatement;6 import java.sql.ResultSet;7 import java.sql.SQLException;8 import java.sql.Statement;9

10 public class TestHsqldbMem {11

12

13 public static void main(String[] args) throws SQLException, ClassNotFoundException {14

15 // 加载HSQL DB的JDBC驱动16 Class.forName("org.hsqldb.jdbc.JDBCDriver");17

18 // 自动创建数据库,得到联接对象 connection19 String url="jdbc:hsqldb:mem:db";20 Connection con=DriverManager.getConnection(url, "sa", "");21

22 // 新建数据表23 String ctreateTable="create table test(id integer,name VARCHAR(22) )";24 Statement createStatement = con.createStatement();25 long f1 = createStatement.executeUpdate(ctreateTable);26 System.out.println("创建表:" + f1);27

28 // 插入数据29 String insertSql = "INSERT INTO test VALUES(1,'小明')";30 Statement insertStatement = con.createStatement();31 long f2 = insertStatement.executeUpdate(insertSql);32 System.out.println("插入数据:" + f2);33

34 // 查询数据35 String selectSql = "select id,name from test";36 PreparedStatement prepareStatement = con.prepareStatement(selectSql);37 // 发送SQL 返回一个ResultSet38 ResultSet rs=prepareStatement.executeQuery();39

40 // 编历结果集41 while(rs.next())//从数据库的取一行数据,是否还有下一行42 {43 int id=rs.getInt(1); //从1开始44 String name=rs.getString(2);45 System.out.println("id:"+id+"\t名称:"+name);46 }47

48 // 关闭连接49 con.close();50

51 }52

53 }

3、运行测试类,结果如下:

java hsqldb数据库_【DataBase】Hsqldb的简单使用相关推荐

  1. java derby数据库_使用Apache Derby进行Java数据库开发,第1部分

    java derby数据库 JDBC简介 以前,本系列文章通过使用ij工具连接Apache Derby数据库并与之交互来演示了许多数据库概念. 尽管当时可能还不太明显,但是您使用的Java应用程序使用 ...

  2. java derby数据库_使用Apache Derby进行Java数据库开发,第3部分

    该"使用Apache Derby进行Java数据库开发"系列的上一篇文章向您展示了如何使用Java Statement对象在Apache Derby数据库上执行SQL SELECT ...

  3. java 数据对_数据表与简单java类(一对多)

    emp表:empno,ename,job,sal,comm,mgr,deptno dept表:deptno,dname,loc 要求可以通过程序描述出如下对应关系 一个部门有多个部员,并且可以输出一个 ...

  4. java开源数据库表描述,HSQLDB 【Java开源 DBMS数据库】

    HSQLDB [Java开源 DBMS数据库] HSQLDB(Hypersonic SQL)是纯Java开发的关系型数据库,并提供JDBC驱动存取数据.支持ANSI-92 标准 SQL语法.而且他占的 ...

  5. Java 实现数据库读写分离竟如此简单?

    目录 1.介绍 2.ShardingJDBC 3.入门案例 4.测试 4.1 增加 4.2 删除 4.3 修改 4.4 查询 1.介绍 面对日益增加的系统访问量,数据库的吞吐量面临着巨大的瓶颈,可能有 ...

  6. java 模型 数据库_数据库表与java域模型之间的mapping和自动生成(基于mybatis)

    最近有幸读到<企业架构模式>这本书,需要写作于2003年,已经是十年前,但仔细读过,有些东西现在只知道是这样用,但并不知道为什么要这样做.在看过此书之后,很多东西都能够有一条线进行贯穿,在 ...

  7. 汽车租赁系统java基于数据库_基于数据库和JAVA的网上汽车租赁管理系统的设计(MySQL)...

    基于数据库和JAVA的网上汽车租赁管理系统的设计(MySQL)(论文11000字,程序代码,MySQL数据库) 摘要:本文用JAVA编程语言为主体,用JDBC连接MySQL数据库来设计和实现这个系统. ...

  8. java 数据结构 数据库_数据库索引背后的数据结构

    在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法.这种数据结构,就是索引. B-Tree B-Tree是一种 ...

  9. 如何做一个mysql数据库_如何创建一个简单的mysql数据库

    这篇文章主要介绍了操作MySQL日志的一些方法,对日志的删除操作做了重点讲解,需要的朋友可以参考下. 一.创建数据库 注:已经安装好mysql. windows下运行cmd进入命令窗口,本人用的是wi ...

  10. java吸血鬼数字_吸血鬼数字的简单实现

    从think in java上面看到的吸血鬼数字,自己写了一个简单的实现 package com.zyl; import java.util.ArrayList; import java.util.A ...

最新文章

  1. 罹患各种癌晚期,无法救治
  2. Atom介绍和安装步骤
  3. pycharm中导入allure提示模块不存在解决方法
  4. MIT有个做披萨的GAN,登上了CVPR:加香肠、去橄榄、再烤熟,分层才是王道
  5. [00028]-[2015-09-23]-[00]-[VC 关于Excel操作的测试]
  6. vysor原理以及Android同屏方案
  7. 【收藏】k8s使用如下配置给pod固定ip
  8. 最大后验估计_PR Ⅱ:贝叶斯估计/推断及其与MAP的区别
  9. 区块链宠物社区Pawtocol与去中心化社交网络memeunity达成合作
  10. SAP License:我应该怎么学习SAP?
  11. 我必须得告诉大家的 MySQL 优化原理
  12. RedHat红帽RHEL7.2镜像下载以及安装教程(内含下载链接)
  13. Android OTA在线升级一(架构分析)【转】
  14. GPRS优点介绍及GPRS上网相关知识(转)
  15. 盖茨将18亿美元股票转给梅琳达
  16. 4.R语言【dplyr包】使用方法
  17. 当商业空间撞见元宇宙艺术
  18. 【时序异常检测翻译】3.A Deep Neural Network for Unsupervised Anomaly Detection and Diagnosis in Multivariate T
  19. 2016一周年点滴收获总结——遇见Elixir
  20. 1、sensor see框架

热门文章

  1. Python使用打码平台进行识别验证码
  2. js html实体编码转换,字符串js编码转换成实体html编码的方法(防范XSS攻击)
  3. 实验一:marlab安装调试
  4. DSP之CCS软件使用一
  5. PHP多因子方案,多因子策略之冗余因子
  6. Echarts 中国地图(包括china.js文件)
  7. gcc下载及安装教程
  8. 数据库原理课程设计---停车场管理系统
  9. matlab求刚度,求整体刚度矩阵matlab程序.doc
  10. 杆刚度校核c语言程序,c语言 求解单元刚度矩阵