HSQLDB教程

时间:2020-02-23 14:32:15  来源:igfitidea点击:

HSQLDB(HyperSQL数据库)是用Java编写的关系数据库软件。
HSQLDB非常易于使用,所需的内存也非常少。
HSQLDB提供了多线程支持,是轻松针对数据库测试应用程序的绝佳选择。

HSQLDB安装

让我们看看如何轻松安装HSQLDB。

  • 从SourceForge下载HyperSQL数据库引擎。
    下载zip文件后,将其解压缩到您喜欢的位置。

  • HyperSQL数据库的最新版本是2.4.1,它支持Java 8,Java 9和Java10。
    如果已安装Java版本,则可以启动数据库了。

启动HSQLDB数据库

下面的命令将启动HSQLDB数据库实例。

$java -cp lib/hsqldb.jar org.hsqldb.server.Server --database.0 file:data/mydb --dbname.0 Test

上面的命令将在服务器模式下运行HSQLDB,我们提供了创建数据库脚本文件的位置。
dbname.0指定数据库的公共名称,客户端应用程序使用该名称连接到该数据库实例。

下图显示了该命令产生的控制台输出,请注意,启动数据库服务器后终端将保持打开状态。
如果您希望HSQLDB在后台运行,请在上面的命令中添加&

HSQL数据库管理器

HSQL数据库管理器提供了一个GUI以连接到HSQL数据库实例。
它允许我们运行一些有用的命令,例如填充测试数据,关闭服务器等。
我们可以使用以下命令来启动HSQL Database Manager Swing应用程序。

$java -cp lib/hsqldb.jar org.hsqldb.util.DatabaseManagerSwing

启动应用程序时,将打开一个弹出窗口,以输入要连接的数据库配置详细信息。
提供下图所示的必需信息,并连接到数据库实例。

HSQLDB插入测试数据

我们可以使用HSQL数据库管理器来填充测试数据,如下图所示。

这将创建一些表并将一些值插入其中,如下图所示。

HSQLDB关闭服务器

我们可以退出终端以突然关闭HSQLDB服务器。
下次启动服务器时,它将选择终止的位置。
但是,我们可以使用HSQL数据库管理器正常关闭服务器。

一旦执行" SHUTDOWN"命令,将产生以下屏幕。

HSQLDB脚本文件

HSQLDB以SQL脚本文件的形式存储数据库表及其数据。
对于每个数据库实例,HSQLDB都会创建一个脚本文件。
如果在文本编辑器中打开脚本文件,它将看起来像一个SQL脚本文件。
您可以使用此脚本文件将数据从HSQLDB导出到其他数据库,例如MySQL,Oracle等。

HSQLDB示例

让我们看一个简单的示例,在该示例中,我们将连接到HSQLDB数据库实例并从插入的测试数据中检索一些数据。

创建一个简单的maven项目并添加HSQLDB驱动程序依赖项。

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

我们将使用org.hsqldb.jdbc.JDBCDriver驱动程序类来创建与我们的HSLQDB数据库服务器的连接。
下面的实用程序类显示了如何创建与HSQLDB数据库的SQL连接。

package com.theitroad.hsqldb;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class HSQLDBConnection {

	public static Connection getConnection() {
		Connection con = null;

		try {
			Class.forName("org.hsqldb.jdbc.JDBCDriver");
			System.out.println("HSQLDB JDBCDriver Loaded");
			con = DriverManager.getConnection(
					"jdbc:hsqldb:hsql://localhost/Test", "SA", "");
			System.out.println("HSQLDB Connection Created");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return con;
	}
}

这是我们获得HSQLDB连接并运行一些数据库查询的测试类。

package com.theitroad.hsqldb;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class HSQLDBExample {

	public static void main(String[] args) {
		Connection con = HSQLDBConnection.getConnection();
		System.out.println("Connection Obtained");

		try {
			PreparedStatement ps = con.prepareStatement(
					"select id, firstName, lastName from customer");
			ResultSet rs = ps.executeQuery();
			while (rs.next()) {
				System.out.println("ID = " + rs.getInt("id") + 
						", Name = " + rs.getString("firstName") + " "
						+ rs.getString("lastName"));
			}
			rs.close();
			con.close();
		} catch (SQLException e1) {
			e1.printStackTrace();
		}
	}
}

请注意,除了Driver类之外,其他所有东西都使用通用SQL类。
您也可以运行其他CRUD操作命令。

主程序产生的输出:

HSQLDB JDBCDriver Loaded
HSQLDB Connection Created
Connection Obtained
ID = 0, Name = Laura Steel
ID = 1, Name = Robert King
...
ID = 49, Name = Robert Steel