HSQLDB是一个轻量级的纯Java开发的开放源代码的关系数据库系统。由于HSQLDB的轻量(占用空间小),使用简单,支持内存运行方式等特色,HSQLDB被普遍用于开发环境和某些中小型系统中。
HSQLDB的运行须要Java环境的支持。html
运行模式 | 说明 | 启动命令 | JDBC例 |
内存java (Memory-Only)sql 模式数据库 |
全部数据都在内存里操做。应用程序退出后则数据被销毁。 | 启动方式1:经过程序中首次调用服务器 Connection c = DriverManager.getConnection("jdbc:hsqldb:mem:myDbName", session "sa", "");时工具 启动方式2:你也能够在server.properties中指定相同的URL来运行一个Memory-Only(仅处于内存中)服务器实例。url |
jdbc:hsqldb:mem:myDbName |
进程spa (In-Process).net 模式 |
从应用程序启动数据库。由于全部数据被写入到文件中,因此即便应用程序退出后,数据也不会被销毁。 | 跟Memory-Only模式同样, In-Process不须要另外启动,经过DriverManager.getConnection(jdbcUriName, "sa", "");方式既可启动 |
jdbc:hsqldb: file:/C:/mydb/myDbNamejdbc:hsqldb: file:/opt/db/myDbNamejdbc:hsqldb: file:myDbName |
服务器模式 | 该模式下HSQLDB跟其余数据库服务器同样,以服务器的形式被启动。 | 经过 java -cp ../lib/hsqldb.jar org.hsqldb.Server -database.0 mydb -dbname.0 myDbName 之类的命令启动HSQLDB守护进程。 |
jdbc:hsqldb:hsql:// localhost:9001/myDbName |
Web服务器模式 | 该模式HSQLDB以WEB服务器的形式启动,并经过HTTP协议接受客户端命令。 | 从1.7.2开始,WEB服务器模式的HSQLDB开始支持事务。 | java -cp ../lib/hsqldb.jar org.hsqldb.WebServer -database.0 mydb -dbname.0 myDbName |
HSQLDB的下载与安装:
HSQLDB的最新版本能够经过http://sourceforge.net/projects/hsqldb/下载。本文执笔阶段HSQLDB的最新稳定版本是:1.8.0.7。
下文以Windows环境为例,介绍怎么样安装HSQLDB。Linux环境除了目录与命令不同以外,其他基本同样。
下载完成以后,把下载的ZIP文件解压缩至任意目录例如c:/hsqldb便完成安装。
HSQLDB服务器模式的启动方法
由于In-Process模式以及Memory-Only模式能够无需另外启动HSQLDB,下面介绍服务器模式的启动方法。
假设咱们须要建立/启动一个名为mydb的数据库。
为了操做方便等,咱们在c:/hsqldb目录下建立mydb目录。
1,建立runMydb.bat文件,文件内容为:
java -cp ../lib/hsqldb.jar org.hsqldb.Server -database mydb
或
java -cp ../lib/hsqldb.jar org.hsqldb.Server -database.0 mydb -dbname.0 mydb
启动runMydb.bat命令便可
2,建立manageMydb.bat文件,内容:
java -cp ../lib/hsqldb.jar org.hsqldb.util.DatabaseManager -url jdbc:hsqldb:hsql://localhost/mydb
启动manageMydb.bat,便可启动HSQLDB的图形界面管理工具
Hsqldb 的主要工具类:
org.hsqldb.util.DatabaseManager
org.hsqldb.util.DatabaseManagerSwing
org.hsqldb.util.Transfer
org.hsqldb.util.QueryTool
org.hsqldb.util.SqlTool
使用JDBC链接HSQLDB数据库
Java语言经过JDBC使用HSQLDB数据库很是简单:
1,将hsqldb.jar加入到classpath
2,经过Class.forName("org.hsqldb.jdbcDriver" );初始化hsqldb的jdbc驱动
3,经过DriverManager.getConnection(hsqldb-url, user, password);取得HSQLDB数据库的链接
使用例:
try { Class.forName("org.hsqldb.jdbcDriver" ); } catch (Exception e) { System.out.println("ERROR: failed to load HSQLDB JDBC driver."); e.printStackTrace(); return; } Connection c = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/mydb", "sa", "");
<hibernate-configuration> <session-factory> <property name="connection.driver_class">org.hsqldb.jdbcDriver</property> <property name="connection.url">jdbc:hsqldb:hsql://localhost/mydb</property> <property name="connection.username">sa</property> <property name="connection.password"></property> <property name="dialect">org.hibernate.dialect.HSQLDialect</property> </session-factory> </hibernate-configuration>其他就跟其余数据库的用法同样了,这里再也不详述。