102

私は自分の財政を管理するための小さな (Java) アプリケーションを開発するつもりです。組み込みデータベースを使用する必要があると思いますが、この問題に関する経験はありません。入手可能な製品をいくつか見てみましたが、どれが自分に適しているか判断できません。H2HSQLDBDerby、およびBerkeley DBは良い候補のようですが、それらが互いにどのように比較されるかはまだわかりません。それらを比較して、どちらを使用するかを決定するのを手伝ってくれてありがとう。

アプリケーションに Hibernate を使用する予定ですが (DBMS 提供の API の使用を推奨しない場合)、SQL ブラウジング ツール (スキーマの変更とデータの変更) を使用してデータベースを簡単に編集できるようにしたいと考えています。

ありがとうございました。

4

18 に答える 18

61

また

  • HSQLDB - OpenOffice で使用され、テスト済みで安定しています。使い方は簡単です。db-data を編集したい場合は、ファイルを開いて挿入ステートメントを編集するだけです。

また

  • H2 - より高速であると言われています (hsqldb を最初に設計した開発者による)

必要なパフォーマンスと安定性に応じて、どちらを使用するかはあなた次第です。

H2 の開発者は、すばらしいパフォーマンス評価を行っています:
http://www.h2database.com/html/performance.html

于 2009-01-20T22:12:47.680 に答える
35

私は組み込みデータベースのほとんどすべてのニーズにApache Derbyを使用しています。Derby に基づく Sun の Java DB を使用することもできますが、Derby の最新バージョンははるかに新しいものです。商用のネイティブ データベースがサポートする多くのオプションをサポートしますが、はるかに小さく、組み込みが簡単です。問題のない 100 万件を超えるレコードを含むいくつかのデータベース テーブルがありました。

私は約 3 年前に HSQLDB と Hypersonic を使用していました。当時、いくつかの重大なパフォーマンスの問題があり、それらの問題のために Derby に切り替えました。Derby は、Apache のインキュベーターにあったときでさえ堅実でした。

于 2008-09-11T19:03:59.330 に答える
31

プロジェクトの 1 つで Java 組み込みデータベースを使用する必要があり、各データベースの長所と短所を理解するために多くの調査を行いました。一般的な組み込み Java データベース (H2、HSQLDB、Derby、ObjectDB、Neo4j、OrientDB) の長所と短所をリストしたブログを書きました。H2 が自分の要件に最も適していると考えたので、H2 を選択しました。ブログへのリンク : http://sayrohan.blogspot.in/2012/12/choosing-light-weight-java-database.html

于 2013-02-03T22:57:52.307 に答える
14

HSQLDBは​​良い候補です(OpenOfficeで使用されているという事実は、一部の人を納得させるかもしれません)が、このような小さな個人用アプリケーションの場合は、(従来のリレーショナルデータベースの代わりに)オブジェクトデータベースを使用してみませんか?

私は自分のプロジェクトの1つでDB4Oを使用しましたが、非常に満足しています。オブジェクト指向であるため、Hibernateレイヤー全体を必要とせず、オブジェクトを直接挿入/更新/削除/クエリできます。さらに、スキーマについて心配する必要はありません。オブジェクトを直接操作し、残りはDB4Oが行います。

この新しいタイプのデータベースに慣れるまでに時間がかかる場合があることに同意しますが、DB40チュートリアルをチェックして、DBでの作業がいかに簡単かを確認してください。

編集:コメントで述べたように、DB4Oはクラスの新しいバージョンを自動的に処理します。さらに、アプリケーションの外部でデータベースを参照および更新するためのツールは、http ://code.google.com/p/db4o-om/から入手できます。

于 2009-01-20T20:49:55.803 に答える
12

Java DB (Sun の Apache Derby のディストリビューション)がJDK 6 で出荷されるようになりました!

私は Jason Cohen のようなことをしたいと思っていて、これが JDK ディストリビューションにいる最も簡単な方法のように見えると考えていました (先週の私のアプリの要件になりました)。それとも、私はそのように怠け者なのかもしれません。

于 2008-09-11T17:33:14.463 に答える
7

neo4jは:

表ではなくグラフで構造化されたデータを格納する、埋め込まれたディスクベースの完全にトランザクション的なJava永続化エンジン

まだ試す機会はありませんが、とても有望に見えます。これはSQLデータベースではないことに注意してください-オブジェクトグラフは永続化されます-したがって、既存のアプリには適さない可能性があります。

于 2008-09-12T11:03:14.720 に答える
7

アプリケーションの「構成なし」オプションとして、本番環境で HSQLDB を使用します。実際のデータベースをセットアップする手間をかけずに試用できます。

