Hsqldb简介和基本使用

数据库---HSQLDB使用教程详解 本学校期末的课程设计要求使用HSQLDB数据库,作为一个小众且清凉的数据库,很少人接触过,所以就出教程,展示怎么使用HSQLDB。 阅读详情
Hsqldb是一个开放源代码的 JAVA数据库,其具有标准的SQL语法和JAVA接口,它可以自由使用和分发,非常简洁和快速的。具有Server模式,进程内模式(In- Process)和内存模式(Memory-Only)三种。运行Hsqldb需要hsqldb.jar包, 它包含了一些组件和程序。每个程序需要不同的命令来运行。它位于项目的lib目录下,目前的版本是1.8.0.5。官方的下载地址是:http: //prdownloads.sourceforge.net/hsqldb/hsqldb_1_8_0_5.zip?download
        在介绍这些模式之前我们需要了解一些Hsqldb所涉及的一些文件。每个Hsqld数据库包含了2到5个命名相同但扩展名不同的文件,这些文件位于同一个目录下。例如,名位"test"的数据库包含了以下几个文件:
  • test.properties
  • test.script
  • test.log
  • test.data
  • test.backup

  properties文件描述了数据库的基本配置。 script文件记录了表和其它数据库对象的定义。log文件记录了数据库最近所做的更新。data文件包含了cached(缓冲)表的数据,而backup文件是将data文件压缩备份,它包含了data文件上次的最终状态数据。所有这些文件都是必不可少的,千万不可擅自删除。但如果你的数据库没有缓冲表(cached table),test.data和test.backup文件是不会存在。

  接下来我们对Hsqldb的三种模式进行简单介绍,同时包括部分工具的启动的方式。

一、 Server 模式  

 Server模式提供了最大的可访问性。应用程序(客户端)通过Hsqldb的JDBC驱动连接服务器。在服务器模式中,服务器在运行的时候可以被指定为最多10个数据库。根据客户端和服务器之间通信协议的不同,Server模式可以分为以下三种:

1、 Hsqldb Serve

  这种模式是首选的也是最快的。它采用HSQLDB专有的通信协议。启动服务器需要编写批处理命令。Hsqldb提供的所有工具都能以java class归档文件(也就是jar)的标准方式运行。假如hsqldb.jar位于相对于当前路径的../lib下面。我们的命令将这样写:

  java -cp ../lib/hsqldb.jar org.hsqldb.Server -database.0 mydb -dbname.0 demoDB

  现在你可能会疑惑,[-database.0 ]、 [dbname.0]为什么在后面加[0]。_... ...我们不是在前面说服务模式运行的时候可以指定10个数据库吗,如有多个数据库,则继续写命令行参数-database.1 aa -dbname.1 aa -database.2 bb-dbname.2 bb ... ...

  新建文本文件保存上面命令,文件名可以随意,将后缀名改成bat,然后直接执行批处理文件即可。在以后介绍的执行启动工具的命令采用同样方法。

  上面启动服务器的命令启动了带有一个(默认为一个数据库)数据库的服务器,这个数据库是一个名为"mydb.*"文件,这些文件就是mydb.Properties、mydb.script、mydb.log等文件。其中demoDB是mydb的别名,可在连接数据库时使用。

2 、 Hsqldb Web Server

   这种模式只能用在通过HTTP协议访问数据库服务器主机,采用这种模式唯一的原因是客户端或服务器端的防火墙对数据库对网络连接强加了限制。其他情况下,这种模式不推荐被使用。

 运行web服务器的时候,只要将刚才命令行中的主类(main class)替换成:org.hsqldb.WebServer

3、 Hsqldb Servlet

    这种模式和Web Server一样都采用HTTP协议,当如Tomcat或Resin等servlet引擎(或应用服务器)提供数据库的访问时,可以使用这种模式。但是Servlet模式不能脱离servlet引擎独立启动。为了提供数据库的连接,必须将HSQLDB.jar中的hsqlServlet类放置在应用服务器的相应位置。

  Web Server和Servlet模式都只能在客户端通过JDBC驱动来访问。Servlet模式只能启动一个单独的数据库。请注意做为应用程序服务器的数据库引擎通常不使用这种模式。

