HSQLDB教程
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