这些天写东西都是用hsqldb的,对于它也只是有一些小的了解。先看看别人怎么说他的几种运行模式,括号内是我的注明。
驻留内存模式
所有数据库表和索引都放在内存中,而且永远不会保存到磁盘上。在您发出为什么有人想要使用在应用程序终止时就会丢失的数据库这样的疑问之前,请先考虑为您可以使用标准 SQL 语句进行查询、排序、分组和更新的数据库数据拥有一块本地高速缓存。
单机模式
应用程序使用 JDBC 创建一个数据库连接,并且 HSQLDB 引擎运行在该应用程序中,这时允许直接访问数据库文件。不能存在并发用户(应用程序独占地访问数据库文件),但因此也没有额外的线程和 TCP 连接开销。单机模式是许多嵌入式应用程序的首选模式。(一般而言,我们自己写点小程序就用这个模式就行了,在HSQLDB_HOME/demo中有一个 vrunManagerSwing.bat可以启动一个图形管理界面,上面可以选择用哪一种模式的。这个时候的连接字符窜类似 conn=DriverManager.getConnection("jdbc:hsqldb:file:D:\\Program Files\\hsqldb\\data\\mem", "sa", "");也就是file:后面接上一个实际的数据库文件的名字就可以了。不过我试过,这个file:要不要好像都行)
服务器模式
这是类似于其他关系数据库的标准客户机/服务器数据库配置,允许出现使用 TCP 套接字的并发连接。大部分开发人员喜欢这种模式,因为它允许任何 JDBC 客户机在主应用程序仍在运行的情况下连接并查询/更新表。(这个时候连接字符串类似jdbc:hsqldb:hsql://hsqldbsrv,其中 hsqldbsrv是机器名称,如果是本机用localhost就可以了,如果是别的机器,而且该机器运行多个服务,可能还要指定端口 如:jdbc:hsqldb:hsql://hsqldbsrv:9002)
Web服务器模式
HSQLDB 可以用作 Web 服务器,可以通过 HTTP 接受 SQL 查询;也能作为任何标准 Web 容器中的 servlet 来运行,可以穿过防火墙或者安装在 Web 宿主服务上,而不用涉及到提供者支持小组(和昂贵的数据库宿主选项)。由于 HTTP 是无状态的,所以本模式中不存在事务。 (这个时候连接字符串就是jdbc:hsqldb:http://websrv,相应改变类似服务器模式)