2009-07-27 8 views
2

私は、Firebird 2.1を使用したいと考えている小さな(5-6テーブル)デスクトップアプリケーションをjava.Iで作成したいと考えています。私はgoogledとHSQLDBを参照してください。私はファイアバードとhsqldbの間で決定をしたい:)FirebirdとJavaのHSQLDB

どのデータベースを使用する必要がありますか?

+0

なぜこれらの2つに絞ったのですか?あなたはOracle、またはMySQLを見ましたか? – jjnguy

+2

+ http://www.h2database.com/ –

+1

私はApache Derbyに行きます。実際には非常にうまく作成されていますが、必要に応じてトランザクション処理が可能です(試したことはありませんが)。私が1つのインデックスを修正することができなかったときに、テーブルのデータを削除すると、ディスクスペースを「取って戻さない」という問題を発見しました。 –

答えて

3

デスクトップアプリケーションでは、埋め込みデータベースで十分です。 hsqldbまたはh2はこれに非常に適しています。アプリケーションのクラスパスにJARファイルを追加するだけです。 Firebirdはもっと複雑に見えます。

実際には、H2 is more advanced than hsqldbです。

+2

そのリストはかなり数回バイアスされています(Derby、H2、HSQLDBのさまざまなメーリングリストに従っています)。また、H2は型付き配列のサポートの欠如、PL/SQLのようなストアド・プロシージャ言語のサポートの欠如、不完全な '' information_schema''実装、標準準拠していない実装など、いくつかの事実を隠しています。 (これ以上) –

+0

注意:H2はストアドプロシージャ言語を提供するのではなく、Java/JDBCでこれを実行できます。ストアドプロシージャを書くよりも、JDBCを書く方がはるかに多くの作業が必要になります。また、H2のJDBCは、Firebirdのストアドプロシージャ言語のように型や依存関係をチェックしていないので、実行するまでエラーが表示されないことがあります。ストアドプロシージャに依存しているものを削除することはできませんでした。 – jcalfee314

1

Java 6にはJavaDBが付属していることを忘れないでください。これは、最初の解決策として役立ちます。それは再パッケージ化されたApache Derbyであり、その結果、かなり強力です。

+1

インストール時はオプションです。 –

6

Firebirdは独自のプロセスで動作し、Javaアプリはそれと通信する必要があります。利点HSQLDBは​​javaで書かれており、同じプロセスで実行できるので、インストールとランタイムチェック(データベースの実行、接続エラーなど)が簡単になります。データをディスクに保存することもできます。追加のオプションはH2 database dbで、プロセス中でも実行できます。

私はHSQLDBまたはH2を使用します。

+1

私はH2がHSQLDBの後継者だと思っています。元の著者の2番目の純粋なJavaデータベース...より多くの機能を持っているようです。 – basszero

+1

Firebird Embeddedも同じプロセスで動作します。後でデータベースをスケールする必要がある場合は、単純にサーバーに移動することができます。 –

+0

Firebird EmbeddedはJavaアプリケーションに埋め込まれて実行できるので、java.exeプロセスで実行できますか? AFAIKこれはそうではありません。 – mjn

2

私はHSQLDBをJavaで実装しているので(あなたはアプリケーションと同じプラットフォームを持っているので)、FireBirdが提供できる大きさのプロジェクトのための機能は必要ないと思います。

2

Firebirdのは非常に良い組み込みデータベースで、あまりにもSouceForge this year

のSQLiteで賞を埋め込まれたデータベースのための良いプレスをしている勝ちます。