📜  HSQLDB-简介(1)

📅  最后修改于: 2023-12-03 14:41:44.962000             🧑  作者: Mango

HSQLDB-简介

HSQLDB(HyperSQL DataBase)是一个开源的关系型数据库管理系统(RDBMS),完全由Java编写,支持SQL和JDBC标准。HSQLDB非常轻量级,可嵌入到Java应用程序中,也可以作为独立服务器运行。

特点
  • 非常轻量级,文件大小只有2 MB左右。
  • 支持SQL-92、SQL-99和SQL-2003标准。
  • 支持JDBC标准,可以与各种Java应用程序集成。
  • 可以作为嵌入式数据库或者独立服务器运行。
  • 基于纯Java编写,跨平台支持。
  • 支持事务和外键等关系型数据库特性。
  • 支持内存或者硬盘存储方式。
安装和使用
安装

HSQLDB可以通过Maven或者手动下载的方式进行安装。使用Maven安装示例如下:

<dependency>
    <groupId>org.hsqldb</groupId>
    <artifactId>hsqldb</artifactId>
    <version>2.5.1</version>
</dependency>
使用

HSQLDB支持两种运行方式:内存模式和服务器模式。

内存模式

在内存模式下,数据库会完全保存在内存中,适用于数据量较小的情况。以下是一个简单的内存模式示例:

import java.sql.*;

public class HsqldbMemoryExample {
    public static void main(String[] args) {
        Connection connection = null;
        try {
            connection = DriverManager.getConnection("jdbc:hsqldb:mem:testdb", "SA", "");
            Statement statement = connection.createStatement();
            statement.execute("CREATE TABLE example (id INTEGER, name VARCHAR(50))");
            statement.execute("INSERT INTO example VALUES (1, 'John'),(2, 'Jane'),(3, 'Jeff')");
            ResultSet resultSet = statement.executeQuery("SELECT * FROM example");
            while (resultSet.next()) {
                System.out.println(resultSet.getInt("id") + "," + resultSet.getString("name"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (connection != null) {
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

服务器模式

在服务器模式下,需要运行一个独立的HSQLDB服务器进程,客户端通过JDBC连接到该服务器进行操作。以下是一个简单的服务器模式示例:

import java.sql.*;

public class HsqldbServerExample {
    public static void main(String[] args) {
        Connection connection = null;
        try {
            Class.forName("org.hsqldb.jdbc.JDBCDriver");
            connection = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/testdb", "SA", "");
            Statement statement = connection.createStatement();
            statement.execute("CREATE TABLE example (id INTEGER, name VARCHAR(50))");
            statement.execute("INSERT INTO example VALUES (1, 'John'),(2, 'Jane'),(3, 'Jeff')");
            ResultSet resultSet = statement.executeQuery("SELECT * FROM example");
            while (resultSet.next()) {
                System.out.println(resultSet.getInt("id") + "," + resultSet.getString("name"));
            }
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (connection != null) {
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
总结

HSQLDB是一个轻量级、开源的Java关系型数据库,具有易用、高性能等特点,同时也兼容SQL标准和JDBC接口标准,可以作为嵌入式数据库或者独立服务器运行。