欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-25 23:05:52
...

<!--StartFragment -->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

 

首先出现的是登录窗口:

 

 

配置HSQLDB数据库[服务器模式]
            
    
    博客分类: 数据库 HSQLDB配置管理SQL ServerHibernateEclipse 

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

配置HSQLDB数据库[服务器模式]
            
    
    博客分类: 数据库 HSQLDB配置管理SQL ServerHibernateEclipse 

 

 

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

 

 

配置HSQLDB数据库[服务器模式]
            
    
    博客分类: 数据库 HSQLDB配置管理SQL ServerHibernateEclipse 

可以在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>