3

我很高兴与 HSQLDB 一起使用我的数据库 URL,如下所示:

jdbc:hsqldb:file:target/testdb;

...并且拥有一切,就像我在任何其他网络数据库上一样。然后突然一个需求直接打在我的头上,我需要另一个 JVM 实例(在同一台机器上)连接到数据库以生成一些报告。

我已经阅读了有关 Derby 和 Berkeley DB 的信息,但似乎我需要设置一些环境变量,而我的客户要求我在没有任何特殊配置的情况下对这个系统进行编程(不应该创建任何环境变量)。

我考虑过有一个独立线程在服务器模式下并行启动 HSQL,但我宁愿使用另一个数据库引擎,它与 HSQLDB 一样简单,但支持文件模式并发访问。希望你们知道解决我问题的直接替代方案

4

3 回答 3

1

SQLite 可能是一个不错的选择。请参阅这个 SO 问题

但是,我认为在服务器模式下运行 HSQL 可能是最简单的选择。几年前我就这样使用它,发现它足够强大,可以进行基本的并发访问,您只需要更改现有代码中的 url。

于 2009-08-26T01:45:07.437 回答
1

与其拥有另一个数据库,不如在您的 in proc 数据库之间迁移和同步数据,您最好在单独的 JVM 中以服务器模式运行 HSQL。这是[编辑固定死链接]的方法

于 2009-08-26T01:48:08.807 回答
0

我建议您考虑一组可能的 JDBC 解决方案——具体来说,考虑允许程序共享数据访问的解决方案:

  1. 对同一文件的共享访问
  2. 到 DBMS 的单个套接字/连接
  3. 两个程序之间的消息传递

由于您希望开箱即用的 JDBC 支持(即您不想实现低于 JDBC 层的任何东西),我认为 #3 和 #1 已不在运行中。这给你留下了#2。

您是否有任何理由认为在单独的线程中启动 HSQL 会使您的 JDBC 调用变得不那么简单?HSQL 运行的位置不会影响访问它的接口。

于 2009-08-26T01:41:51.840 回答