Maven依赖

<dependency><groupId>org.hsqldb</groupId><artifactId>hsqldb</artifactId><version>2.5.0</version>
</dependency>

一、内存(mem)存储方式

jdbc:hsqldb:mem:testdb

    @Testpublic void testMem() throws ClassNotFoundException, SQLException {Class.forName("org.hsqldb.jdbc.JDBCDriver");
//        String hsqldbMemUrl = "jdbc:hsqldb:mem:.";String url = "jdbc:hsqldb:mem:testdb";Connection connection = DriverManager.getConnection(url, "SA", "");Statement statement = connection.createStatement();statement.execute("CREATE TABLE student (id INTEGER, name VARCHAR(10))");statement.execute("INSERT INTO student VALUES (1, 'zhang1')");statement.execute("INSERT INTO student VALUES (2, 'zhang2')");ResultSet rs = statement.executeQuery("SELECT * FROM student");while (rs.next()) {int col1 = rs.getInt(1);String col2 = rs.getString(2);System.out.println(String.format("%s %s", col1, col2));}rs.close();statement.close();connection.close();}

二、文件(file)存储方式

jdbc:hsqldb:file:/home/zxm/hsqldb/testdb

    @Testpublic void testFile() throws ClassNotFoundException, SQLException {Class.forName("org.hsqldb.jdbc.JDBCDriver");String url = "jdbc:hsqldb:file:/home/zxm/hsqldb/testdb";Connection connection = DriverManager.getConnection(url, "SA", "");Statement statement = connection.createStatement();statement.execute("CREATE TABLE student (id INTEGER, name VARCHAR(10))");statement.execute("INSERT INTO student VALUES (1, 'zhang1')");statement.execute("INSERT INTO student VALUES (2, 'zhang2')");ResultSet rs = statement.executeQuery("SELECT * FROM student");while (rs.next()) {int col1 = rs.getInt(1);String col2 = rs.getString(2);System.out.println(String.format("%s %s", col1, col2));}rs.close();statement.close();connection.close();}

会在file:/home/zxm/hsqldb/testdb下保存数据

三、资源(res)存储方式

jdbc:hsqldb:res:testdb

它mem与file方式的结合,是从classpath下读取数据

可以把file方式生成的testdb.properties和 testdb.script放在classpath下,用res方式可以读取到数据,数据库启动的时候会去这两个文件里读取数据进行初始化,但不会生成testdb.log和testdb.lck,以后进行的所有操作就都在内存里了,关闭数据库也不会写入testdb.script

    @Testpublic void testRes() throws ClassNotFoundException, SQLException {Class.forName("org.hsqldb.jdbc.JDBCDriver");String url = "jdbc:hsqldb:res:testdb";Connection connection = DriverManager.getConnection(url, "SA", "");Statement statement = connection.createStatement();
//        statement.execute("CREATE TABLE student (id INTEGER, name VARCHAR(10))");
//        statement.execute("INSERT INTO student VALUES (1, 'zhang1')");
//        statement.execute("INSERT INTO student VALUES (2, 'zhang2')");ResultSet rs = statement.executeQuery("SELECT * FROM student");while (rs.next()) {int col1 = rs.getInt(1);String col2 = rs.getString(2);System.out.println(String.format("%s %s", col1, col2));}rs.close();statement.close();connection.close();}

四、服务器模式

jdbc:hsqldb:hsql://localhost:9001/testdb

    public static void main(String[] args) {Server server = new Server();server.setDatabaseName(0, "testdb");server.setDatabasePath(0, "/home/zxm/hsqldb/testdb");server.setPort(9001);server.setSilent(true);server.setTrace(true);server.start();}@Testpublic void testHSQLConnect() throws ClassNotFoundException, SQLException {Class.forName("org.hsqldb.jdbc.JDBCDriver");String url = "jdbc:hsqldb:hsql://localhost:9001/testdb";Connection connection = DriverManager.getConnection(url, "SA", "");Statement statement = connection.createStatement();statement.execute("CREATE TABLE student (id INTEGER, name VARCHAR(10))");statement.execute("INSERT INTO student VALUES (1, 'zhang1')");statement.execute("INSERT INTO student VALUES (2, 'zhang2')");ResultSet rs = statement.executeQuery("SELECT * FROM student");while (rs.next()) {int col1 = rs.getInt(1);String col2 = rs.getString(2);System.out.println(String.format("%s %s", col1, col2));}rs.close();statement.close();connection.close();}

五、Web服务器模式

jdbc:hsqldb:http://localhost:9001/testdb

    public static void main(String[] args) {WebServer webServer = new WebServer();webServer.setDatabaseName(0, "testdb");webServer.setDatabasePath(0, "/home/zxm/hsqldb/testdb");webServer.setPort(9001);webServer.setSilent(true);webServer.setTrace(true);webServer.start();}@Testpublic void testHSQLConnect() throws ClassNotFoundException, SQLException {Class.forName("org.hsqldb.jdbc.JDBCDriver");String url = "jdbc:hsqldb:http://localhost:9001/testdb";Connection connection = DriverManager.getConnection(url, "SA", "");Statement statement = connection.createStatement();statement.execute("CREATE TABLE student (id INTEGER, name VARCHAR(10))");statement.execute("INSERT INTO student VALUES (1, 'zhang1')");statement.execute("INSERT INTO student VALUES (2, 'zhang2')");ResultSet rs = statement.executeQuery("SELECT * FROM student");while (rs.next()) {int col1 = rs.getInt(1);String col2 = rs.getString(2);System.out.println(String.format("%s %s", col1, col2));}rs.close();statement.close();connection.close();}

hsqldb的存储方式相关推荐

  1. Nutch2.4 存储方式配置

    Nutch2.x 存储方式配置 Nutch2.x存储映射技术Gora 在Nutch2.x只后,Nutch存储映射使用apache的Gora(Gora是一个开源的ORM框架),为了了解Gora是个什么东 ...

  2. CSR稀疏矩阵存储方式

    矩阵可分为稠密矩阵和稀疏矩阵,对于稀疏矩阵而言,使用同样的内存来存储这个矩阵显然是对内存的浪费,那么我们就可以想办法将矩阵中所有的o元素挥着不相关元素剔除,怎么剔除,第一种方法是通过三个一维矩阵来存储 ...

  3. 存储方式与介质对性能的影响

    摘要 数据的存储方式对应用程序的整体性能有着极大的影响.对数据的存取,是顺利读写还是随机读写?将数据放磁盘上还将数据放flash卡上?多线程读写对性能影响?面对着多种数据存储方式,我们如何选择?本文给 ...

  4. Java中数据存储方式

    2019独角兽企业重金招聘Python工程师标准>>> 1. 寄存器(register).这是最快的存储区,因为它位于不同于其他存储区的地方--处理器内部.但是寄存器的数量极其有限, ...

  5. Spring Cloud应用开发(七:使用Git存储方式实现分布式配置管理 )

    1.使用Git存储实现管理: 1.1.配置Git.在Git上创建microservice-study-config目录,并在目录中添加开发,预发布和测试的配置文件: 1.2.修改服务端配置文件.将mi ...

  6. SQL与NoSQL区别-存储方式

    传统的关系型数据库采用表格的储存方式, 数据以行和列的方式进行存储,要读取和查询都十分方便.而非关系型数据不适合这样的表格存储方式,通常以数据集的方式,大量的数据集中存储在一起,类似于键值对.图结构或 ...

  7. android的数据存储方式有哪几种方式,android存储数据的几种方式比较

    机身内存读取主要用个两个类文件输入流(FileInputStream)和文件输出流(FileOutputStream):FileInputStream fileInput = this.openFil ...

  8. iOS开发系列--C语言之存储方式和作用域

    概述 基本上每种语言都要讨论这个话题,C语言也不例外,因为只有你完全了解每个变量或函数存储方式.作用范围和销毁时间才可能正确的使用这门语言.今天将着重介绍C语言中变量作用范围.存储方式.生命周期.作用 ...

  9. 22.25在计算机中如何储存,浮点数在计算机中存储方式

    C语言和C#语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit,double数据占用64bit,我们在声明一个变量float f= ...

  10. 《iOS取证实战:调查、分析与移动安全》一3.4 数据存储方式

    3.4 数据存储方式 iPhone上的数据以很多方式进行存储.下面的小节涵盖了每一个数据存储的形式以供审查者了解潜在的证据如何定位或恢复. 内部存储: SQLite 数据库文件: 属性列表: 网络: ...

最新文章

  1. Cell Reports:去除宿主和胞外DNA以提高微生物基因组得率(痰液样本)
  2. 五问智能教育未来发展:重点解决什么问题?
  3. 操作系统机制学习总结
  4. nginx 禁止通过IP,未绑定域名访问服务器
  5. 机房收费系统之导出Excel
  6. Centos6配置samba服务器并批量添加用户和文件夹
  7. Unity AssetBundle 踩坑记录
  8. PDFlib-6.0.3p1-Windows] license key 算法分析
  9. SCSI硬盘数据如何用EasyRecovery恢复
  10. 计算机文管二级试题,计算机文管二级试题
  11. 移动应用安全开发要求(1,源码安全)
  12. PTA 病毒感染检测 (15分)
  13. P5238 整数校验器 (3月份洛谷月赛2019)
  14. 全栈Python自动化测试学习资料【付费资源、看到即赚到,】
  15. java - 随机生成人名/指定位数字符串/手机号 --工具方法
  16. Java设计模式19:观察者模式(Observer)
  17. 蓝牙5.2发布对TWS耳机有什么影响?耳机工厂告诉你!
  18. Oracle EBS简介
  19. 《精通CFD工程仿真与案例实战---FLUENT GAMBIT ICEM CFD Tecplot(第2版)》—— 导读...
  20. python for arcgis_arcgis for python arcpy 入门 (三)

热门文章

  1. Pix4dmapper航测教程——全流程内业处理
  2. 【AllenNLP入门教程】: 1、基于Allennlp2.4版本的文本分类
  3. ssci源刊里有开源期刊吗_SSCI和SCI期刊投稿指南-以经济学和管理学为例
  4. np.dot、np.outer、np.matmul、np.multipy、np.inner、np.outer与np.cross几个函数之间的区别
  5. Anaconda出现Navigator Error的解决办法
  6. matlab深度DoF图像修复,恢复玩dnf在win10中出错client.exe损坏的图像的技巧
  7. 采集侠-免费采集侠-免费采集侠插件
  8. 硬盘接口类型简洁区别及SCSI设备和SCSI磁盘的概念区别
  9. 使用highEcharts做出中国地图的效果图
  10. 高级语言程序设计(C语言) 笔记整理