`
流浪鱼
  • 浏览: 1683073 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hsqldb四种存储方式

 
阅读更多

hsqldb拥有四种存 储数据的方式,之前见过的有mem和hsql,下面来介绍一下它们的用法和区别。

mem,内存(memory)存储方式。

hsqldb启动的时候会在内存中建立对应的表结构,运行期间对数据做出的所有修改都保存到内存中,最后关闭hsqldb的同时,内存中的所有数据也会全部丢失。

mem方式的缺点是每次启动hsqldb都要先创建表结构,插入初始数据,关闭hsqldb的同时数据也会全部丢失。

mem方式的优点是所有操作都在内存中进行,不会生成额外的数据文件,可以保证每次创建的数据库都是绝对干净的,这点对测试来讲很有用。

file,文件存储方式。

hsqldb使用文件保存数据库配置,表结构和更新的数据。

hsqldb运行过程中会生成四个文件,它们的文件名都是与连接url地址对应的,示例02-03/File.java中配置的url为"jdbc:hsqldb:file:db/file",对应的将是db目录下所有以file开头的文件。

file.properties存放数据库配置,包括数据库版本,缓存,表结构设置等等。

file.lck用来标记当前数据库是否已经被某一个hsqldb访问了,同一时间只有一个hsqldb能操作数据库文件,这样才能保证不会出现数据冲突。

这个文件在hsqldb启动时自动生成,正常关闭时会自动删除,但非法关闭会无法删除这个文件,如果因为这个文件出现数据库服务启动的情况,就需要手工删除。

file.script和file.log

hsqldb使用这两个文件保存数据表结构和数据,因为用到了缓存,更新的数据不会直接写入文件,而是在内存中积累一定量后,才会批量写入file.log这个日志文件。

file.script用来保存最终数据,hsqldb正常关闭的时候会把内存和日志文件(file.log)中的数据写入file.script,并删除日志(file.log)文件。

如果出现非正常关闭的情况,内存中缓存的数据会丢失,file.log也无法删除,不过不用担心,下次启动的时候hsqldb会先检测是否有未删除的file.log,将其中的数据写入file.script,再读取file.script中的数据,进行初始化操作。

File.java中的sql语句有了变化,因为使用文件保存了表结构,每次操作之前还是先删除它们比较保险。

res,资源存储方式。

它是mem与file两者的结合,我们把res.properties和 res.script放到classpath下的db/目录下,对应url= "jdbc:hsqldb:res:/db/res"。数据库启动的时候会去这两个文件里读取数据进行初始化,但不会生成res.lck和 res.log,以后进行的所有操作就都在内存里了,关闭数据库也不会写入res.script。

res就像是使用file提供初始数据的mem内存访问方式,它在系统演示的时候十分方便,设置一次初始数据就可以演示多次,而且不会影响初始数据的结果。用于测试就不太适合了,res.script明显没有sql语句便于维护,还是老老实实用sql导入更合适。

res唯一的限制是不能进行建表和删表的操作,你可以插入,修改,删除数据,但是不能修改表的结构。

hsql,socket访问方式。

使用socket链接,从一个单独运行的hsqldb服务器中获得数据,这个服务器中的hsqldb又可能是这四种存储方式。只要你想,就完全可以做成一条链状结构。

 

 

分享到:
评论

相关推荐

    hsqldb使用(转载)

    HSQldb提供三种主要的启动模式: - **Server模式**:这种模式下,HSQldb作为独立的服务运行,类似于MySQL或Oracle。通过指定`java -cp hsqldb.jar org.hsqldb.Server`的命令行参数,如`-database.n`和`-dbname.n`...

    HSQLDB

    它支持Java平台,并且完全遵循SQL标准,提供内存和磁盘两种存储方式,使得它适用于多种应用场景,如测试、嵌入式系统以及小型应用。 **1. HSQLDB的特点** - **开源免费**:HSQLDB是Apache软件基金会的项目,其源...

    hsqldb 2.25

    总的来说,HSQldb 2.25是一款专为JDK 1.5设计的数据库管理系统,它保持了HSQldb的高性能和灵活性,同时也解决了与旧版JDK的兼容性问题,为依赖JDK 1.5的开发者提供了一种可靠的数据库解决方案。

    HSQLDB中文帮助文档

    - **获取方式**:通过官方网站可以下载到HSQLDB的发布包、源代码以及相关文档。 - **安装步骤**:无需复杂安装,只需将HSQLDB包解压至所需的目录即可使用。 #### 三、HSQLDB的运行与使用 - **运行工具**:包括...

    HSQLDB快速连接数据库

    - **运行工具**:HSQLDB提供了几种工具来帮助管理和操作数据库,例如`HsqldbServer`用于启动服务端模式下的数据库服务;`HsqldbWebServer`则提供了一个基于Web的管理界面。 - **运行模式**:支持两种主要模式:`...

    hsqldb-2.2.8数据库

    此外,HSQldb也支持磁盘存储,以满足更大型或持久性的数据存储需求。 HSQldb的另一个优势在于它的灵活性。它可以作为嵌入式数据库使用,这意味着它可以直接内置于应用程序中,无需独立服务器进程。同时,HSQldb也...

    HSQLDB 1.8.0

    3. **高性能**:采用内存模式和磁盘模式两种运行方式,内存模式下性能极佳,而磁盘模式则提供了持久化的数据存储。 4. **支持多种数据库模式**:包括单用户模式、多用户网络模式以及分布式模式,满足不同场景需求。...

    hsqldb demo

    它支持多种数据库模式,包括纯内存储存、文件系统存储以及网络服务器模式,使其在多种场景下都能发挥效用。HSQldb 尤其适合开发人员进行测试和快速原型设计,因为它无需安装,直接运行在Java环境中,且性能表现良好...

    hsqldb的最新版本

    HSQldb,全称HyperSQL Database,是一款开源的、轻量级的关系型数据库管理系统,尤其适合于嵌入式应用和开发测试...对于开发者而言,熟悉HSQldb提供的API,可以方便地在Java应用中集成数据库功能,进行数据存储和检索。

    hsqldb-2.3.4

    3. **存储引擎**:HSQldb提供了内存存储和磁盘存储两种方式,内存存储适合小型应用,磁盘存储则适用于大型数据集。 4. **强大的查询能力**:HSQldb支持复杂的SQL查询,包括子查询、联接操作、视图等。 5. **自动备份...

    开源数据库软件hsqldb

    7. **强大的存储引擎**:HSQldb提供了多种存储引擎,包括内存存储、文件存储和纯文本存储,以适应不同的数据持久化需求。 二、HSQldb的使用与配置 HSQldb的使用通常包括创建数据库、表和索引,以及执行SQL语句。...

    hsqldb包和使用说明

    HSQldb有两种主要的运行模式:内存模式和文件模式。在内存模式下,数据库完全存储在内存中,关闭后数据将丢失;而在文件模式下,数据会持久化到硬盘,下次启动时可以恢复。"服务器和控制台"是指HSQldb可以作为网络...

    HSQLDB中文手册

    - **SERVER模式**:通过HsqldbServer、HsqldbWebServer和HsqldbServlet等方式,HSQLDB能够作为一个独立的数据库服务器运行,支持远程客户端连接,适用于分布式应用。 - **In-Process(Standalone)模式**:HSQLDB可以...

    HSQLDB用户手册

    #### 四、会话与事务 - **概述**:会话与事务的基本概念。 - **会话属性与变量**:用于控制会话行为的属性和变量。 - **会话属性**:例如时区设置等。 - **会话变量**:用于存储临时数据。 - **会话表**:特殊类型的...

    hsqldb-2.3.3.zip

    四、HSQldb 2.3.3的应用场景 1. **开发测试**:在开发过程中,HSQldb作为临时数据库,方便进行功能测试和单元测试。 2. **小型应用**:对于只需要简单数据库功能的轻量级应用,HSQldb是一个理想选择。 3. **嵌入式...

Global site tag (gtag.js) - Google Analytics