初心者向けの Hibernate チュートリアル

公開: 2022-09-26

オープンソースの Hibernate は、オブジェクト指向のドメイン モデルをリレーショナル データベースにマッピングするために Web アプリケーションで使用される無料の OOP Java フレームワークです。

HQL と SQL を使用してデータベースにクエリを実行し、堅牢なオブジェクト リレーショナル マッピングを有効にすることができます。 ただし、Java での ORM マッピングの実装は Hibernate で簡素化され、アプリケーションの複雑さが大幅に軽減され、SQL の基本的な知識を持つ人々にとって有益です。

ソフトウェア開発に関連する無料コースをご覧ください。

目次

ソフトウェア開発の無料コースをご覧ください

クラウド コンピューティングの基礎 JavaScript の基本をゼロから データ構造とアルゴリズム
ブロックチェーン技術 初心者向けの反応 コア Java の基本
ジャワ 初心者向け Node.js 高度な JavaScript

Hibernate のアーキテクチャ

通常、Hibernate 構成はプロパティ セクションまたは hibernate.cfg.xml ファイルに保存されます。 Java 構成を検索するときは、注釈 @Configuration でマークされたクラスを探します。

Java アプリケーションとデータベースの操作を開始するには、セッション ファクトリから始めます。 このオブジェクトは、アプリケーションの Java 型と SQL データベースの間のマッピング コレクション全体を表します。

セッションファクトリー

すべてのユーザー アプリケーションは、Session Factory に接続することによって、セッション オブジェクトを要求できます。 セッション ファクトリは、ファイルに含まれる構成情報を使用して、セッション オブジェクトを作成します。 さまざまな時点でのアプリケーションとデータベースの対話がセッションに含まれ、セッション クラスがこれを表します。

クエリ

アプリケーション プログラムは、クエリ言語を使用して、1 つまたは複数の格納されたアイテムについてデータベースにクエリを実行できます。 Hibernate は、NamedQuery や Criteria API など、データベースをクエリするためのさまざまなアプローチを提供します。

一次キャッシュ

第 1 レベルでデータベースと通信する Hibernate Session オブジェクトによって使用されるキャッシュは、第 1 レベル キャッシュと呼ばれ、セッション キャッシュとも呼ばれます。 現在のセッションでアイテムをキャッシュする責任があります。 セッション オブジェクトからデータベースへのすべての要求は、データベースに到達する前に、第 1 レベルのキャッシュまたはセッション キャッシュを経由する必要があります。 したがって、セッション オブジェクトがアクティブでなくなるまで、第 1 レベルのキャッシュに引き続きアクセスできることに注意してください。

取引

トランザクションにより、何か問題が発生した場合にロールバックする機能を使用して、データの一貫性を確立できます。

永続オブジェクト

永続オブジェクトは、Hibernate フレームワークによってリンクされたテーブルの行としてデータベースに保存される従来の Java オブジェクト (POJO) です。 Hibernate 設定ファイルは、これらのオブジェクトを設定するか、または @Entity アノテーションでマークします。

二次キャッシュ

第 2 レベルのキャッシュは、複数のセッションにわたって物事を追跡します。 キャッシュ プロバイダーを有効にして、2 次キャッシュを使用できるようにします。 たとえば、EhCache は、多くのアプリケーションで人気のある第 2 レベルのキャッシュ プロバイダーです。

世界トップクラスの大学が提供するソフトウェア開発コースをオンラインで学びましょう。 エグゼクティブ PG プログラム、上級認定プログラム、または修士プログラムを取得して、キャリアを加速させましょう。

人気のソフトウェア エンジニアリング コースを探す

LJMU & IIITB のコンピューター サイエンスの理学修士号 カリフォルニア工科大学 CTME サイバーセキュリティ証明書プログラム
フルスタック開発ブートキャンプ ブロックチェーンのPGプログラム
フルスタック開発のエグゼクティブ PG プログラム
以下のすべてのコースを表示
ソフトウェア工学コース

Hibernate フレームワークの主な特徴

Hibernate は、データベース テーブルを管理するために設計された Java ドメイン オブジェクト マッピング フレームワークです。 このフレームワークは、SQL ステートメントではなく Java オブジェクトを使用して、データベース アイテムの操作を簡素化します。 さらに、トランザクション管理、自動化された主キーの作成、データベース接続の管理、および関連する実装の処理は、開発プロセスに貢献します。

Java Persistence API (JPA) 標準は、JPA プロバイダーの Hibernate によってサポートされています。 これは、データへのアクセス、保存、および管理に関する標準の集まりです。 Java オブジェクトの利点をさらに活用し、それをリレーショナル データベース エンティティに接続して、完全な JPA サポートを保証することができます。

ハイパフォーマンスとスケーラビリティ

Hibernate はどのような環境でも成長できますが、楽観的ロック、遅延初期化、およびその他のいくつかの手法など、パフォーマンスを向上させる幅広い機能を提供します。

ついていくのが簡単

Hibernate はカスタム データベース構造や属性を必要としないため、管理が難しくなる可能性があります。 システムの起動時に SQL を作成します。 ただし、JDBC と比較すると、保守が容易です。

AnnotationConfiguration、ServiceRegistryBuilder などのクラスは、以前の Hibernate バージョンで急速に非推奨になりました。

需要の高いソフトウェア開発スキル

JavaScriptコース コア Java コース データ構造コース
Node.js コース SQLコース フルスタック開発コース
NFTコース DevOps コース ビッグデータコース
React.js コース サイバーセキュリティコース クラウドコンピューティングコース
データベース設計コース パイソンコース 暗号通貨コース

