3

次のようなDB URLを持つだけで、HSQLDBを喜んで使用していました。

jdbc:hsqldb:file:target/testdb;

...そして、私が他のネットワークデータベースにいるかのようにすべてを持っています。その後、突然、1 つの要件に頭を悩ませました。データベースに接続してレポートを生成するには、別の JVM インスタンス (同じマシン内) が必要です。

Derby と Berkeley DB について読んだことがありますが、いくつかの環境変数を設定する必要があるようで、顧客から、特別な構成なしでこのシステムをプログラミングするように求められました (環境変数を作成する必要はありません)。

サーバーモードでHSQLを並行して開始する独立したスレッドを持つことを考えましたが、HSQLDBと同じくらい単純でファイルモードの同時アクセスをサポートする別のDBエンジンを使用したいと思います。私の問題を解決するための簡単な代替案について皆さんが知っていることを願っています

4

3 に答える 3

1

SQLite は良い選択肢かもしれません。このSOの質問を参照してください。

ただし、HSQL をサーバー モードで実行するのがおそらく最も簡単なオプションだと思います。何年も前にそのように使用しましたが、基本的な同時アクセスに十分な堅牢性があることがわかりました。既存のコードで URL を変更するだけで済みます。

于 2009-08-26T01:45:07.437 に答える
1

別のデータベースを用意して、インプロセス データベース間でデータを移行および同期するよりも、別の JVM でサーバー モードで HSQL を実行したほうがよいでしょう。[編集:デッドリンクを修正]の方法は次のとおりです

于 2009-08-26T01:48:08.807 に答える
0

可能な JDBC ソリューションのセットを検討することをお勧めします。具体的には、プログラムがデータへのアクセスを共有できるようにするソリューションを検討してください。

  1. 同じファイルへの共有アクセス
  2. DBMS への個々のソケット/接続
  3. 2 つのプログラム間のメッセージの受け渡し

すぐに使える JDBC サポートが必要なため (つまり、JDBC レイヤーよりも下位のものを実装したくない)、#3 と #1 は実行されていないと思います。残りは#2です。

別のスレッドで HSQL を開始すると JDBC 呼び出しが単純ではなくなると考える理由はありますか? HSQL が実行される場所は、それにアクセスするためのインターフェイスには影響しません。

于 2009-08-26T01:41:51.840 に答える