配制HSQLDB数据库

    技术2022-05-11  27

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

        从HSQLDB主页上下载HSQLDB:

        http://hsqldb.org/

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

    .;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;D:/hsqldb/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:d:/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.properties][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 sucessfully 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>

    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1665004 


    最新回复(0)