转载:http://www.5ai7.net/viewtopic.php?t=5
一、简介:
hsql数据库是一款纯Java编写的免费数据库,许可是BSD-style的协议。
相对其他数据库来说,其体积小,才3276605bytes。
仅一个hsqldb.jar文件就包括了数据库引擎,数据库驱动,还有其他用户界面操作等内容。
最新版本是hsqldb_1_8_0_7 ,下载地址:http://hsqldb.org/
二、使用hsql数据库:
1、hsql数据库引擎有几种服务器模式:常用的Server模式、WebServer模式、Servlet模式、Standlone模式、Memory-Only数据库。
2、最为常用的Server模式:
1)首先却换到lib文件夹下,运行java -cp hsqldb.jar org.hsqldb.Server -database.0 db/mydb -dbname.0 xdb
执行命令后,将会在db文件夹下创建一个数据库mydb,别名(用于访问数据库)是xdb,如果存在mydb数据库,将会打开它。
2)运行数据库界面操作工具:java -cp hsqldb.jar org.hsqldb.util.DatabaseManager
在Type选项里选上相应的服务器模式,这里选择HSQL Database Engine Server模式;
Driver不用修改;
URL修改为jdbc:hsqldb:hsql://localhost/xdb (主要这里xdb就是上面我们设置的别名);
user里设置用户名,第一次登录时,设置的是管理员的用户名;
password设置密码。
然后点击Ok。
3)第一次运行数据库引擎,创建数据库完毕。好了,你可以打开db文件夹,会发现里面多了几个文件。
mydb.properties文件:是关于数据库的属性文件。
mydb.script:hsql主要保存的表(这里按hsql的说法是Memory表,就是最为常用的),里面的格式都是文本格式,可以用文本查看,里面的语句都是sql语句,熟悉sql语句的话,你也可以手动修改它。每次运行数据库引擎的话都是从这里加载进内存的。
mydb.lck表示数据库处于打开状态。
其他的请参看hsqldb包里的手册。
3、WebServer模式和Server运行模式基本一样,只是支持了Http等协议,主要用于防火墙,默认端口是9001。启动Server,java -cp hsqldb.jar org.hsqldb.WebServer ...剩余的和上面的一致。
4、Servlet模式可以允许你通过Servlet容器来访问数据库,请查看hsqlServlet.java的源代码,和WebServer类似。
5、另一个值得思考的模式是Standalone模式:不能通过网络来访问数据库,主要是在一个JVM中使用,那样的话,访问的速度会更加快。虽然文档里面提到主要是用于开发时使用,但是我们可以假设一下,该方法不需要一个引擎类的东西,而类似于打开文件的方式,返回一个Connection对象:
Connection c = DriverManager.getConnection("jdbc:hsqldb:file:mydb", "sa", "");
将会在当前目录找到mydb数据库相关文件,打开并返回一个Connection对象。该方式有点好处就是可以不使用引擎,在需要的时候操作数据。所以那些对数据库不是特别有要求的,但又需要一个操作数据库的方式的话,可以使用这种方法。对于那些不想额外在数据库引擎花费金钱的话,可以使用这种方法。但是不推荐使用该方法。记得Hibernate里SessionFactory可以使用openSession(Connecttion c)来获得一个Session对象的,因此,在测试或者实际应用的话都可以这样使用。
6、Memory-Only 数据库:顾名思义,主要是内存中使用,不用于保存数据。可以用于在内存中交换数据。
上面是关于hsqldb的一些基本信息的介绍,可以看到它的一些优势和特性。
我们可以把hsqldb内置在web程序中,除考虑Standalone模式外,最好是采用最为常用的Server模式。
那么Server模式如何和web程序合理搭配使用呢。
可以采用两种方式:
1)采用上面提到的方法,运行java -cp hsqldb.jar org.hsqldb.Server -database.0 db/mydb -dbname.0 xdb
来启动db,通过设置的URL:jdbc:hsqldb:hsql://localhost/xdb 以达到在程序中访问hsql数据库的
(注:设置URL等信息,可以通过hibernate来配置,例如:
hibernate.dialect org.hibernate.dialect.HSQLDialect
hibernate.connection.driver_class org.hsqldb.jdbcDriver
hibernate.connection.username sa
hibernate.connection.password
hibernate.connection.url jdbc:hsqldb:hsql://localhost/xdb )
2)为了省去第一种方法的琐碎,可以在启动web容器的过程中同时启动hsqldb。具体做法如下:编写一个有关hsql的Listener类,扩展javax.servlet.ServletContextListener,可以在配置文件中设置dbPath、dbName、port等等hsqldb的信息,启动hsqldb。
在web.xml中配置
<listener>
<listener-class>com.iplan.portal.framework.web.HsqlListener</listener-class>
</listener>
这样在启动web容器的时候,同时启动了hsqldb,关闭容器的时候同时也shutdown掉hsqldb。
还有一点说明的是:在单体或是结合测试的时候,可以采用Memory-Only
数据库,这样可以保证原有数据库中数据的完整性,这也是比较好的一个功能。
分享到:
相关推荐
HSQDB,全称HyperSQL Database,是一个完全开源的、用Java语言编写的轻量级关系数据库管理系统(RDBMS)。它以其高效、小巧和灵活的特性,广泛应用于嵌入式系统、开发测试以及作为服务器模式运行的数据库解决方案。...
HSQldb(HyperSQL Database)是一款高效、轻量级且开源的Java数据库管理系统,它在IT领域中被广泛应用于开发、测试以及小型应用环境。HSQldb完全用Java编写,因此具有良好的跨平台性,可以在任何支持Java的系统上...
本文将对五种常用的嵌入式开源数据库系统进行对比分析:Derby、H2、SQLite、HSQLDB以及Oracle Berkeley DB。 #### Apache Derby - **官方网站**:http://db.apache.org/derby/ - **简介**:Derby 是由 IBM 捐赠给 ...
HSQLDB(HyperSQL Database)是一个开源的关系型数据库管理系统,因其轻量级、高性能和易用性而受到广大开发者的欢迎。这个数据库引擎支持多种运行模式,包括单用户模式、内存模式、文件模式以及服务器模式,适用于...
开源数据库hsqldb最新版本2.5.0,含源代码及bin文件 Open-sourced database hsqldb2.5.0, including source code and bin file(stuctured in form of .BAT)
hsqldb是一款开源、轻量级、完全Java编写的数据库引擎,它支持嵌入式和服务器模式,非常适合用于小型项目或测试环境。在这个系统中,hsqldb被用作后台存储,存放员工信息、部门信息和公司信息。其优点在于快速启动、...
HSQLDB(HyperSQL Database)是一款轻量级、完全事务性的开源SQL数据库,支持内存模式和磁盘模式。它的优点在于简单易用,适合小型应用和测试环境。但其在处理大量并发和大数据量时可能性能受限。 2. **H2 ...
HyperSQL Database Engine,简称HSQLDB,是一款开源的、高性能的关系型数据库管理系统,由HSQL Development Group开发维护。该指南详细介绍了HSQLDB 2.0版本的使用方法,涵盖了运行环境配置、数据访问、SQL语言支持...
- **开源免费**:HSQLDB是Apache软件基金会的项目,其源代码开放,用户可以根据需求进行定制和扩展。 - **轻量级**:HSQLDB具有小巧的体积,对硬件资源需求低,适合于内存数据库和嵌入式环境。 - **高性能**:HSQLDB...
HSQldb是一个开源的、轻量级的、嵌入式的Java数据库引擎,常用于开发测试环境和小型应用程序。它的全称是HyperSQL Database,能够支持SQL标准,包括SQL:2011。HSQldb因其小巧、快速和易用的特点,在Java开发中尤其受...
HSQldb 是一个轻量级、嵌入式的、开源的关系型数据库系统,尤其适合用于Java应用程序中。在本文中,我们将深入探讨HSQldb的学习,包括数据库的创建、启动、配置以及管理工具和SQLTool的使用。 首先,获取HSQldb的...
HSQDB,全称HyperSQL Database,是一款完全用Java编写的开源、轻量级、高性能的关系型数据库管理系统,尤其适合于Java应用程序。HSQDB的设计目标是提供一个嵌入式的、独立于应用服务器的数据库解决方案,它可以在...
HSQLDB,全称为HyperSQL Database,是一款开源、轻量级、高性能的关系型数据库管理系统,广泛应用于嵌入式系统和测试环境。HSQLDB 1.8.0是该数据库引擎的一个重要版本,它在功能、稳定性和性能上都有显著提升,为...