1.介绍
选用HSQLDB(http://www.hsqldb.org/) 因为
支持嵌套查询在内的绝大部分SQL标准;
支持Indentity主键;
支持分页:SELECT TOP 5 FROM .., SELECT LIMIT 0 10 FROM ...;
体积小,速度快,无需用户安装的嵌入式数据库方便DEMO;
数据库文件为直接的script文件便于管理,能够编码控制开停。
2.三种模式
2.1 Server模式
最常用的模式,双击/misc/db/server.bat打开服务
"%JAVA_HOME%/bin/java" -classpath hsqldb.jar org.hsqldb.Server -database.0 bookstore -dbname.0 bookstore
根据server.properties的内容,server.port=9002 (因为有些项目也使用hsqldb,默认端口为9001,因此springside改为使用9002端口。)
按照命令行参数 -database.0 bookstore,将执行同名的bookstore.script初始化数据库
连接URL为:
jdbc:hsqldb:hsql://localhost:9002/bookstore
如有多个数据库,则继续写命令行参数-database.1,-dbname.1
在springsdie的server.bat 中,HSQLDB的实际运行目录被定位到 %HOME%/springside/db/, 如 C:/Document and Setting/Administrator/springside/db/
2.2 In-Process模式
In-Process 进程内模式因为不用网络连接,可以获得更高的速度。而且不需要用户手工启动数据库。
缺点是不可以用DB 工具 察看数据库的当前情况。
因此开发时还是推荐使用Server模式。
In-Process的使用方式是不用起服务,直接用JDBC Driver连接URL:
jdbc:hsqldb:file:bookstore
如果db file不在当前目录,可以写为
jdbc:hsqldb:file:/opt/db/testdb
2.3 内存中数据库
该模式既不会读取script文件初始化数据库,一切改动也不会存盘。
3.数据查询与管理工具
双击manager.bat,可进行管理。 jdbc连接路径见上,默认用户名sa, 密码为空。
也可以使用其他任意的基于JDBC的数据库管理工具。
4.Server模式随WebApp一起启动
已实现相关listener,见web.xml 和 /src/main/org/springside/bookstore/web/HsqlListener.java。
5.数据文件与数据存盘
HSQLDB的数据文件为一个文本的sql文件,非常方便直接操控。
如果要数据库彻底存盘到script文件,执行sql 命令 ShutDown。
为了避免大家的数据文件相互冲突, springside项目里的booksotre.script, bookstore.properties文件并不保存在cvs中。
取而代之保存在cvs中的是/resources/default-data.script和/resources/default-db.properties文件。
在server.bat中,如果发现目录里没有bookstore.script文件,就会把default-data.script 复制为 bookstore.script。