最近想写一个BS模式开发的小型工具,要能在物理硬盘上存储数据,又要轻便,不要动不动就装个ORACLE这么大的软件,希望足够的便携,考下就用,考虑了几个可用方案。
1、Access的MDB文件
优点:非常非常的轻便,并且能把ORACLE等主流数据库中数据自动转成MDB
缺点:(1)MDB文件不是标准的数据库文件,使用Access软件查看数据的时候无法用SQL检索记录。
(2)MDB文件一般用ODBC访问,ODBC驱动存在很多BUG,并且要求操作系统只能是WINDOWS,并且要配置合适的数据源。MDB的JDBC驱动很难找,我只找到了一个收费的。
2、Derby(JAVADB)
优点:轻便,使用JDBC驱动访问。
缺点:只能使用服务模式启动,意味着每次启动应用时候还要启动一下数据库服务,违背了小工具一次启动即运行的原则。
3、HSQLDB
这是个理想的软件,HSQLDB支持4种模式
(1)内存模式:所有数据都存放到内存中,非常适合用作系统缓存或者数据库访问层的单元测试工具。
(2)进程模式:只能一个进程访问,不需要启动服务器,应用通过数据库文件物理地址访问,这正是我所需要的。
(3)服务模式:启动服务,应用通过服务IP地址和服务名访问,想想不出有什么用,如果真要单独启动服务,又何惧安一个大点的数据库呢?
(4)WEB服务模式:服务走HTTP的80端口,能够突破防火墙。
HSQLDB下载地址:http://sourceforge.net/projects/hsqldb/
开启服务命令:java -cp ../hsqldb.jar org.hsqldb.Server -database db
创建数据库、表等:用java -cp ../hsqldb.jar org.hsqldb.util.DatabaseManager开启控制台创建
创建好的文件是db.properties(基本参数)和db.script(数据库文件,以SQL形似存储)
访问URL是:jdbc:hsqldb:(db文件具体地址)