HSQLDB的一些基本使用

1.HSQLDB数据库包含2-5个文件.例如,名为"test"的数据库会由下面的文件组成
     test.properties   常规设置(general settings)
     test.script   数据库表和其它数据库对象的定义,以及非缓存数据库表(non-cached tables)的数据
     test.log   对数据库最近的修改
     test.data   缓存数据库表(cached tables)的数据
     test.backup   最近已知的一致状态(last known consistent state)的数据文件的压缩备份
     test.lck   锁文件,记录数据库被打开的实情(fact)

当数据库没有缓存数据库表(cached tables)时,test.data和test.backup将不会被创建(will not be present).

 

2.数据库表类型
临时数据库表   和SQL标准中的GLOBAL TEMPORARY类型一致
持久数据库表   任何对数据库结构或数据内容的改变都会被写到<dbname>.script文件中
     1> MEMORY tables(默认类型)   加载全部数据到内存中
     2> CACHED tables   加载部分数据到内存中
     3> TEXT tables   支持格式化的文本文件

 

3.创建数据库表语法,默认为MEMORY类型:
CREATE [MEMORY|CACHED|TEXT] TABLE

可以直接在script中加入SQL标准语法,这样当数据库启动的时候,HSQLDB会自动读入script中的数据到内存中.

 

4.HSQLDB数据库有三种运行模式,分别是Server模式和In-Process(Standalone)模式和Memory-Only模式.

 

5.根据客户端和服务器通信的协议不同,Server模式可以分为以下三种:
     HSQLDB Server,使用HSQLDB私有的通信协议,启动命令是:
java -cp hsqldb.jar org.hsqldb.Server -database.0 file:simulateurDB -dbname.0 simulateur

     HSQLDB Web Server,使用http协议,启动命令是
     java -cp hsqldb.jar org.hsqldb.WebServer -database.0 file:simulateurDB -dbname.0 simulateur

     HSQLDB Servlet,使用http协议.当Tomcat等servlet引擎提供数据库的访问时,可以使用这种模式.

但它不能脱离Servlet引擎独立运行,并且只能提供一个数据库

 

6.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 / simulateur""sa""" );

 

7.在Ant中启动的HSQLDB写法:

<target name="runsql" description="run hsql">
        <java classpathref="libs" fork="true" classname="org.hsqldb.Server">
            <arg line="-database.0 file:simulateurDB -dbname.0 simulateur"/>
        </java>
</target>

 

8.启动HSQLDB的界面效果:

<path id="libs">
        <fileset dir="../libext">
            <include name="*.jar" />
        </fileset>
</path>


<target name="manager" description="show hsql">
        <java classpathref="libs" fork="true" classname="org.hsqldb.util.DatabaseManagerSwing">
            <arg value="-url"/>
            <arg value="jdbc:hsqldb:hsql://localhost/simulateur"/>
            <arg value="-driver"/>
            <arg value="org.hsqldb.jdbcDriver"/>
        </java>
</target>

  

 

9.In-Process模式是将数据库引擎与应用程序运行在同一个JVM中,主要的缺点是不能从你的应用程序外部连接数据库了.在1.8.0版本中, 你可以从同一个JVM的一个线程里面来运行一个服务器实例,从而可以提供外部连接来访问你的In-Process数据库.In-Process模式的数据 库是从JDBC语句启动的,把文件的路径作为URL的一部分.例如:
文件方式是Connection c = DriverManager.getConnection("jdbc:hsqldb:file:testdb", "sa", "");
内存方式是Connection c = DriverManager.getConnection("jdbc:hsqldb:mem:aname", "sa", "");

其中当以内存方式(Memory-only)运行时,通过在server.properties指定相同的url,可以在clients之间交换信息.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值