エンティティ、平等、およびアイデンティティの概念

Hibernate は、正確なビジネス ルールを満たすためにオブジェクトまたは特性を比較するための追加の概念を提供します。 Java コアで等価性をチェックするという既存の知識に加えて、Hibernate の概念をマッピングすることも同様に重要です。

1. Hibernate エンティティ間の関連付けマッピング

2 つのエンティティーが接続され、一方向または双方向の方法で参照される場合、JPA アノテーションを使用して Java クラスにアノテーションを付け、永続的なエンティティーに変換します。 ただし、最初に、Hibernate エンティティ間の参照を生成する前に、いくつかの基本的な概念を把握することが重要です。

2.エンティティ/永続性は2つの異なるものです

Hibernate マップされたオブジェクト インスタンスは、対象のオブジェクト インスタンスの状態に応じて、一時的、永続的、切り離された、または削除された 4 つの状態のいずれかを保持します。

3. Hibernate と JPA のカスケード型

「CascadeType」プロパティはエンティティで使用され、カスケード効果と逆効果を有効にします。 CascadeType を介してアクセスできるカスケードの選択肢には、いくつかの種類があります。

ソフトウェア開発に関連する人気記事を読む

Java でデータ抽象化を実装するには? Javaの内部クラスとは何ですか? Java 識別子: 定義、構文、および例
例を使用して OOPS のカプセル化を理解する C のコマンド ライン引数の説明 2022 年のクラウド コンピューティングの機能と特性トップ 10
Java のポリモーフィズム: 概念、型、特徴、および例 Java のパッケージとその使用方法 初心者向け Git チュートリアル: Git をゼロから学ぶ

Hibernate アノテーションとマッピングの利点

インライン アノテーションの前は、Hibernate マッピングを作成する唯一の方法は XML ファイルでした。 Hibernate およびサードパーティ プロジェクトのさまざまなツールによって、Java ソースからのマッピングの自動生成が可能になりましたが、そうではありませんでした。

注釈は最新の定義されたマッピングですが、最も効果的なものではありません。

Hibernate (より正確には JPA) アノテーションのいくつかの利点を次に示します。

Hibernate Query Language [HQL] は、Hibernate のクエリ言語です。

HQL は、オブジェクト指向クエリ言語 SQL と類似点を共有しています。 テーブルや列ではなく永続的なオブジェクトに対する操作は、強力なクエリ言語の機能を示します。

JPQL (Java Persistence Query Language) はスーパーセットです。 したがって、有効な JPQL クエリは適切な HQL クエリと見なされます。 ただし、すべての有効な HQL クエリが有効な JPQL クエリであるとは限りません。

Hibernate 基準のクエリ

Criteria Query API を使用すると、ネストされた構造化されたクエリ式を Java で作成できるため、HQL や SQL などのクエリ言語では達成できないコンパイル時の構文検証が可能になります。 例によるクエリ (QBE) 機能に加えて、Criteria API には他の機能が含まれています。

たとえば、検索のコンポーネントを段階的に説明するのではなく、目的の特性を持つオブジェクト インスタンスを提供すると、時間と労力を節約できます。 また、count メソッド () など、射影と集計の手法も含まれています。

Hibernate EhCache の構成

ORM フレームワークによって提供されるキャッシング機能により、ユーザーは高速に実行される Web アプリケーションを持つことができ、フレームワークは単一のトランザクションでデータベース内で行われるクエリを減らすことができます。 キャッシュは、ユーザーとフレームワークにとって役立ちます。 Hibernate は、階層の第 1 レベルと第 2 レベルの両方でキャッシングを拡張します。

結論

Hibernate ソフトウェアは、すべての Java に対応する高機能フレームワークと見なされています。 この Hibernate チュートリアルでは、Hibernate の使用の基本について説明しました。

Hibernate フレームワークについて詳しく学び、 Spring 3 フレームワークとの統合から生まれる基本的なエンドツーエンドのアプリケーション フローを理解したい場合は、 upGrad のフル スタック開発のエグゼクティブ PG プログラムに参加することをお勧めします。

13 か月のコースは、ソフトウェア開発者、IT プロフェッショナル、エンジニア、アナリスト、テクニカル サポート プロフェッショナル、およびコンピューター サイエンスの基礎、ソフトウェア開発オペレーション、スケーラブルな Web サイトの構築、バックエンド API などの基礎を築こうとしている新入生向けに設計されています。

このプログラムには、10 以上のプログラミング ツールと言語、7 以上のケース スタディとプロジェクト、ブート キャンプ、データ サイエンスと機械学習へのアクセスが含まれています。

待ってはいけない。 今すぐ座席を予約してください!

Hibernate フレームワークで SessionFactory を作成するには?

すべてのユーザー アプリケーションは、Session Factory に接続することによって、セッション オブジェクトを要求できます。 セッション ファクトリは、ファイルからの構成情報を使用して、セッション オブジェクトを適切に作成します。

Hibernate Connection Pooling と Caching を設定する方法は?

デフォルトでは、Hibernate は JDBC 接続を使用してデータベース システムと通信します。 ただし、これらの接続の作成には時間とコストがかかり、通常の使用シナリオで Hibernate が実行する単一のアクティビティの中で最もコストがかかる可能性があります。 JDBC 接続管理のコストが高いことを考慮して、事前に関係を確立する接続プールを使用できます。

Javaの永続クラスとは何ですか?

継承やポリモーフィズムなどのオブジェクト指向の概念に準拠するクラスは、Java アプリケーションの永続クラスである可能性があります。