マジセミドライブ
ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。
OSS情報
2020.01.01
【OSS情報アーカイブ】Hibernate


※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。
コンテンツ
「Hibernate」とは
基本情報
概要
Hibernate(ハイバネート)とは、JavaプログラミングのためのO/Rマッピング(オブジェクト関係マッピング)ライブラリです。
【O/Rマッピング(Object/Relational Mapping)とは】
「オブジェクト指向のドメインモデル」と「リレーショナルデータベース」をマッピングするためのフレームワークを提供する機能のことです。
このような機能が必要となる原因として、「オブジェクト指向言語」と「リレーショナルデータベース」の思想の違いがあります。「オブジェクト指向」では、現実世界にあるモノに即した形でデータモデルを設計します。一方、 「リレーショナルデータベース」では、正規化を基本として、登録処理や検索処理などを最適化することを目的としてデータモデルが設計されます。
このような基本的な思想の違いから、オブジェクト指向言語であるJavaから、リレーショナルデータベースにアクセスして処理するためのコードを書く場合、「大量の煩雑なコードを記述しないと処理を実現できない」、「同じことを何度も何度も書かなければならない」という問題が発生しがちになります。
「インピーダンス・ミスマッチ」と呼ばれる、このような問題を少しでも解消するために、O/Rマッピングライブラリ(O/Rマッパー)が開発されました。
【O/RマッパーであるHibernateを使用することのメリット】
XML形式のマッピングファイルに、オブジェクトの各項目と、対応するレコード項目の定義を記述すると、オブジェクトの呼び出しや保存を行うための雛型となるコードを自動生成してくれます。
Hibernateのマッピングファイルによって、オブジェクトとリレーショナルデータベース上のテーブルおよびレコードを関連付けて一元管理することができます。煩雑な同じようなコードを大量に書く作業から開放され、全体のコード記述量が削減されて、コードもシンプルになり、生産性が上がります。
また、「オブジェクト指向」と「リレーショナルデータベース」の2つの間に、Hibernateマッピングファイルという抽象モデルが存在することによって、データベース側のスキーマ変更を吸収することができるため、プログラムソース側への影響を最小限にすることができます。
主な特徴
【Javaベース】
Hibernateは、Javaオブジェクトをベースにした言語でシンプル設計になっています。Javaエンジニアなら、それほどの習得時間をかけずに、使いはじめることができるため、導入コストを節減できます。
【HQL】
Hibernateは、SQLライクな「HQL(Hibernate Query Language)」というクエリ言語を提供しています。オブジェクトをベースとしたクエリを構築できます。
【JavaEEアプリケーションに対応】
スタンドアローンのJavaアプリケーションへの対応のほか、JavaServletやEJBセッションビーンを使用しているJavaEEアプリケーションにも対応しています。
【各種データベースに対応】
特定のデータベースには依存せず、さまざまなデータベースに対応しています。
同様製品(概要情報)
O/Rマッパー製品は、「MyBatis」など、Java用、PHP用、Ruby用、Android用など、各言語ごとに多数存在しています。
導入事例
Hibernateは、効率的なJavaシステム開発をサポートするO/Rマッパーとして、さまざまな領域で幅広く利用されています。
ライセンス情報
Hibernateのライセンスは、「GNU Lesser General Public License」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。
ダウンロード
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。
この記事のタグ一覧
フリーワード検索
カテゴリー一覧
アクセスランキング
- 🏆ランク1位🏆
【無料で使える】「 OCR 」ツールまとめ - 🏆ランク2位🏆
【無料で使える】「 プロジェクト管理 」ツールまとめ - 🏆ランク3位🏆
【無料で使える】「 グループウェア 」まとめ - 🏆ランク4位🏆
【無料で使える】「 翻訳 」ツールまとめ - 🏆ランク5位🏆
【OSS情報アーカイブ】SonarQube - 🏆ランク6位🏆
【AIツール実験室】画像生成AIツール「 Emi 」(前編) - 🏆ランク7位🏆
【OSS情報】Python用ASGI Webサーバ実装「 Uvicorn 」 - 🏆ランク8位🏆
【無料で使える】「 ドキュメント管理 」ツールまとめ - 🏆ランク9位🏆
【ツール紹介】無料オープンソース「 ビデオ監視 ツール 」まとめ3選 - 🏆ランク10位🏆
【無料で使える】「 マルウェア 」対策ツールまとめ