我很高兴使用HSQLDB,只需拥有我的DB URL:
jdbc:hsqldb:file:target/testdb;
...并且如果我在任何其他网络数据库上那么一切。然后突然有一个要求直接打击我,我需要另一个JVM实例(在同一台机器上)连接到数据库以生成一些报告。
我已经阅读过有关Derby和Berkeley DB的内容,但似乎我需要设置一些env vars,而我的客户要求我对这个系统进行编程而不需要任何特殊配置(不应该创建env vars)。
我想过有一个独立的线程可以在服务器模式下并行启动HSQL,但我更喜欢使用另一个数据库引擎,它与HSQLDB一样简单但具有文件模式并发访问支持。希望你们知道解决问题的直接替代方案
答案 0 :(得分:1)
SQLite可能是个不错的选择。见this SO question。
但是,我认为在服务器模式下运行HSQL可能是最简单的选择。我在几年前以这种方式使用它,并发现它足够强大,可以进行基本的并发访问,而且您只需要在现有代码中更改您的URL。
答案 1 :(得分:1)
在内部数据库之间迁移和同步数据,而不是拥有另一个数据库,最好在单独的JVM中以服务器模式运行HSQL。 这是how to
答案 2 :(得分:0)
我建议您考虑一组可能的JDBC解决方案 - 特别是,考虑允许程序共享数据访问的解决方案:
由于您希望开箱即用JDBC支持(即您不希望实现低于JDBC层的任何内容),我认为#3和#1不在运行中。这让你失去了#2。
您是否认为在单独的线程中启动HSQL会使JDBC调用变得不那么简单? HSQL运行的地方不会影响访问它的接口。