ただし、通常の使用についてはサポートしていません。理由はいくつかあります。

  1. データのサイズに比例して遅くなります。
  2. アプリの外からアクセスするのが難しい (カスタム レポートなど)。
  3. トランザクション / ディスク同期を正しく行うのは難しいため、データを失いやすいです。

少なくとも (2) と (3) については、回避する方法はありますが難しいです。たとえば、MySQL をインストールする方がはるかに簡単です。

于 2008-09-11T17:26:52.853 に答える
6

優れた比較ツールは、http ://www.jpab.org/All/All/All.html にあります。

Head to Head DBMS/JPA の比較にも注意してください。

于 2013-11-13T22:16:10.157 に答える
5

ほとんどのことはすでに述べられていますが、HSQL、Derby、および Berkely DB を私のお気に入りのプロジェクトのいくつかで使用したことがあり、それらはすべて問題なく機能したことを付け加えておきます。ですから、正直に言うことはあまり重要ではないと思います。言及する価値のあることの 1 つは、HSQL は非常に優れた SQL ステートメントを含むテキスト ファイルとして自身を保存することです。開発中は、テストを実行してデータをすばやくセットアップすることが非常に簡単になります。必要に応じてクイック編集も行うことができます。同様に変更する必要がある場合は、すべてを任意のデータベースに簡単に転送できると思います:)

于 2009-01-20T22:41:32.663 に答える
4

これらを評価するためにどのような基準を使用しますか? まだわからない場合は、今すぐ決める必要はありません。アプリケーションをできる限りデータベースの実装にとらわれないようにしてください。適切なラッパー、データアクセスオブジェクトなどを提供し、すべての事実を手に入れて決定する必要があるときにこの決定を下してください。

リレーショナル データベースと SQL を使用している場合、上記はそれほど難しくありません (JDBC などを使用)。データベースを切り替えたいときに、アプリケーションの機能が変わらないことを確認できるように、周囲のテストを十分に行ってください。

少し前に同じ問題に遭遇しました。どのデータベースを使用すればよいかわからなかったので、最初のソリューションでは Derby (または HSQLDB?) を使用しましたが、後で HSQLDB (または Derby ? どのソリューションが機能したか思い出せません) に切り替えることができました。 (パフォーマンスに関連する)問題があり、どのソリューションが本当にうまくいくか.

于 2009-01-20T22:23:33.527 に答える
4

私は.Net と Java の両方で DB4Oの大ファンです。

初期のリリース以来、パフォーマンスは大幅に向上しています。ライセンス モデルも悪くありません。オブジェクトのクエリに使用できるオプションが特に気に入っています。例によるクエリは非常に強力で、簡単に慣れることができます。

于 2008-09-11T17:26:43.650 に答える
3

私が正しければ、H2 は HSQLDB を書いたのと同じ人からのものです。サイトのベンチマークを信頼すれば、はるかに優れています。また、太陽のコミュニティがあまりにも早くダービーに飛びついたという考えもあります。

于 2010-11-02T03:43:18.640 に答える
3

この記事への投稿が少し遅れました (かなり遅れました;-)) が、Java & .NET 用のオープン ソースのオブジェクト指向組み込みデータベースである Perst を追加したいと思います。あなたの考慮のために。Perst は、Java 用のオープン ソース/デュアル ライセンス組み込みデータベースです。このディストリビューションは、Google の Android プラットフォームと互換性があり、Java ME 用の Perst Lite も含まれています。Android のベンチマークを構築し、このテーマに関するホワイトペーパーを作成しました...こちらでご覧いただけます: http://www.mcobject.com/index.cfm?fuseaction=download&pageid=581§ionid=133

万歳、クリス

于 2009-09-15T14:05:23.917 に答える
3

私は個人的に HSQLDB を支持していますが、それは私が最初に試したものだったからです。

H2 はより高速で、より優れた GUI フロントエンドを提供すると言われています (ちなみに、これは汎用であり、任意の JDBC ドライバーで動作します)。

少なくとも HSQLDB、H2、および Derby は、開発に最適なサーバー モードを提供します。これは、アプリケーションといくつかのツールで同時に DB にアクセスできるためです (組み込みモードでは通常許可されません)。

于 2009-01-20T20:39:47.510 に答える
3

私は Derby を使用しましたが、データ型変換関数、特に日付/時刻関数が本当に嫌いです。(数値型)<--> Varchar 変換 めんどくさい。

DBステートメントでデータ型変換を使用する予定がある場合は、他の組み込みDBの使用を検討してください。私はそれを学ぶのが遅すぎます。

最新の Derby バージョンのデータ型変換

于 2008-09-12T10:19:01.440 に答える
2

あなたが SQL ブラウジングについて言及したことは承知していますが、あなたの質問の他のすべては、優れた単純なオブジェクト DB であるDB4Oも検討することをお勧めしたいと思います。

于 2009-01-20T20:35:47.847 に答える