连接到以Server模式运行的数据库

  当HSQLDB服务器运行时,客户端程序就可以通过hsqldb.jar中带有的HSQLDB JDBC Driver连接数据库。

java 代码
  1. try{   
  2.   
  3.          Class.forName("org.hsqldb.jdbcDriver") ;   
  4.   
  5.  }catch(ClassNotFoundException e){   
  6.   
  7.          e.printStackTrace();     
  8.   
  9.  }   
  10.   
  11.      Connection c = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/xdb", "sa", "");   
  12.   

   注:hsqldb的默认用户是sa密码为空。修改默认密码的方法我们将在工具使用部分做出介绍。

 二、 In-Process模式

  In-Process模式又称Standalone模式。这种模式下,数据库引擎作为应用程序的一部分在同一个JVM中运行。对于一些应用程序来说, 这种模式因为数据不用转换和通过网络的传送而使得速度更快一些。其主要的缺点就是默认的不能从应用程序外连接到数据库。所以当应用程序正在运行的时候,你不能使用类似于Database Manager的外部工具来查看数据库的内容。在 1.8.0 版本中,你可以从同一个JVM的一个线程里面来运行一个服务器实例,从而可以提供外部连接来访问你的In-Process数据库。

  推荐的使用In-Process模式方式是:开发的时候为数据库使用一个HSQLDB 服务器实例,然后在部属的时候转换到In-Process内模式。

  一个In-Process模式数据库是从JDBC语句开始启动的,在连接URL中带有指定的数据库文件路径作为JDBC的一部分。例如,假如数据库名称为testdb,它的数据库文件位于与确定的运行应用程序命令相同的目录下,下面的代码可以用来连接数据库:

  Connection c = DriverManager.getConnection("jdbc:hsqldb:file:testdb ", "sa", "");

    数据库文件的路径格式在Linux主机和Windows主机上都被指定采用前斜线("/")。所以相对路径或者是相对于相同分区下相同目录路径的表达方式是一致的。使用相对路径的时候,这些路径表示的是相对于用于启动JVM的shell命令的执行路径。

