这些天在学习jasperReport用到了hsql,顺便也对于有一些小的了解。先看看别人怎么说他的几种运行模式,括号内是我的注明。
留内存模式
所有数据库表和索引都放在内存中,而且永远不会保存到磁盘上。在您发出为什么有人想要使用在应用程序终止时就会丢失的数据库这样的疑问之前,请先考虑为您可以使用标准 SQL 语句进行查询、排序、分组和更新的数据库数据拥有一块本地高速缓存。
单机模式
应用程序使用 JDBC 创建一个数据库连接,并且 HSQLDB 引擎运行在该应用程序中,这时允许直接访问数据库文件。不能存在并发用户(应用程序独占地访问数据库文件),但因此也没有额外的线程和 TCP 连接开销。单机模式是许多嵌入式应用程序的首选模式。(一般而言,我们自己写点小程序就用这个模式就行了,在HSQLDB_HOME/demo中有一个 vrunManagerSwing.bat可以启动一个图形管理界面,上面可以选择用哪一种模式的。这个时候的连接字符窜类似 conn=DriverManager.getConnection("jdbc:hsqldb:file:D://Program
Files//hsqldb//data//mem", "sa", "");也就是file:后面接上一个实际的数据库文件的名字就可以了。不过我试过,这个file:要不要好像都行)
服务器模式
这是类似于其他关系数据库的标准客户机/服务器数据库配置,允许出现使用 TCP 套接字的并发连接。大部分开发人员喜欢这种模式,因为它允许任何 JDBC 客户机在主应用程序仍在运行的情况下连接并查询/更新表。(这个时候连接字符串类似jdbc:hsqldb:hsql://hsqldbsrv,其中 hsqldbsrv是机器名称,如果是本机用localhost就可以了,如果是别的机器,而且该机器运行多个服务,可能还要指定端口如:jdbc:hsqldb:hsql://hsqldbsrv:9002)
Web服务器模式
HSQLDB 可以用作 Web 服务器,可以通过 HTTP 接受 SQL 查询;也能作为任何标准 Web 容器中的 servlet 来运行,可以穿过防火墙或者安装在 Web 宿主服务上,而不用涉及到提供者支持小组(和昂贵的数据库宿主选项)。由于 HTTP 是无状态的,所以本模式中不存在事务。 (这个时候连接字符串就是jdbc:hsqldb:http://websrv,相应改变类似服务器模式)
HSQLDB是一个轻量级的纯Java开发的开放源代码的关系数据库系统。因为HSQLDB的轻量(占用空间小),使用简单,支持内存运行方式等特点,HSQLDB被广泛用于开发环境和某些中小型系统中。
HSQLDB的运行需要Java环境的支持。有关Java环境的安装设置请参考:
HSQLDB的四种运行模式:
运行模式
说明
启动命令
JDBC例
内存(Memory-Only)模式 |
所有数据都在内存里操作。应用程序退出后则数据被销毁。 |
启动方式1:通过程序中首次调用Connection c = DriverManager.getConnection("jdbc:hsqldb:mem:myDbName", "sa", "");时
启动方式2:你也可以在server.properties中指定相同的URL来运行一个Memory-Only(仅处于内存中)服务器实例。 |
jdbc:hsqldb:mem:myDbName |
进程(In-Process)模式 |
从应用程序启动数据库。因为所有数据被写入到文件中,所以即使应用程序退出后,数据也不会被销毁。 |
跟Memory-Only模式一样,In-Process不需要另外启动,通过DriverManager.getConnection(jdbcUriName, "sa", "");方式既可启动 |
jdbc:hsqldb:file:/C:/mydb/myDbName
jdbc:hsqldb:file:/opt/db/myDbName
jdbc: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://hsqldb.sourceforge.net/下载。
下文以Windows环境为例,介绍怎么样安装HSQLDB。Linux环境除了目录与命令不一样之外,其余基本一样。
下载完成之后,把下载的ZIP文件解压缩至任意目录例如c:/hsqldb便完成安装。
HSQLDB服务器模式的启动方法
因为In-Process模式以及Memory-Only模式可以无需另外启动HSQLDB,下面介绍服务器模式的启动方法。
假设我们需要创建/启动一个名为mydb的数据库。
为了操作方便等,我们在c:/hsqldb目录下创建mydb目录。
1,创建runMydb.bat文件,文件内容为:
-
java-cp../lib/hsqldb.jarorg.hsqldb.Server-databasemydb
或
java-cp../lib/hsqldb.jarorg.hsqldb.Server-database.0mydb-dbname.0mydb
2,创建manageMydb.bat文件,内容:
-
java-cp../lib/hsqldb.jarorg.hsqldb.util.DatabaseManager-urljdbc:hsqldb:hsql:
-
启动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(Exceptione){
-
System.out.println("ERROR:failedtoloadHSQLDBJDBCdriver.");
-
e.printStackTrace();
-
return;
-
}
-
-
Connectionc=DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/mydb","sa","");
-
try{
-
Class.forName("org.hsqldb.jdbcDriver");
-
}catch(Exceptione){
-
System.out.println("ERROR:failedtoloadHSQLDBJDBCdriver.");
-
e.printStackTrace();
-
return;
-
}
-
-
Connectionc=DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/mydb","sa","");
其中,jdbc:hsqldb:hsql://localhost/xdb需要替换为合适的jdbc-url。
在Hibernate里使用HSQLDB
著名的ORM工具Hibernate也提供了对HSQLDB数据库的支持。需要在Hibernage里使用HSQLDB,只需在hibernate.cfg.xml里加入类似如下设置:
-
<hibernate-configuration>
-
<session-factory>
-
...
-
<propertyname="connection.driver_class">org.hsqldb.jdbcDriver</property>
-
-
<propertyname="connection.url">jdbc:hsqldb:hsql:
-
<propertyname="connection.username">sa</property>
-
<propertyname="connection.password"></property>
-
-
<propertyname="dialect">org.hibernate.dialect.HSQLDialect</property>
-
...
-
</session-factory>
-
</hibernate-configuration>
-
<hibernate-configuration>
-
<session-factory>
-
...
-
<propertyname="connection.driver_class">org.hsqldb.jdbcDriver</property>
-
-
<propertyname="connection.url">jdbc:hsqldb:hsql:
-
<propertyname="connection.username">sa</property>
-
<propertyname="connection.password"></property>
-
-
<propertyname="dialect">org.hibernate.dialect.HSQLDialect</property>
-
...
-
</session-factory>
-
</hibernate-configuration>
分享到:
相关推荐
这对于具有易于嵌入用于回归测试的测试数据库非常有用,尤其是现在 HSQLDB 具有 Oracle 兼容模式。 我从谷歌代码项目 oracle2hsqldb 分叉了这个,而这个项目又是从长期废弃的 SchemaMule 项目分叉出来的。 我升级它...
里面有hsqldb_1_8_0_10.zip 还有个hsqldb-mini.zip 包括一个hsqldb学习文档
hsqldb确实是个好东西,对于系统演示,开发等都很方便。
HSQLDB 2.2.9 发布了 Hsqldb是一个开放源代码的JAVA...具有Server模式,进程内模式(In-Process)和内存模式(Memory-Only)三种。运行Hsqldb需要hsqldb.jar包, 它包含了一些组件和程序。每个程序需要不同的命令来运行。
简单的创建两个例子,如何创建hsqldb,如何使用hsqldb查询数据等。
HSQLDB 1.8.0
hsqldb jdbc driver适合于hsqldb
具有SERVER模式,进程内模式(IN-PROCESS)和内存模式 (MEMORY-ONLY)三种。运行HSQLDB需要HSQLDB.JAR包, 它包含了一些组件和程序。每个程序需 要 不同的命令来运行。它位于项目的LIB目录下,目前的版本是1.8.0.5。
数据库连接 hsqldb1.7.1.jar
hsqldb jar
hsqldb的最新1.9.0版本,支持windows操作系统
hsqldb for jdk1.5因为hsqldb的2.0版本以上都是jdk1.6进行编译的,我提供的这个2.25版本的是jdk1.5编译的。
HSQLDB中文手册
HSQLDB中文文档,能够提高数据的处理速度。
hsqldb可能需要的额外jar包 Additional Jar files needed for hsqldb.
hsqldb source code and document, it is the version 2.0 rc3. ...sqldb是一个非常著名的数据库,支持嵌入和client-server方式,支持内存模式,cached, text 3种表。 欢迎更多人研究这种优秀的开源数据库
hsqldb-2.4.0
HyperSQL User Guide HyperSQL Database Engine (HSQLDB) 2.2 hsqldb-2.2.9用户手册
HSQLDB数据库,经典啊
HSQLDB是一个开放源代码的JAVA数据库,其具有标准的SQL语法和JAVA接口,它可以自由使用和分发,非常简洁和快速的。具有Server模式,每个程序需要不同的命令来运行。