Dashboard > SpringSide Wiki > ... > Utils Tools > HSQLDB
  SpringSide Wiki Log In | Sign Up   View a printable version of the current page.  
  HSQLDB
Added by SpringSideTeam, last edited by Calvin on 2006-11-15  (view change)
Labels: 

1. 概述 

选用HSQLDB(http://www.hsqldb.org/) 因为:

  • 支持嵌套查询在内的绝大部分SQL标准;
  • 支持Indentity自动生成主键;
  • 支持分页:SELECT TOP 5 FROM .., SELECT LIMIT 0 10 FROM ...;
  • 嵌入式打开,不用启动数据库实例,方便测试和演示;
  • 数据库文件为直接的sql script文件便于管理。

2. 3.5种打开方式

  •  传统Server方式打开
     双击server.bat 启动,JDBC URL为
     
    jdbc:hsqldb:hsql://localhost:9002/bookstore

     数据库名可以在server.bat中设定,"%JAVA_HOME%/bin/java" -classpath hsqldb.jar org.hsqldb.Server -database.0 bookstore -dbname.0 bookstore
     按照命令行参数 -database.0 bookstore,将执行同名的bookstore.script初始化数据库, 如有多个数据库,则继续写命令行参数-database.1,-dbname.1
     端口号在server.properties中设定

  • 嵌入式In-Process打开
    In-Process方式不用启动Server,直接设定JDBC URL即可,非常方便。但有一个缺点是只能在Java进程内共享信息,如果另外打开一个管理器,是没办法看到In-Process时的状态
    jdbc:hsqldb:file:C:\springside2\examples\helloworld\resources\hsqldb\bookstore

    其中路径是script文件不带后缀名的全路径,可以绝对路径,也可以是打开应用的相对路径。

  • 另外有一种读取jar/classpath中的script文件的In-Process方式,方便发布war时不知道具体路径的情况。不过这种方式是只读不存盘的,利用来单元测试也不错。下面的设置将读取classpath根目录下的bookstore.script
    jdbc:hsqldb:res:/hsqldb/bookstore
  • Memory方式打开
    与In-Process方式最大区别是不能读取Script文件进行初始化。
    jdbc:hsqldb:mem:.

     3. SpringSide 2.0 中的应用

       为了方便起见,SpringSide2.0在运行时使用了HSQLDB InProcess 读取Classpath 中Script文件的方式,jdbc url为

jdbc:hsqldb:res:/hsqldb/helloworld

  这种方式不用启动数据库,能直接读取classpath中的文件,而不用头痛文件部署后的绝对路径。 而且只读的方式,只要重启Tomcat就能把数据还原。

     而在管理数据结构时,可采用In-Process File的方式,在manager.bat里用jdbc url为

jdbc:hsqldb:file:C:\springside2\examples\helloworld\resources\hsqldb\helloworld

     script 文件放在example 如helloworld的resource 根目录, 而manager.bat 放在components/embeddb/hsqldb/bin 中。

Site powered by a free Open Source Project / Non-profit License (more) of Confluence - the Enterprise wiki.
Learn more or evaluate Confluence for your organisation.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.2.9 Build:#527 2006-09-07) - Bug/feature request - Contact Administrators