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提供三种主要的启动模式: - **Server模式**:这种模式下,HSQldb作为独立的服务运行,类似于MySQL或Oracle。通过指定`java -cp hsqldb.jar org.hsqldb.Server`的命令行参数,如`-database.n`和`-dbname.n`...
它支持Java平台,并且完全遵循SQL标准,提供内存和磁盘两种存储方式,使得它适用于多种应用场景,如测试、嵌入式系统以及小型应用。 **1. HSQLDB的特点** - **开源免费**:HSQLDB是Apache软件基金会的项目,其源...
总的来说,HSQldb 2.25是一款专为JDK 1.5设计的数据库管理系统,它保持了HSQldb的高性能和灵活性,同时也解决了与旧版JDK的兼容性问题,为依赖JDK 1.5的开发者提供了一种可靠的数据库解决方案。
- **获取方式**:通过官方网站可以下载到HSQLDB的发布包、源代码以及相关文档。 - **安装步骤**:无需复杂安装,只需将HSQLDB包解压至所需的目录即可使用。 #### 三、HSQLDB的运行与使用 - **运行工具**:包括...
- **运行工具**:HSQLDB提供了几种工具来帮助管理和操作数据库,例如`HsqldbServer`用于启动服务端模式下的数据库服务;`HsqldbWebServer`则提供了一个基于Web的管理界面。 - **运行模式**:支持两种主要模式:`...
此外,HSQldb也支持磁盘存储,以满足更大型或持久性的数据存储需求。 HSQldb的另一个优势在于它的灵活性。它可以作为嵌入式数据库使用,这意味着它可以直接内置于应用程序中,无需独立服务器进程。同时,HSQldb也...
3. **高性能**:采用内存模式和磁盘模式两种运行方式,内存模式下性能极佳,而磁盘模式则提供了持久化的数据存储。 4. **支持多种数据库模式**:包括单用户模式、多用户网络模式以及分布式模式,满足不同场景需求。...
它支持多种数据库模式,包括纯内存储存、文件系统存储以及网络服务器模式,使其在多种场景下都能发挥效用。HSQldb 尤其适合开发人员进行测试和快速原型设计,因为它无需安装,直接运行在Java环境中,且性能表现良好...
HSQldb,全称HyperSQL Database,是一款开源的、轻量级的关系型数据库管理系统,尤其适合于嵌入式应用和开发测试...对于开发者而言,熟悉HSQldb提供的API,可以方便地在Java应用中集成数据库功能,进行数据存储和检索。
3. **存储引擎**:HSQldb提供了内存存储和磁盘存储两种方式,内存存储适合小型应用,磁盘存储则适用于大型数据集。 4. **强大的查询能力**:HSQldb支持复杂的SQL查询,包括子查询、联接操作、视图等。 5. **自动备份...
7. **强大的存储引擎**:HSQldb提供了多种存储引擎,包括内存存储、文件存储和纯文本存储,以适应不同的数据持久化需求。 二、HSQldb的使用与配置 HSQldb的使用通常包括创建数据库、表和索引,以及执行SQL语句。...
HSQldb有两种主要的运行模式:内存模式和文件模式。在内存模式下,数据库完全存储在内存中,关闭后数据将丢失;而在文件模式下,数据会持久化到硬盘,下次启动时可以恢复。"服务器和控制台"是指HSQldb可以作为网络...
- **SERVER模式**:通过HsqldbServer、HsqldbWebServer和HsqldbServlet等方式,HSQLDB能够作为一个独立的数据库服务器运行,支持远程客户端连接,适用于分布式应用。 - **In-Process(Standalone)模式**:HSQLDB可以...
#### 四、会话与事务 - **概述**:会话与事务的基本概念。 - **会话属性与变量**:用于控制会话行为的属性和变量。 - **会话属性**:例如时区设置等。 - **会话变量**:用于存储临时数据。 - **会话表**:特殊类型的...
四、HSQldb 2.3.3的应用场景 1. **开发测试**:在开发过程中,HSQldb作为临时数据库,方便进行功能测试和单元测试。 2. **小型应用**:对于只需要简单数据库功能的轻量级应用,HSQldb是一个理想选择。 3. **嵌入式...