三、Memry-Only数据库


  Memory-Only数据库不是持久化的而是全部在随机访问的内存中。因为没有任何信息写在磁盘上。这种模式通过mem:协议的方式来指定:

        Connection c = DriverManager.getConnection("jdbc:hsqldb:mem:dbName", "sa", "");

  你也可以在server.properties中指定相同的URL来运行一个Memory-Only(仅处于内存中)服务器实例。

  注意事项:当一个服务器实例启动或者建立一个in-process数据库连接的时候,如果指定的路径没有数据库存在,那么就会创建一个新的空的数据 库。这个特点的副作用就是让那些新用户产生疑惑。在指定连接已存在的数据库路径的时候,如果出现了什么错误的话,就会建立一个指向新数据库的连接。为了解 决这个问题,你可以指定一个连接属性ifexists=true只允许和已存在的数据库建立连接而避免创建新的数据库,如果数据库不存在的话, getConnection()方法将会抛出异常。

 四、 工具的使用


   Hsqldb提供的主要的工具类:

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


  其中DatabaseManage和Sql Tool,只能用命令行参数来运行。你可以在命令行后面加上参数-?来查看这些工具可用的参数列表。其他工具可以通过DatabaseManager的主界面启动,便于交互式操作。

  为了便于操作,我们同样把这些工具启动的命令做成批处理文件。方法和前面我们所介绍的创建启动服务模式命令的方法一样。在这里我们再强调一次hsqldb.jar的位置,因为所有启动命令都是参照hsqldb.jar的位置编写的

  如果您觉得麻烦你也可以采用绝对路径编写命令。

  现在我们一起运行AWT版本的DatabaseManager工具,hsqldb.jar位于相对于当前路径的../lib下面,命令如下:

  Java -cp ../lib/hsqldb.jar org.hsqldb.util.DatabaseManager

  将命令保存为后缀名为bat的批处理文件,保存为DatabaseManager.bat,也可根据个人习惯命名。执行DatabaseManager.bat你将看到如下画面:。


         现在对这个简洁的登录界面做个简单的介绍*_*

  • Recent:选择你最近的登录方案,[可选] 
  • Setting Name:本次登录方案名称,如果本次登录成功,那么等你下次登录的时候在Recent下拉列表中将看到你的成功登录方案[可选] 
  • Type:登录模式,其中包括In-Memory模式、Standalone(In-process)模式、Server模式、WebServer模式... ...[必选] 
  • Driver:连接数据库的驱动程序[必选] 
  • URL:连接数据库的URL[必选] 
  • User:用户名[必选] 
  • Password:密码[ 除非密码为空]


  注:如果Type项选择Server模式或者WebServer模式需要你事先启动与之对应的服务模式。而Standalone(In- process)默认是不支持DatabaseManager连接的,具体原因我们已经在前面解释过。至于In-Memory可以随意登录,所有的操作数 据都不会记录在本地磁盘。而Type还有很多其他选项,具体的用法可以参考官方文档,位置在hsqldb目录/doc/guide/ guide.pdf。

  如果你想运行DatabaseManagerSwing也很简单,相信你已经想到了。我们只需要把启动DatabaseManager命令修改成:
  Java -cp ../lib/hsqldb.jar org.hsqldb.util. DatabaseManagerSwing

  两种工具的操作方法类似,这里就不再赘述。

        差点忘记,前面我说过要给出修改sa用户密码的方法。最后再占用大家一点点时间。当你用SA通过DatabaseManager登录成功后会出现如下界面:

      在右上方的空白区域输入set password "newpassword" 点击执行即可。

  到这里我们对Hsqldb的简单介绍就结束了。

  本文参考自Hsqldb的官方文档,个人水平有限难免出现错误,

1.bmp
 描述:  
 文件大小: 483 KB
 看过的: 文件被下载或查看 1003 次

1.bmp
下载
2.bmp
 描述:  
 文件大小: 288 KB
 看过的: 文件被下载或查看 957 次

2.bmp
下载
 
Mplus—验证性因素分析(Confirmatory Factor Analysis, CFA) 介绍一阶和二阶验证性因素分析概况及在Mplus中的操作方法。 阅读详情

相关推荐

奇异值分解(SVD)C++实现

奇异值分解SVD(紧奇异值分解,截断奇异值分解)C++实现

weixin_45804601的博客 4173

properties的读取及HSQL的学习(一)

DB.properties   #HSQLDB Configer HSQL_USERNAME=sa HSQL_PASSWORD= HSQL_DRIVERNAME=org.hsqldb.jdbcDriver HSQL_URL=jdbc:hsqldb:hsql://localhost/test   ReadProperties.java   package org.test;  

网络 528

STM32硬件SPI驱动W5500以太网模块全流程(附避坑指南)

本文详细介绍了STM32硬件SPI驱动W5500以太网模块的全流程,包括硬件架构设计、SPI接口选型、官方驱动移植、网络协议栈配置与优化等关键步骤。通过实战案例和性能对比数据,帮助开发者快速实现稳定高效的网络连接,特别提供了常见问题排查指南和性能调优技巧。

weixin_29194693的博客 269

姚博文 hsqldb

hsql:database.propertieshibernate.connection.password=hibernate.connection.url=jdbc:hsqldb:file:E:/data/bbhibernate.connection.driver_class=org.hsqldb.jdbcDriverhibernate.connection.username=sa文件模式 

姚博文的专栏 678

【Nature Communications】超高介电常数材料 Hf0.5Zr0.5O2(HZO)

