http://developer.51cto.com/art/200906/126960.htm
歴史と背景
アプリケーションの1つの階層化アーキテクチャ
コンピュータ・アプリケーション・ソフトウェアの開発と、アプリケーションアーキテクチャは徐々に単層システムとして開発された多層構造から成ります。前記三層構造は、図1の左に示されているソフトウェア・アプリケーションの典型的な構造です。
プレゼンテーション層:このようなGUI(グラフィカルユーザインターフェース)、ウェブページなどのユーザ対話型インタフェースを提供します。
ビジネスロジック層:様々なビジネスロジックを担当し、データベースに直接アクセス、ビジネスデータ、更新、削除、およびクエリ操作の保存を提供します。
データベース層:永続データ・ストレージ・ビジネス管理アプリケーションの責任
三層構造の特徴である:、上部透明の特定の実装の詳細を上位層にすべての下位呼び出すためのインタフェースを提供します。アクセスする、すなわち層の間にトップダウンの依存関係、上位層の存在基礎となるAPIが、下層が上層に依存しません。
永続的なレイヤ2(図1の右側)
図1の右側では、分離された永続化層は、データアクセスの詳細は、オブジェクト指向のAPIは、ビジネスロジック層を提供するカプセル化します。
(1)持続性とは何ですか?
永続的(永続性)、すなわち、データ(例えば、メモリ・オブジェクト)は永久記憶メモリデバイス(例えば、ディスク)に保存されてもよいです。メインアプリケーションの永続メモリリレーショナルデータベースに格納されたデータは、もちろん、それはまた、XMLデータファイルは、ディスクファイルに保存することなどができています。
(2)持続性とは何ですか?
永続性(永続レイヤ)、すなわち、データの永続性は、特定のシステムのアプリケーション・ドメイン、ユーザデータおよびエンティティに関連付けられたデータの論理レベルに焦点を当てました。
(3)なぜ存続?永続層を増加させる効果は何ですか?
データベースの書き込み操作は非常に時間とリソースを消費する多数のユーザーが同時にデータベースに直接アクセスする際にデータがデータベースから各永続データを読み取るために必要としない場合には、効率が直接メモリに、非常に低くなります、データを操作するため、データベースリソースを節約し、システムの応答速度を加速します。
コードで簡単に、より明確な書き込みやシステムメンテナンスソフトウェアアーキテクチャの開発の効率を改善するために、永続層を増やします。特に、大規模なアプリケーションの内部には、それがより有益であろう。同時に、別の層として永続化層は、それが永続的なアプリケーションデータの多様性を達成することができ、この層の開発用のスタンドアロンパッケージすることができ、そしてトップのサービスを提供します。したがって、各企業の開発者がアプリケーションの開発を行うことをことを、データは、基本的な実装作業の持続性を行うために戻ってくることはありませんが、永続化API層を呼び出すことができ、直接提供します。
(4)モードを達成するために、この分野でいくつかの永続的な層があります。
ビジネスロジックとアクセスデータ結合
アクティブなドメインオブジェクトモデルB
C ORMモデル
D JDOモード
E CMPモード
3 ORMの紹介
あるORM(オブジェクトリレーショナルマッピング)、オブジェクトリレーショナルマッピング。
これは、SQL生成、管理、トランザクション処理およびキャッシュので、O / R機構を備えたO / Rの設計原理に永続化フレームワーク(枠組み)を指します。
アイデアは、開発者がこれらのオブジェクトのデータベース操作の操作に置くことができるように、オブジェクトの形を示すために、リレーショナルデータベースのマッピングになるオブジェクトにORMデータテーブルを達成することです。だから、その目的は、データベースの操作を実現するために、オブジェクト指向の考え方に開発を容易にすることです。
一般的に使用されるORMミドルウェアは以下のとおりです。
OJB Apacheの、(httpdbapacheorgojb)
カイエン(http://objectstyle.org/cayenne/)
Jaxor(http://jaxor.sourceforge.net)
休止状態(http://www.hibernate.org)
iBatisの(http://www.ibatis.com)
jRelationalFramework(http://ijf.sourceforge.net)
蜃気楼(http://itor.cq2.org/en/oss/mirage/toon)
SMYLE(http://www.drjava.de/smyle)
TopLinkの(http://otn.oracle.com/products/ias/toplink/index.html)
でも、HibernateのORMのもので、軽量かつ徐々にJavaのORMフレームワークにおけるリーダーの地位を確立したモデル、または複雑で面倒なEJBモデルを交換し、事実上の業界標準のJava ORMになります。そして、それらの多くは吸収し、J2EE標準化機構標準最新のEJB 3.0仕様になるように設計されています。
Hibernateは2を定義します
HibernateはJava言語の下のオブジェクトリレーショナルマッピングソリューションです。これは、無料、オープンソースソフトウェアです。従来のリレーショナル・データベースへのマッピングSQLベース、オブジェクト指向のドメインモデルの構造的関係によって表されるオブジェクトモデルにオブジェクト・モデルをマッピングするために使用され、便利に使用するためのフレームワークが提供されます。
三Hibernateの役割
のみならず、Javaクラスから(SQLデータ型へのJavaデータ型のマッピングを含む)マッピングデータベーステーブルに休止状態だけでなく、データのクエリとデータの検索を提供し、大幅に手動で開発する際にSQLとJDBCデータを用いた処理時間を短縮することができます。
その設計目標は、関連するプログラミングが解放された永続同じデータの数が多いから、ソフトウェア開発者にあります。それは、従来のデータベースからドラフトのデザインや最初からあるかどうか、開発者は、Hibernateを使用することができます。
四Hibernateアプリケーション
オブジェクトを使用して、プログラマは、データベースを操作するための任意のJavaプログラミング思考できるようにHibernate JDBCは、非常に軽量なオブジェクトパッケージで作られました。HibernateはJDBCを使用してあらゆる機会に使用することができ、Javaは、両方のクライアントプログラムで使用することができますサーブレット/ JSP Webアプリケーションでも使用することができます。置き換えCMPは、最も革新的で、HibernateはJ2EEアーキテクチャの(エンタープライズJavaBeansは、コンピューティング、企業で使用されるJavaフレームワークである)EJBを使用することができ、データは、タスクを完了するために永続。
5つのHibernateのAPIについて
:のカテゴリに1つのHibernateのAPIインタフェース
(1)セッション、トランザクションなど、データベース操作にアクセスするためのインタフェースを提供する、クエリーインターフェイス。
(2)休止状態、設定を構成するためのインターフェイス。
アプリケーションがイベントを受け入れることを可能にする(3)間接的なインタフェースには、Hibernateの内部で発生し、関連する応答を行う:インターセプタ、ライフサイクル、Validatable。
このようなのUserType、CompositeUserType、にIdentifierGeneratorインタフェースとしてHibernateのインターフェースから拡張する(4)。
Hibernateはまた、内部JDBC、JTA(JavaトランザクションのAPI)とJNDI(JavaのネーミングとディレクトリInterface)をカプセル化します。ここで、JDBCがあれば、ユーザは、JDBCドライバを提供するように、Hibernateは任意のデータベース・システムにアクセスすることができ、基礎となるデータ・アクセス動作を提供します。HibernateとJ2EEアプリケーションサーバーを統合するJTAとJNDI。
コア2休止状態のインタフェースのブロック図
六Hibernateの長所と短所
(1)利点:
a.Hibernate Javaリフレクション機構の代わりにバイトコード・プログラムを使用して、透明性を達成します。
それは、軽量フレームであるため、b.Hibernateのパフォーマンスは、非常に良いです。柔軟性は非常によくマッピングされました。
C。これは、リレーショナルデータベース、1対多の複雑な関係の様々なサポートしています。
(2)短所:
Hibernateはあなたが使用しているオブジェクトモデルを制限します。例えば、永続クラスは、複数のテーブルにマップすることはできません。