注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

和申的个人主页

专注于java开发,1985wanggang

 
 
 

日志

 
 

HSQLDB - 100%纯Java开发的开放源代码的关系数据库管理系统  

2010-04-13 20:23:37|  分类: 项目开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

HSQLDB是一个HSQLDB建立于Hypersonic SQL Project基础之上,轻量级的100%纯Java开发的开放源代码的关系数据库管理系统。

HSQLDB提供了包含一个JDBC驱动,支持ANSI-92 SQL,SQL 99与2003标准语法。
HSQLDB同时提供一个非常小巧(小于100K)快速的数据库引擎。
HSQLDB提供了基于内存或磁盘方式的表存储方法,支持嵌入式或服务器运行模式。
另外,HSQLDB还提供了一系列工具例如:一个轻量的WEB服务器,基于内存的查询和管理工具等。


HSQLDB主要特点:

- 小巧轻量
- 能完全基于内存的运行方式
- 柔软性
- 高速
- 免费,开放源代码

HSQLDB发布于BSD License风格。

HSQLDB官方首页:
HSQLDB - 100纯Java开发的开放源代码的关系数据库管理系统 - 和申 - 和申的个人主页http://hsqldb.org/

HSQLDB的运行需要Java环境的支持。有关Java环境的安装设置请参考:
HSQLDB - 100纯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/下载。本文执笔阶段HSQLDB的最新稳定版本是:1.8.0.7。
下文以Windows环境为例,介绍怎么样安装HSQLDB。Linux环境除了目录与命令不一样之外,其余基本一样。
下载完成之后,把下载的ZIP文件解压缩至任意目录例如c:\hsqldb便完成安装。

HSQLDB服务器模式的启动方法

因为In-Process模式以及Memory-Only模式可以无需另外启动HSQLDB,下面介绍服务器模式的启动方法。
假设我们需要创建/启动一个名为mydb的数据库。
为了操作方便等,我们在c:\hsqldb目录下创建mydb目录。
1,创建runMydb.bat文件,文件内容为:

 
  1. java -cp ..\lib\hsqldb.jar org.hsqldb.Server -database mydb  
 java -cp ..\lib\hsqldb.jar org.hsqldb.Server -database mydb



  1. java -cp ../lib/hsqldb.jar org.hsqldb.Server -database.0 mydb -dbname.0 mydb  
java -cp ../lib/hsqldb.jar org.hsqldb.Server -database.0 mydb -dbname.0 mydb


启动runMydb.bat命令即可

2,创建manageMydb.bat文件,内容:

 
  1. java -cp ..\lib\hsqldb.jar org.hsqldb.util.DatabaseManager -url jdbc:hsqldb:hsql://localhost/mydb  
 java -cp ..\lib\hsqldb.jar org.hsqldb.util.DatabaseManager -url jdbc:hsqldb:hsql://localhost/mydb  


启动manageMydb.bat,即可启动HSQLDB的图形界面管理工具

Hsqldb 的主要工具类:
HSQLDB - 100纯Java开发的开放源代码的关系数据库管理系统 - 和申 - 和申的个人主页org.hsqldb.util.DatabaseManager
HSQLDB - 100纯Java开发的开放源代码的关系数据库管理系统 - 和申 - 和申的个人主页org.hsqldb.util.DatabaseManagerSwing
HSQLDB - 100纯Java开发的开放源代码的关系数据库管理系统 - 和申 - 和申的个人主页org.hsqldb.util.Transfer
HSQLDB - 100纯Java开发的开放源代码的关系数据库管理系统 - 和申 - 和申的个人主页org.hsqldb.util.QueryTool
HSQLDB - 100纯Java开发的开放源代码的关系数据库管理系统 - 和申 - 和申的个人主页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数据库的连接

使用例:

  1.     try {   
  2.         Class.forName("org.hsqldb.jdbcDriver" );   
  3.     } catch (Exception e) {   
  4.         System.out.println("ERROR: failed to load HSQLDB JDBC driver.");   
  5.         e.printStackTrace();   
  6.         return;   
  7.     }   
  8.   
  9.     Connection c = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/mydb""sa""");  
    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", "");


其中,jdbc:hsqldb:hsql://localhost/xdb需要替换为合适的jdbc-url。
有关JDBC-URL的详细描述请参考HSQLDB的四种运行模式

在Hibernate里使用HSQLDB

著名的ORM工具Hibernate也提供了对HSQLDB数据库的支持。需要在Hibernage里使用HSQLDB,只需在hibernate.cfg.xml里加入类似如下设置:

  1. <hibernate-configuration>   
  2.     <session-factory>   
  3. ...   
  4.         <property name="connection.driver_class">org.hsqldb.jdbcDriver</property>   
  5.            
  6.         <property name="connection.url">jdbc:hsqldb:hsql://localhost/mydb</property>   
  7.         <property name="connection.username">sa</property>   
  8.         <property name="connection.password"></property>   
  9.            
  10.         <property name="dialect">org.hibernate.dialect.HSQLDialect</property>   
  11. ...   
  12.     </session-factory>   
  13. </hibernate-configuration>  
<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>  


其余就跟其他数据库的用法一样了,这里不再详述。

 

摘自:http://www.lifevv.com/database/doc/20071023184619861.html

  评论这张
 
阅读(1036)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016