zoukankan      html  css  js  c++  java
  • 【DataBase】Hsqldb的简单使用

    介绍

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

     1 package com.test.hsqldb;
     2 
     3 import java.sql.Connection;
     4 import java.sql.DriverManager;
     5 import java.sql.PreparedStatement;
     6 import java.sql.ResultSet;
     7 import java.sql.SQLException;
     8 import java.sql.Statement;
     9 
    10 public class TestHsqldbMem {
    11 
    12     
    13     public static void main(String[] args) throws SQLException, ClassNotFoundException {
    14         
    15         // 加载HSQL DB的JDBC驱动
    16         Class.forName("org.hsqldb.jdbc.JDBCDriver");
    17         
    18         // 自动创建数据库,得到联接对象  connection
    19         String url="jdbc:hsqldb:mem:db";
    20         Connection con=DriverManager.getConnection(url, "sa", "");
    21         
    22         // 新建数据表
    23         String ctreateTable="create table test(id integer,name VARCHAR(22) )";
    24         Statement createStatement = con.createStatement();
    25         long f1 = createStatement.executeUpdate(ctreateTable);
    26         System.out.println("创建表:" + f1);
    27         
    28         // 插入数据
    29         String insertSql = "INSERT INTO test VALUES(1,'小明')";
    30         Statement insertStatement = con.createStatement();
    31         long f2 = insertStatement.executeUpdate(insertSql);
    32         System.out.println("插入数据:" + f2);
    33         
    34         // 查询数据
    35         String selectSql = "select id,name from test";
    36         PreparedStatement prepareStatement = con.prepareStatement(selectSql);
    37         // 发送SQL  返回一个ResultSet
    38         ResultSet rs=prepareStatement.executeQuery();
    39 
    40         // 编历结果集
    41         while(rs.next())//从数据库的取一行数据,是否还有下一行
    42         {
    43             int id=rs.getInt(1);  //从1开始
    44             String name=rs.getString(2);
    45             System.out.println("id:"+id+"	名称:"+name);
    46         }
    47         
    48         // 关闭连接
    49         con.close();
    50         
    51     }
    52 
    53 }

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

        

      

  • 相关阅读:
    C#单例模式的实现再回顾
    智慧质证使用过程中的4个接口
    Amortized Analysis 均摊分析
    668. Kth Smallest Number in Multiplication Table
    1201. Ugly Number III
    1482. Minimum Number of Days to Make m Bouquets
    744. Find Smallest Letter Greater Than Target
    436. Find Right Interval
    50. Pow(x, n)
    29. Divide Two Integers
  • 原文地址:https://www.cnblogs.com/h--d/p/10927169.html
Copyright © 2011-2022 走看看