2011-06-17 9 views
1

私はWeb開発の背景から来て、かなり長い間Javaで重要なことをしていません。J2SEデスクトップアプリケーション - JPAデータベースとコレクション

私は小さなプロジェクトを行っています。そのほとんどは、関係を持ついくつかのモデルと、それらのオブジェクトとの直接的なCRUD操作を含んでいます。

JPA/EclipseLinkは問題に適しているようですが、これはFile-> OpenとFile-> Save機能を持つアプリの種類です。つまり、データはユーザーのファイルに保存されます。セッション間のデータベース

このようなプロジェクトで最後に作業したとき、ArrayListオブジェクトにオブジェクトを格納しましたが、以来MVCフレームワークで作業していましたが、これは少しプリミティブな感じです。一方、JPAを使用してファイルを開くには、オブジェクトを管理するためのコードを記述しなくても済むように、データベースにオブジェクト全体をロードする必要があります。

Java SEデスクトップアプリケーションでモデルデータを管理する一般的な方法は何ですか?

+0

データベーススキーマは指定されていますか、このジョブを実行するのに必要なものを選択できますか? –

+0

あなたは何を意味するか分かりませんが、アプリケーションの目的に関係するスキーマがあります。 1対1と1対多の関係は、それが得られるほど複雑になります。 – bcoughlan

答えて

2

JPAは特にデータベースを念頭に置いて構築されました。これは、通常、多くの異なるユーザーに属するオブジェクトを持つ大きなデータストアで動作することを意味します。

ファイルベースのシナリオでは、ファイルはそれほど大きくなく、ファイル内のすべてのオブジェクトが同じユーザーと同じドキュメントに属しています。その場合、古いJavaのシリアライゼーションはバイナリ形式でも、一時ファイルに対してはまだ動作しています。

長期間または互換性のあるフォーマットの場合、XMLがより適しています。 JAXB(標準Javaライブラリに含まれています)を使用すると、サーフェス上でJPAに似た注釈ベースのアプローチを使用して、JavaオブジェクトをXMLにマーシャリングおよびデマルソールできます。実際、JPAとJAXBアノテーションの両方を持つモデルオブジェクトを使用して、XMLファイルと同様にデータベースに格納できるようにしました。

ただし、デスクトップアプリケーションで、ページングとクエリが必要な巨大なデータセットを表すファイルを使用している場合は、JPAを使用する方が良い選択肢です。 Javaで利用できるさまざまな小さな組み込みDBがありますが、データソースがユーザーが選択したファイルを指し示すことがいかに簡単かはわかりません。通常、Javaの永続ユニットは固定データソースにマップされており、その場で永続ユニットを作成することはできません。

JPAのようなマッピング技術であるが、ORMではなく、JDOを使用することもできます。これは、使用されているバックエンド永続性テクノロジからはるかに独立しており、実際にファイルにもマップされています。

申し訳ありませんが、これは実際の回答ではありませんが、いくつかの点を考慮する必要がありますが、何らかの形で役立つことを願っています。

関連する問題