介绍

  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用于数据库应用程序的开发,测试和部署。

  官网地址:http://hsqldb.org/

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测试类

 package com.test.hsqldb;

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public class TestHsqldbMem { public static void main(String[] args) throws SQLException, ClassNotFoundException { // 加载HSQL DB的JDBC驱动
Class.forName("org.hsqldb.jdbc.JDBCDriver"); // 自动创建数据库,得到联接对象 connection
String url="jdbc:hsqldb:mem:db";
Connection con=DriverManager.getConnection(url, "sa", ""); // 新建数据表
String ctreateTable="create table test(id integer,name VARCHAR(22) )";
Statement createStatement = con.createStatement();
long f1 = createStatement.executeUpdate(ctreateTable);
System.out.println("创建表:" + f1); // 插入数据
String insertSql = "INSERT INTO test VALUES(1,'小明')";
Statement insertStatement = con.createStatement();
long f2 = insertStatement.executeUpdate(insertSql);
System.out.println("插入数据:" + f2); // 查询数据
String selectSql = "select id,name from test";
PreparedStatement prepareStatement = con.prepareStatement(selectSql);
// 发送SQL 返回一个ResultSet
ResultSet rs=prepareStatement.executeQuery(); // 编历结果集
while(rs.next())//从数据库的取一行数据,是否还有下一行
{
int id=rs.getInt(1); //从1开始
String name=rs.getString(2);
System.out.println("id:"+id+"\t名称:"+name);
} // 关闭连接
con.close(); } }

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

    

  

【DataBase】Hsqldb的简单使用的更多相关文章

  1. DataBase安装及简单配置

    下载以及安装 打开mysql官网下载页面:http://dev.mysql.com/downloads/mysql/ 用管理员身份打开cmd命令行工具,cd到解压文件的bin目录 输入mysqld i ...

  2. Prometheus Monitoring System & Time Series Database

    什么是 TSDB (Time Series Database): 我们可以简单的理解为.一个优化后用来处理时间序列数据的软件,并且数据中的数组是由时间进行索引的. 时间序列数据库的特点: 大部分时间都 ...

  3. 升讯威ADO.NET增强组件(源码):送给喜欢原生ADO.NET的你

    目前我们所接触到的许多项目开发,大多数都应用了 ORM 技术来实现与数据库的交互,ORM 虽然有诸多好处,但是在实际工作中,特别是在大型项目开发中,容易发现 ORM 存在一些缺点,在复杂场景下,反而容 ...

  4. 高灵活度,高适用性,高性能,轻量级的 ORM 实现

    ORM(Object-Relational Mapping 对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,目的是提供易于理解的模型化数据的方法. ORM虽然有诸多好处,但是在实 ...

  5. idea使用心得(1)-快捷键用法

    快捷键: Ctrl+F12,可以显示当前文件的结构,Alt+7,可在左侧生成固定框体控件,适合类复杂的情况 Ctrl+Alt+O,优化导入的类和包 Ctrl+X,删除行 删除光标所在的哪一行,对尤其是 ...

  6. Spring MVC Integration,Spring Security

     http://docs.spring.io/spring-security/site/docs/4.2.0.RELEASE/reference/htmlsingle/#authorize-reque ...

  7. (转)HTML5 本地存储

    原文:http://www.cnblogs.com/rainman/archive/2011/06/22/2086069.html HTML5 本地存储 1.sessionStorage 2.loca ...

  8. hibernate自动生成映射文件

    映射文件是O/R Mapping的关键,相当于控制中心.当数据库表较多时,手动配置该映射文件非常耗时.为了快速开发程序,使开发人员的注意力集中到业务逻辑上来,Hibernate官方提供的MiddleG ...

  9. Model First:创建实体数据模型(ADO.NET 实体数据模型)

    Microsoft Entity Framework是一个对象关系映射工具(Object Relational Mapping ,O/RM)工具.它可以让你从一个数据库自动地生成数据接入层.实体框架免 ...

随机推荐

  1. K8s中的多容器Pod和Pod内容器间通信

    容器(Container)常被用来解决比如微服务的单个问题,但在实际场景中,问题的解决往往需要多容器方案.本文会讨论将多个容器整合进单个Kubernetes Pod 中,以及Pod中的容器之间是如何通 ...

  2. Dubbo源码分析(2):ServiceBean

    ServiceBean时序图

  3. Oracle中日期作为条件的查询

    1.范围日期的查询: select * from goods where g_time betweento_date('2018/12/26 10:01:59','yyyy-MM-dd hh:mi:s ...

  4. PHP文件载入

    一.介绍 在实际开发中,经常会在一个PHP文件中引入其他的文件,被引入的文件可以是HTML文档,也可以是PHP文件 二.语法 require(文件名)和require_once(文件名) includ ...

  5. mysql 时区更改;5.7 弱口令

    一.mysql 更改表名称: show databases; use 库名; show tables; rename table 旧表名 to 新表名: 示例: rename table old to ...

  6. mysql 函数表

    Name Description ABS() Return the absolute value ACOS() Return the arc cosine ADDDATE() Add time val ...

  7. Ubuntu shell系统的环境变量

    1.系统环境变量env命令查看 1)利用export命令导出环境变量 export PS1 导出PS1 添加路径 export PATH=$PATH:/home/daokr/myfile $ sudo ...

  8. Luogu P3391 【模板】文艺平衡树 Splay 平衡树

    https://www.luogu.org/problemnew/show/P3391 以前写过题解的入门题重写练板子.wdnmd真就 ' == ' 写成 ' = ' 了编译器不报错呗. #inclu ...

  9. 40、JSON数据源综合案例实战

    一.JSON数据源综合案例实战 1.概述 Spark SQL可以自动推断JSON文件的元数据,并且加载其数据,创建一个DataFrame.可以使用SQLContext.read.json()方法,针对 ...

  10. LOJ575. 「LibreOJ NOI Round #2」不等关系 [容斥,分治FFT]

    LOJ 思路 发现既有大于又有小于比较难办,使用容斥,把大于改成任意减去小于的. 于是最后的串就长成这样:<<?<?<??<<<?<.我们把一段连续的& ...