web-dev-qa-db-ja.com

埋め込みh2プログラムが.mv.dbファイルに書き込むのはなぜですか

H2データベースWebサイトのクイックスタートガイドに従って、新しいデータベーステーブルを作成し、データを挿入しました。アプリケーションはスムーズに実行され、問題なくデータベースを読み書きできます。

クイックスタートh2

  • H2 * .jarをクラスパスに追加します(H2には依存関係がありません)
  • JDBCドライバークラスorg.h2.Driverを使用します。
  • データベースURL jdbc:h2:〜/ testは、ユーザーのホームディレクトリにあるデータベースtestを開きます
  • 新しいデータベースが自動的に作成されます

今、Webフロントエンドh2コンソールでデータを見たいのですが、データベースを開こうとするたびに新しいデータベースが作成されます。

長い検索の後、h2埋め込みバージョンを使用するJava-Appが ".mv.db"というファイルに書き込みを行い、Webフロントエンドがファイル ".h2.db"(これを作成する私にとってははるかに理にかなっています)

[。
埋め込みデータベースに「.h2.db」拡張子を使用するにはどうすればよいですか?

38
FelixZett

これは、バージョン1.4.177 Beta(2014-04-12)以降、自動的に有効になりました。

データベースURLに;MV_STORE=FALSEおよび;MVCC=FALSEを追加することで無効にできます

デフォルトでは、MV_STOREオプションは有効になっているため、新しいMVStoreストレージを使用しています。 MVCC設定は、デフォルトでMV_STORE設定と同じ値に設定されているため、デフォルトで有効になっています。テストでは、データベースURLに「; MV_STORE = FALSE」または「; MVCC = FALSE」を追加することで、両方の設定を無効にできます。

http://www.h2database.com/html/changelog.html

使用しているH2の正確なバージョンを教えてください。

47
Daniel Ruf

。mv.db-ファイルは、H2用の今後の/ベータストレージタイプ「MVStore」用です。

これは http://www.h2database.com/html/changelog.html からのものです。

内部でMVStoreを使用してデータを永続化する新しいテーブルエンジン「org.h2.mvstore.db.MVTableEngine」。試してみるには、データベースURLに「; DEFAULT_TABLE_ENGINE = org.h2.mvstore.db.MVTableEngine」を追加します。これはまだ非常に実験的であり、多くの機能はまだサポートされていません。データは、サフィックス。mv.dbが付いたファイルに保存されます。

11
Martin Wickman