复旦大学AnQuanJiang团队在《NatureCommunications》发表研究,通过原子层沉积技术制备Hf0.5Zr0.5O2(HZO)薄膜电容器,结合等离子体处理获得突破性性能:介电常数达921,储能密度584J/cm³,效率近100%。研究揭示了铁电性消失后氧空位有序排列产生超高介电常数的机制,并通过同步辐射衍射和STEM分析证实了微观结构转变。该材料在85-300K温度范围内保持稳定,经1万亿次循环后仍能维持100μC/cm²电荷密度,为高密度DRAM和CMOS器件集成提供了新方案。

荷塘阅色 2466

模糊高清修复真王炸!ComfyUI-SeedVR2-Kontext(画质修复+P图)本地部署教程

SeedVR2_comfyUI 是由字节跳动 Seed 实验室与南洋理工大学 S-Lab 联合开源的,专为 ComfyUI 用户开发的插件版本,官方项目名为。它主打,在图像超分上表现尤其亮眼,被多位实测者称为“目前模糊图像修复最强模型“。SeedVR2 在图像超分任务中表现突出,尤其擅长恢复模糊图像的细节,被称为“模糊高清修复真王炸”。特别的,也适合用于文字密集图像(如截图、扫描文档、老照片字幕)修复。模型通过对抗训练 + 特征匹配损失提升细节真实感,理论上对文字边缘锐化也有帮助。

SJJS_1的博客 2687

HSqlDB(java内置数据库)

1 HSqlDB简介 HSQLDB是一款Java内置的数据库,非常适合在用于快速的测试和演示的Java程序中。(无需独立安装数据库) HSQLDB有三种模式: 1. Server 就像Mysql那样 2. In-Process 又叫做 Standalone 模式,数据放在本地文件,伴随JVM一起启动,是HSQLDB的主要应用场景 3. Memory-only, 仅仅在内存中,一旦重启,数据就消失...

yloveyzcl的博客 2万+

YOLOv11改进策略【卷积层】| ICCV-2023 LSK大核选择模块 包含二次独家创新

LSK module是。

Limiiiing的博客 1388

hsql数据库(HyperSQL )(简单了解一下)

HSQLDB 的2.0版本有三个事务控制模式。它支持读取未提交内容和可串行化隔离级别,支持表级锁或多版本并发控制(MVCC),或者锁和MVCC结合。早期的版本是基于中断的HypersonicSQL数据库引擎。(Hyper SQL Database)是一个用Java编写的关系数据库管理系统,轻量级数据库,免费的,可以嵌入式,也可以在内存中使用,还可以在当做服务使用,不过我倒是还没实战过。干我忘记我从哪第一次看到的这个数据库了。,是按照标准SQL和JDBC 4的规范编写的。本文展示的也是2.0的版本,

一个后端菜鸟的博客 3079

国网DLT698.45协议——采集系统、数据交换(一)

对于国网698协议,是一种面向对象的通信协议,用于远程监控和控制电力系统中的设备。面向对象使得对协议的思考更趋向于正常思维,使计算机中描述的抽象世界于现实世界中能够更好的对应起来。协议中就是将各种方法和属性对应描述成类和对象。接下来是我学习该协议的一些总结和认识,欢迎大家随时在评论区或者私信我交流学习。:系统=对象+消息:程序=算法+数据对象和接口类描述:类描述了一组具有相同属性和相同方法的对象。

一个bug是bug,多个bug能work 1万+

浅谈innovus Update io latency相关作用

同样我们使用update io latency,工具取launch clock latency负值反标到clock端口上,同时认为capture clock latency与launch clock latency相等,这样可以相互抵消,这样setup time slack = T – Tsetup -Tcomb – Toutput_delay,因此采用update io latency后,reg2out timing path的setup check变得真实些。图3 in2reg示意图。

芯冰乐 476

HSQLDB:一款基于 Java 的嵌入式关系型数据库

HSQLDB(HyperSQL DataBase)是一个使用 Java 语言编写的开源关系型数据库,支持嵌入式、客户端/服务器部署模式。本文介绍了 HSQLDB 的功能、下载安装、基本操作以及相关的学习资源。

Tony.Dong的专栏 4891

