主に、Hibernateの検索方法、Hibernateのオブジェクトのステータス、Hibernateの3つの検索戦略とは何かを含む、以下の12の側面から冬眠を要約します。継承継承継承関係の3つの方法、Find()セッションの方法の概要、およびクエリインターフェイスの違いなど。特定のコンテンツは次のとおりです。
1冬眠検索方法
burigationナビゲーションオブジェクト図検索(ロードされたオブジェクトによると、他のオブジェクトへのナビゲーション。)
oid oid検索(オブジェクトのoidに従ってオブジェクトを取得します。)
hql検索(オブジェクト指向のHQLクエリ言語を使用)
QBC検索(QBC(QBC(QBC)(QBC)(QBC(QBC)(QBC)(QBC(QBC))(QBC(QBC)(QBC)(QBC)(QBC(QBC)(QBC)) )オブジェクト/QBEオフライン/オンラインを取得する。
索ローカルSQL検索(ローカルデータベースを使用したSQLクエリステートメント。)
Hibernateの検索方法、Hibernateのオブジェクトの状態、Hibernateの3つの検索戦略とは何かを含みます。 fund()セッションの方法()セッションの方法とクエリインターフェイス間の違いの違いの概要
T Transient:新しいステートメントで作成されたばかりで、持続しておらず、セッションのキャッシュには含まれていません。一時的な状態のJavaオブジェクトは、一時的なオブジェクトと呼ばれます。
persistent:セッションのキャッシュに持続し、追加されました。永続的な状態のJavaオブジェクトは、永続的なオブジェクトと呼ばれます。
e分離:それは持続していますが、セッションのキャッシュにはもうありません。自由状態のJavaオブジェクトは、自由オブジェクトと呼ばれます。
3冬眠の3つの検索戦略は何ですか?
Ø即時検索
利点:アプリケーションに対して完全に透過的です。
短所:選択されたステートメントはたくさんあります。
該当する:クラスレベル。
Ø検索の遅延
利点:過剰な選択ステートメントの実行を回避し、ロードする必要のないオブジェクトを回避し、メモリスペースを節約し、検索効率を改善するために、アプリケーションによってオブジェクトがロードされるもの。
短所:アプリケーションがdefive状態のエージェントインスタンスにアクセスする場合、耐久性があるときに初期化されたことを確認する必要があります。
アプリケーション:1 -to -multiple以上の関連。アプリケーションは、すぐにアクセスできる必要はありませんし、まったくアクセスしないでください。
curty緊急の左および外側の接続検索
利点:オブジェクトが永続的な状態であるか自由状態にあるかに関係なく、アプリケーションに対して完全に透過的です。外部接続では、選択されたステートメントの数が少ないです。
短所:アクセスできないオブジェクトにロードされる場合があります。複雑なデータベーステーブル接続画像検索パフォーマンス。
アプリケーション:1つから1つ以上の関連。アプリケーションにすぐにアクセスする必要があります。データベースシステムには、テーブル接続のパフォーマンスが優れています。
4 ORMは非一致の問題を解決しました(ドメインモデルと関係モデルとの間で一致しません)
domainドメインモデルはオブジェクト指向であり、関係モデルは関連しています。
ドメインモデルには相続関係があり、関係モデルは相続関係を直接表すことはできません。
多ドメインモデルには多くの関係があり、関係モデルでは、接続テーブルはますます関連する関係を表すために使用されます。
domainドメインモデルには2つの関係があります。
domainドメインモデルは微粒子サイズモデルを促進し、関係モデルは粗いサイズモデルを提唱します。
5相続関係の3つの方法での冬眠マッピング
neterne継続システム全体がテーブルを使用しています(Tableper階層)
class各サブクラスにはテーブルがあり、サブクラスの一意の属性(Tableperサブクラス)が保存されています
table各クラス(ユニオンサブカラス)、テーブルとして保存された完全な情報(コンクリートあたりのテーブル)として保存されています
6セッションFind()メソッドとクエリインターフェイス間の違い
セッションクラスのFind()メソッドとクエリインターフェイスは、HQL検索方法をサポートします。 2つの違いは、前者は単純なHQLクエリステートメントの便利な方法のみを実行しますクエリインターフェイスは、クエリインターフェイスです。
7 Hibernate Association構成
ワンオン - オン
ØØØØØ
ØØØØØ
8セッションの特性について簡単に説明します
スレッドが安全ではないため、ソフトウェアアーキテクチャを設計するときは、同じセッションインスタンスを共有するために複数のスレッドを避ける必要があります。
实セッションインスタンスは軽量です。これは、各顧客に個別のセッションインスタンスを割り当てるか、作業ユニットごとに個々のセッションインスタンスを割り当てるなど、プログラムでセッションオブジェクトを定期的に作成または破壊できることを意味します。
セッション中、各データベース操作はトランザクションで実行されるため、異なる操作を分離することができます(読み取り専用)。
9 HibernateはXMLファイルを使用してオブジェクトを構成します - 関係マッピングの利点
Hibernateは、上部ドメインモデルに侵入したり、下のデータモデルに侵入したりすることはありません。ソフトウェア開発者は、仕様に従うために力なしでドメインモデルを独立して設計できます。データベースデザイナーは、仕様に準拠するために力なしでデータモデルを独立して設計できます。オブジェクト関連のマッピングは、オブジェクト関連のマッピングを変更する必要がある場合は、XMLファイルを変更する必要があり、ソフトウェアの柔軟性を改善する必要があります。メンテナンスがより便利です。
10セッションのキャッシュの関数
databaseデータベースへのアクセス頻度を減らします。メモリからのメモリからのアプリケーションの速度は、データベース内のデータをクエリする速度よりも明らかに高速であるため、セッションキャッシュはデータアクセスのパフォーマンスを改善できます。
cacheキャッシュ内のオブジェクトがデータベース内の関連レコードと同期されることを保証します。キャッシュ内の永続オブジェクトの状態が変更された場合、セッションは関連するSQLステートメントをすぐに実行しません。これにより、セッションはいくつかの関連するSQLステートメントをSQLステートメントに組み合わせて、アクセスデータベースの数を減らしてアプリケーションプログラムを増やすことができます。パフォーマンス。
11より多くの問題の実行時間以上の問題
of最初のタイプの損失アップデート
汚い読書
ØØø/ファントムリーディング
Ø繰り返し読まないでください
rows 2番目のタイプの損失アップデート
12セッションの清掃と空虚の違い
CASHESセッションのクリーニングキャッシュとは、キャッシュの状態の変更に従ってデータベースを同期して更新することを意味します。
sは、部品またはすべてのオブジェクトまたはセッションをクリアするセッションです。
13 Hibernateの作業原則とその理由
主要な
1.構成ファイルを読み取り、分析します
2。マッピング情報を読み取り、分析し、SessionFactoryを作成します
3。オープンセッション
4.トランザクション伝送を作成します
5。永続的な操作
6.トランザクションを送信します
7。セッションを閉じる
8。sesstionfactoryを閉じます
Øなぜ使用するのですか
1.データベースへのJDBCのアクセスのコードをパッケージ化しました。これにより、データアクセスレイヤーの退屈な反復コードが大幅に簡素化されます。
2。Hibernateは、JDBCに基づいた主流および持続性フレームワークであり、優れたORMの実装です。彼はDAOレイヤーのコーディング作業をほぼ単純化します
3. Hibernateは、透明性を実現するために、Bytecode Enhancedプログラムの代わりにJava反射メカニズムを使用します。
4。Hibernateのパフォーマンスは、軽量のフレームワークであるため、非常に優れています。マッピングの柔軟性は優れています。 1つから1つまでのさまざまな関係データベースをサポートしています。
14冬眠遅延負荷
1。hibernate2の読み込み遅延実装:a)スポーツオブジェクトb)コレクションタイプ
2。Hibernate3は属性の遅延負荷関数を提供します
Hibernateがデータを照会すると、データは存在せず、プログラムが実際にデータを動作させると、メモリが存在し、それによってサーバーのパフォーマンスが向上します。
15 Hibernateのキャッシュメカニズム
1.最初のレベルのキャッシュは、アプリケーショントランザクションクラスのキャッシュに属する内部キャッシュHibernateとも呼ばれます
2。セカンドレベルのキャッシュ
a)アプリケーションとキャッシュ
b)分散キャッシュ
条件:データは第三者によって変更されず、データサイズは許容範囲で、データの更新頻度は低く、システムと非批判的なデータで同じデータが頻繁に使用されます。
c)サードパーティのキャッシュの実現
16冬眠を最適化します
1. 2つのウェイ1〜マニュアソシエーションを使用し、1つのペアを使用しないでください
2。1つの1つの1つの融合を柔軟に使用します。
3.誰も - 1つはありません、それをより多くのペアに置き換えます
4。構成オブジェクトキャッシュ、コレクションキャッシュなし
5。One -to -multi -Collection使用バッグ、マルチコレクション使用セットのほとんど
6。継承クラスは、マルチステートに使用されます
7.テーブルフィールドが少なく、テーブルの関連性を恐れないでください。腰をサポートする2番目のレベルのキャッシュがあります
上記は、Hibernateの一般的な要約であり、Javaのインタビューでより一般的であり、すべての人を助けることを望んでいます。