配置HSQLDB数据库[服务器模式]

来源:互联网 发布:诺言软件 编辑:程序博客网 时间:2024/05/01 05:08

 HSQLDB是一个开放源代码的JAVA数据库,具有标准的SQL语法和JAVA接口。HSQLDB可以自由使用和分发,具有内存数据库,独立数据库和客户-服务器三种数据库模式。本文介绍客户-服务器模式的配置。

 

从HSQLDB主页上下载HSQLDB:

http://hsqldb.org/

 

把下载的压缩文件解开,然后在系统环境变量中加入hsqldb.jar,如:

 

D:/work/eclipse/hibe/data>echo %classpath%
.;c:/java/lib/tools.jar;%JAVA_HOME/lib/dt.jar;D:/work/eclipse/hibe/WebRoot/WEB-INF/lib/hsqldb.jar;

 

 

在硬盘中任意位置建一个目录作为HSQLDB数据库的主目录,然后打开命令行,进入该目录。在里面建一个server.properties文件,这是HSQLDB服务器模式的配置文件。可以在里面设置数据库服务的监听端口、服务名称、数据文件的相对和绝对路径:

 

#begin of 'server.properties' file

#数据库服务的监听端口
server.port=9001

#定义服务名称,也即数据库名称。数据库链接的URL即为

#jdbc:hsqldb:hsql://localhost:9001/bitan。
server.dbname.0=bitan

#该服务在硬盘上的相对或绝对路径。file:后面可以跟相#对或绝对路径,如file:bitan表示数据文件为当前目录下的bitan.*文件。服务名和路径之间通过小数点后的数字关联。比如database.0与#dbname.0关联,database.1与dbname.1关联,……,database.n与dbname.n关联。
server.database.0=file:bitan
#mounts a 'file_in_jar' database with alias 'restest'
#database connection url would be 'jdbc:hsqldb:hsql://host:1234/restest'
#server.database.1=res:/mypackage/test
#server.dbname.1=restest
#mounts a 100% in-memory (transient) database with alias 'memtest'
#database connection url would be 'jdbc:hsqldb:hsql://host:1234/memtest'
#server.database.2=mem:test
#server.dbname.2=memtest
#...
#server.database.n=...
#server.dbname.n=...
server.silent=true

#end of 'server.properties' file

 

进入上面设置的主目录,启动HSQLDB服务器:HSQLDB会在当前目录下寻找server.properties文件,如果没有发现该文件就使用默认设置。

 

D:/work/eclipse/hibe/data>java org.hsqldb.Server
[Server@1034bb5]: [Thread[main,5,main]]: checkRunning(false) entered
[Server@1034bb5]: [Thread[main,5,main]]: checkRunning(false) exited
[Server@1034bb5]: Startup sequence initiated from main() method
[Server@1034bb5]: Loaded properties from [D:/work/eclipse/hibe/data/server.prope
rties]
[Server@1034bb5]: Initiating startup sequence...
[Server@1034bb5]: Server socket opened successfully in 78 ms.
[Server@1034bb5]: Database [index=0, id=0, db=file:bitan, alias=bitan] opened su
cessfully in 1000 ms.
[Server@1034bb5]: Startup sequence completed in 1093 ms.
[Server@1034bb5]: 2005-11-03 11:30:47.046 HSQLDB server 1.8.0 is online
[Server@1034bb5]: To close normally, connect and execute SHUTDOWN SQL
[Server@1034bb5]: From command line, use [Ctrl]+[C] to abort abruptly

 

 

另外开一个命令行窗口,启动HSQLDB的管理工具,这是GUI外观的程序:

 

D:/work/eclipse/hibe/data>java org.hsqldb.util.DatabaseManager

 

首先出现的是登录窗口:

 

 

在“setting name”中填入“bitan”,下次启动管理工具时,该字串就会出现在“recent”下拉框中。点击“clr”按钮可以清除该字串。在“type”中选择HSQL Database Engine Server,然后在“URL”中输入上面server.properties中的设置。

 

 

点“OK”登录以后,会出现下面的窗口,左边是目录窗口,右边是SQL查询窗口。我们可以在SQL查询窗口中键入任意SQL语句(包括DDL,DML等等),然后点击“Execute”执行该语句。HSQLDB安装文件的doc目录里附带了PDF和HTML格式的文档,介绍了HSQLDB的SQL语法、支持的数据类型、内置函数等等。

 

 

可以在SQL窗口里创建新表:

 

create table events

(event_id integer identity not null,

event_date date,

title varchar(500))

(ID的自动插入方式上,HSQLDB支持identity,如sql server;也支持序列+触发器,如Oracle。)

 

可以插入记录:

 

insert into events (event_id, event_date, title)

values (null, curdate(), 'bitan')

 

(curdate()是HSQLDB内置函数,返回当前日期)

 

启动了HSQLDB服务器,我们就可以在java程序中以JDBC方式访问数据库了。hsqldb.jar中内置了JDBC驱动程序。

如下例,这是hibernate中的配置文件Hibernate.cfg.xml:

 

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
   
<hibernate-configuration>
    <session-factory>
        <property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
        <property name="connection.url">jdbc:hsqldb:hsql://jim:9001/bitan</property>
        <property name="connection.username">sa</property>
        <property name="connection.password"></property>
       
        <property name="connection.pool_size">1</property>
       
        <property name="dialect">org.hibernate.dialect.HSQLDialect</property>
       
        <property name="show_sql">true</property>
       
        <!-- property name="hbm2ddl.auto">update</property-->
       
        <mapping resource="hbm/Event.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

原创粉丝点击