`

[转]HSQL 数据库引擎

阅读更多

HSQL 数据库引擎
开放源码的数据库引擎―HSQL是基于Thomas Mueller的Hypersonic SQL项目。它完全是由Java是编写的同时也是一种广泛用于嵌入式的数据库。它被包含在许多J2EE应用服务器中。在移动设备上,HSQL运行在PersonalJava和FP/PP平台上。HSQL是完全免费的。你能自由地将它重新部署到你的应用程序中,这对移动应用程序来说是容易的。
HSQL提供一个支持%95JDBC接口和所有JDBC数据类型的JDBC驱程。它支持事务,外键甚至Java存储过程。在HSQL中的表能寄存在内存中和保存在磁盘文件中。HSQL只有少于160-KB的存储器足迹footprint。它也为PersonalJava设备发布了一个数据库管理控制台(经过Sharp Zaurus上的测试)
然而,HSQL缺少一些商业移动数据库上所需的高级性能和安全功能。更重要的是,HSQL不能提供任何同步解决方案。它也缺少一个为MIDP设备的解决方案。 

一、简介: 
hsql数据库是一款纯Java编写的免费数据库,许可是BSD-style的协议。 
相对其他数据库来说,其体积小,才563kb。 
仅一个hsqldb.jar文件就包括了数据库引擎,数据库驱动,还有其他用户界面操作等内容。 
下载地址:http://hsqldb.org/ 

二、使用hsql数据库: 
1、hsql数据库引擎有几种服务器模式:常用的Server模式、WebServer模式、Servlet模式、Standlone模式、Memory-On­ly数据库。 


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的信息,启动h­sqldb。 
在web.xml中配置 



com.iplan.portal.framework.web.HsqlListener</listener-class&shy;> 
</listener> 
这样在启动web容器的时候,同时启动了hsqldb,关闭容器的时候同时也shutdown掉hsqldb。 


还有一点说明的是:在单体或是结合测试的时候,可以采用Memory-Only 
数据库,这样可以保证原有数据库中数据的完整性,这也是比较好的一个功能。
HSQL 数据库引擎

分享到:
评论

相关推荐

    hsql数据库详细教程.pdf

    hsql 数据库引擎有几种服务器模式: 1. Server 模式:这是最为常用的模式。使用java -cp hsqldb.jar org.hsqldb.Server -database.0 db/mydb -dbname.0 xdb 命令来创建数据库mydb,别名是xdb。 2. WebServer 模式:...

    hsql数据库详细教程

    它的特点是体积小巧,仅一个jar文件即可包含所有必需组件,如数据库引擎、驱动程序以及用户界面工具。HSQL支持SQL99和SQL2003标准,这使得它成为开发、演示或测试应用程序的理想选择。 ### 1. HSQL的主要运行模式 ...

    HSQL数据库下载

    HSQL数据库,全称为HyperSQL Database,是一款轻量级、高性能、完全开源的Java数据库管理系统。它被设计为一个嵌入式数据库,适用于各种应用程序,同时也支持客户端/服务器模式,可以作为独立的数据库服务器使用。...

    hsqldb 数据库 免安装

    hsql数据库是一款纯Java编写的免费数据库,许可是BSD-style的协议。 相对其他数据库来说,其体积小,才563kb。 仅一个hsqldb.jar文件就包括了数据库引擎,数据库驱动,还有其他用户界面操作等内容

    有关hsql处理文本数据库的笔记

    在命令行或通过Java API,你可以启动一个HSQL数据库引擎,并定义一个数据库模式。例如,你可以创建一个名为`cc`的模式来对应我们的`cc.csv`文件。 ```sql CREATE SCHEMA CC; USE CC; ``` 接下来,我们需要创建一个...

    JDBC-Datenbank-Hibernation-Buecherei:通过Hibernate框架使用Java访问HSQL数据库

    通过Hibernate框架使用Java访问HSQL数据库" 涉及的是Java编程中的数据库访问技术,主要关注Java Database Connectivity (JDBC) 和 Hibernate 框架的使用,以及如何与HSQL(一个轻量级的、内存或文件存储的SQL数据库...

    收集的全部HSQL DataBase资料(HSQL DataBase-关于Java 的纯数据库)

    1. **连接数据库**: 使用JDBC(Java Database Connectivity)接口建立与HSQL数据库的连接。通过`Class.forName()`加载驱动,然后使用`DriverManager.getConnection()`创建连接。 2. **创建表**: 通过SQL语句创建表,...

    HSQL ADO.Net Data Provider-开源

    本文将深入探讨一个完全用C#编写的开源项目——HSQL数据库引擎的ADO.NET数据提供程序。这个项目为开发者提供了一种与HSQL数据库进行交互的新途径,极大地丰富了.NET框架下的数据库操作工具。 HSQL数据库引擎,全称...

    Liferay_Portal数据持久

    #### 一、HSQl数据库 ##### 1.1 HSQl简介 HSQl (HyperSQL) 是一款完全使用 Java 编写的关系型数据库管理系统 (RDBMS),其设计初衷是为了提供一个轻量级、高性能、易于使用的数据库解决方案。HSQl 的最新版本在本文...

    HSQL源代码

    通过分析源码,我们可以掌握数据库引擎的实现机制,包括查询解析、执行计划生成、事务处理等核心环节。 在Eclipse中构建HSQLDB工程,我们需要先准备好必要的工具和库文件。这里列出的"ant-1.6.5.jar"是Apache Ant的...

    java开发操作数据库架包

    Java开发操作数据库的框架...通过理解JDBC、ORM框架的工作原理,以及选择合适的数据库引擎(如HSQL),可以极大地提升开发质量和效率。在实际项目中,应根据需求选择最合适的工具和策略,以实现最优的数据库解决方案。

    JDBC驱动包(SQLSERVER ORACLE MYSQL HSQL)

    HSQL(HyperSQL)是一种轻量级、高性能的纯Java关系型数据库引擎,适合于小型到中型的应用。HSQL提供了完全的SQL标准支持,包括事务处理和并发控制。HSQL JDBC驱动使得Java应用程序能够方便地与HSQL数据库进行交互。...

    hibernate中所有数据库方言

    - **HSQL Dialect**:用于Hypersonic SQL(HSQLDB)数据库,一个轻量级的开源数据库。 #### H2 Database - **H2 Dialect**:针对H2数据库系统,这是一个内存数据库,也支持磁盘存储。 #### Ingres - **Ingres ...

    SpringBoot集成MyBatis-Plus实现国产数据库适配.docx

    * 分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库 * 内置性能分析插件:可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢...

    hsqldb管理工具

    `hsqldb.jar`是HSQldb的核心库文件,包含了HSQldb数据库引擎的所有Java类和资源。在运行HSQldb管理工具或其他需要与HSQldb交互的应用程序时,这个JAR文件是必需的依赖项。 `使用更新说明.txt`可能包含有关如何使用...

    Hsqldb.jar

    《深入理解Hsqljdbc.jar:Java与HSQL数据库交互的关键》 在Java编程领域,数据库的使用是不可或缺的一部分。HSQLDB(HyperSQL Database)是一个轻量级、高性能的SQL关系型数据库,它完全用Java编写,适用于各种环境...

    SharpHsql 源代码中文注释版

    《SharpHsql源代码中文注释版》是一个针对SharpHsql数据库引擎的特别版本,它在原始的SharpHsql 0.3.3版本基础上进行了深入的本地化工作,为开发者提供了更友好的中文注释,以帮助理解并学习这个开源数据库系统的...

    报表性能优化方案之行引擎执行层式报表

    - 行引擎报表对于数据库的选择也有要求,目前主要支持Oracle、MySQL、HSQL以及SQL Server 2008及以上版本,对于其他数据库则需要手动编写分页SQL语句。 在具体实现上,使用FineReport报表开发工具,可以通过以下...

Global site tag (gtag.js) - Google Analytics