数据分析案例-2024 年全电动汽车数据集可视化分析

本数据集来源于Kaggle,原始数据集共有177866条数据,17个变量。该数据集显示了目前通过华盛顿州许可部 (DOL) 注册的电池电动汽车 (BEV) 和插电式混合动力电动汽车 (PHEV)。电池电动汽车 (BEV) 是一种全电动汽车,使用一个或多个电池来存储电能,为电机提供动力,并通过将车辆插入电源进行充电。插电式混合动力汽车 (PHEV) 是一种使用一个或多个电池为电动机提供动力的车辆;使用另一种燃料,例如汽油或柴油,为内燃机或其他推进源提供动力;并通过将车辆插入电源来充电。

m0_64336780的博客 1万+

hsqldb和mysql,Hsqldb简介和基本使用

Hsqldb是一个开放源代码的 JAVA数据库,其具有标准的SQL语法和JAVA接口,它可以自由使用和分发,非常简洁和快速的。具有Server模式,进程内模式(In- Process)和内存模式(Memory-Only)三种。运行Hsqldb需要hsqldb.jar包, 它包含了一些组件和程序。每个程序需要不同的命令来运行。它位于项目的lib目录下,目前的版本是1.8.0.5。官方的下载地址是:h...

weixin_33196646的博客 443

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

hsqldb简介和入门

Hsqldb 是一个开放源代码的JAVA数据库,其具有标准的SQL语法和JAVA接口,它可以自由使用和分发,非常简洁和快速的。具有Server模式,进程内模式(In-Process)和内存模式(Memory-Only)三种。运行Hsqldb 需要hsqldb .jar包, 它包含了一些组件和程序。每个程序需要不同的命令来运行。它位于项目的lib目录下,目前的版本是1.8.0.10。官方的下载地址是...

zouhui1987的专栏 419

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

hsqldb 简介和使用方法

Hsqldb是一个开放源代码的JAVA数据库,其具有标准的SQL语法和JAVA接口,它可以自由使用和分发,非常简洁和快速的。具有Server模式,进程内模式(In-Process)和内存模式(Memory-Only)三种。运行Hsqldb需要hsqldb.jar包, 它包含了一些组件和程序。每个程序需要不同的命令来运行。它位于项目的lib目录下,目前的版本是1.8.0.5。官方的下...

joe_zhjiang的专栏 391

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Hsqldb简介和使用方法

2011-04-08 10:43 joe_zhjiang ITEYE博客 字号:T | T 一键收藏,随时查看,分享好友! Hsqldb是一个开放源代码的JAVA数据库,其具有标准的SQL语法和JAVA接口,它可以自由使用和分发,非常简洁和快速的。 AD:干货来了,不要等!WOT2015 北京站演讲PPT开放下载! Hsqldb是一个开放源代码的JAVA数据库,其具有标准的SQ

w_j_w2010的博客 709

Hsqldb简介和基本使用(一)

Hsqldb是一个开放源代码的JAVA数据库,其具有标准的SQL语法和JAVA接口,它可以自由使用和分发,非常简洁和快速的。具有Server模式,进程内模式(In-Process)和内存模式(Memory-Only)三种。运行Hsqldb需要hsqldb.jar包, 它包含了一些组件和程序。每个程序需要不同的命令来运行。它位于项目的lib目录下,目前的版本是1.8.0.5。官方的下载地址是:htt

feilovemao的专栏 634

Hsqldb简介和基本使用(二)

 四、 工具的使用  Hsqldb提供的主要的工具类:org.hsqldb.util.DatabaseManager org.hsqldb.util.DatabaseManagerSwing org.hsqldb.util.Transfer org.hsqldb.util.QueryTool org.hsqldb.util.S

feilovemao的专栏 815

IDEA+HSQLDB环境搭建

IDEA导入hsqldb,附源代码

SWY's Workshop 5222
上一篇: 用纯JAVA语言实现读取MAC地址
下一篇: web应用程序启动时启动HSQLDB
SunnyJavaMoon
博客等级 码龄21年 20粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值