HSQLDB文件模式的快速切换替代方案(我现在需要并发访问)

时间:2009-08-26 00:31:30

标签: java hsqldb

我很高兴使用HSQLDB,只需拥有我的DB URL:

jdbc:hsqldb:file:target/testdb;

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

我已经阅读过有关Derby和Berkeley DB的内容,但似乎我需要设置一些env vars,而我的客户要求我对这个系统进行编程而不需要任何特殊配置(不应该创建env vars)。

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

3 个答案:

答案 0 :(得分:1)

SQLite可能是个不错的选择。见this SO question

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

答案 1 :(得分:1)

在内部数据库之间迁移和同步数据,而不是拥有另一个数据库,最好在单独的JVM中以服务器模式运行HSQL。 这是how to

答案 2 :(得分:0)

我建议您考虑一组可能的JDBC解决方案 - 特别是,考虑允许程序共享数据访问的解决方案:

  1. 对同一文件的共享访问
  2. 个人套接字/与DBMS的连接
  3. 两个程序之间传递的消息
  4. 由于您希望开箱即用JDBC支持(即您不希望实现低于JDBC层的任何内容),我认为#3和#1不在运行中。这让你失去了#2。

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