2009-04-09 20 views
2

Javaでデータベース永続性を使用する最も簡単な方法は何ですか?私はインターネット上に多くのフレームワークが存在することを知っていますが、自分自身とそのデザインパターンによってパーシスタンスレイヤーを開発する方法を学ぶのは面白いかもしれません。どこから始めれば?書籍、ウェブサイト、ハウツー、コード例などデータベース内のJava永続性

答えて

0

私はthis bookが特に有用であることを発見しました。 Thisもいいです。

自分自身を作成し​​たことで私は同意しました。これは楽しいことであり、多くの作業もあります。それはすべてあなたの目的にかかっています。

1

JDBCを使用するように、最低レベルでデータベースと話す必要があります。あなたは独自のフレームワークを設計しているので、それ以降は独自のフレームワークです。 JPAHibernateをご覧になり、いくつかのアイデアを得てから実験してみてください。

2

単純な方法は、jdbcを使用することです。 Javaには素敵なチュートリアルhereがあります。

抽象レイヤーまでは、 Hibernateは、私の経験では、かなり標準的であり、学習価値があります。あなた自身のプログラミングは、楽しい演習になることができますが、私は休止状態を使わないのがよい理由は考えられません。

+0

私は、JDBC上でiBatisのようなSQLマッパーを使用すると、raw JDBCを使用するよりはるかに簡単であることを発見しました。これは、HibernateやJPAのようなORMにも当てはまるはずです。これらのすべてのアプローチでは、フレームワークによって多くの詳細が処理されます。これには、接続プーリングやSQLインジェクション攻撃の防止などの最適化が含まれます。 –

+1

価値があるのは、私は本当にjDBI(http://jdbi.org/)が好きです。それはJDBCのすべての厄介な部分を処理し、必要に応じてデータのバインディングを許可しますが、それ以外の場合はそのままにしようとします。 – StaxMan

3

それは自分で永続化層を開発する方法を学ぶために楽しいことができ

Noooo!愚かではない。

JDOまたはJPAを使用してください。最初のものは汎用オブジェクト永続APIであり、もう1つはRDBMS-esのみを対象としています。

これらは、さまざまな実装形態を持っています。 JPAには、JPA 2のリファレンス実装でもあるEclipseLink(旧Oracle TopLink)と、非常に人気のあるHibernateがあります。

あなたは本当にあなた自身のものを作りたくありません。この分野で仕事をしたい場合は、代わりに既存のプロジェクトの1つに貢献してください。

1

以前の回答に加えて、DAO(データアクセスオブジェクト)パターンをチェックします。データアクセスのコードをどのように整理するかを反映しています。

0

あなたが学習の練習を探しているなら、クレイグ・ラーマンさんApplying UML and Patterns.

alt text http://graysmatter.codivation.com/content/binary/applyingumlandpatterns.jpg

のコピーを取得しようとするがありLarmanは軽量のデータベースの永続性マッパーの設計の章を提示します。控えめな永続性モデルに基づいたHibernateとは異なり、彼はドメインオブジェクトをPersistentObjectから拡張する必要がある目立ったフレームワークを提示します。各永続ドメインクラスのマッパークラスも記述する必要があります。コードジェネレーションコンセプトなしのActiveRecordパターン。

0

このbookエンタープライズアプリケーションアーキテクチャのパターン)は一見非常に良いようです。私はそれを調べて、パーシスタンスエンジンを開発するためのデザインパターンは非常に包括的です。なぜ、いつ、どのように使用するのかを示します。

3

有用な別のライブラリはjDBIです。優れたバインディング+マッピング機能を持つためにジェネリックスを利用していますが、依然としてJDBCにかなり近いです。 iBATISはそれほど軽くはないが類似の特性を持つと考えられており、ずっと長く続いている。

4

まず、既存の機能とソースコードを見てみましょう。ここにカップルがあります(アルファベット順にいくつか挙げてください)

  • DbUtils:非常に単純なJDBC用ラッパーです。多分ここでアイデアを探し始めるでしょう!
  • EBean:JPA自体
  • Hibernateと同様に:データベース
  • を照会するためのH2の独自ドメイン固有言語:JaQu
  • JaQuの優しいフォーク:重くJavaのJPA仕様
  • iciqlに影響を与えたデファクトスタンダード
  • JDBI:idiommatic Javaでのリレーショナルデータベースアクセスを公開する
  • JDO:Apache Javaデータオブジェクト
  • jOOQ:SQLを直接Javaでドメイン固有の言語としてモデリングする
  • MyBatis:「世界で最も普及しているSQLマッピングフレームワーク」。 [原文](旧iBatisの)
  • QueryDSL:多くの異なったバックエンド(だけでなく、SQL)
  • QuaereとSQLのような流暢API:QueryDSL

そしてすぐにと同様に、あなたはこの回答を編集することができますし、独自のフレームワークを追加!