Skip to content

JBoss Enterprise Middleware

かんたんO/Rマッピング

O/R マッピング(Object/Relational Mapping)はJavaアプリケーションを開発する際の煩雑な作業を軽減し、開発効率を上げるための仕組みです。 本稿では解決すべき問題点を明確にし、O/R マッピングのデファクトであるHibernateについて解説します。

Java アプリケーションを構築する際の問題点とは ?

ほとんどのJavaアプリケーションではデータ管理にリレーショナルデータベース(以下、RDB)を使います。
しかし、オブジェクト指向設計の考え方がベースとなっているJava から、リレーショナルデータベース設計に基づいて構築されているRDBの情報を操作する場合、どうしても「インピーダンスミスマッチ」と呼ばれる構造上のギャップがでてきます。

通常、このギャップをJavaプログラムで実装することになりますが、このロジックが煩雑で冗長になることが多いため、本来開発者が集中すべき、ビジネスロジックに集中できず、開発生産性を著しく低下させる原因になっています。

また、マッピングのロジックを直接、Javaプログラムに埋め込むことで、RDBのテーブル構造が変更された場合や、RDB自体が変更された際に膨大な修正を行わなくてはならないことがあります。

問題点

  • マッピングロジックの実装が煩雑で冗長
  • この煩雑で冗長な作業に時間をとられ、ビジネスロジックに集中できない
  • バグがでやすい

Hibernateをつかったソリューション

O/R マッピングは、このインピーダンスミスマッチの解決するための仕組みです。 設定ファイルを記載することで、RDBのレコードをJavaから直感的に扱えるオブジェクトに自動変換することが可能であり、プログラミングの効率を上げ、煩雑な手間を軽減することができます。

また、SQLに非常に良く似たクエリ言語、HQL(Hibernate Query Language)を使用することでRDB毎に存在するSQLの方言を吸収することができます。このため、RDB自体を変更する必要がでてきた場合でも直接SQLを修正すると言った作業を行う必要がありません。併せて、各RDB固有のSQLを使用可能なAPI も用意されているためネイティブなSQLを使用することも可能です。このことででJDBCを利用し、ネイティブなSQLを利用している従来のアプリケーションからHibernateへの以降をスムーズに進めることができます。
HibernateではJavaエンジニアが慣れ親しんだシンプルなAPIを提供しているため、多くの時間をついやすことなくAPIを習得することがで きるでしょう。

さらにHibernateでは内部でキャッシュ機能使用することでパフォーマンスの向上がはかられて、エンタープライズレベルのアプリケーションで求められるパフォーマンスに十分対応可能です。 最後にHibernateはO/R マッピングツールのデファクトとして、数多くのプロジェクトでご利用いただいており安定性にも定評があります。

ソリューション

  • 煩雑で冗長なマッピングロジックを吸収、作業を軽減できる
  • 開発者はビジネスロジックに集中することで開発効率UP
  • RDBに依存しない実装が可能なため変更につよいアプリケーションが構築可能
  • シンプルなAPI
  • ハイパフォーマンスと数多くのシステムで利用されていることに裏打された安定性


レッドハットでは、JBossに関する更なるご提案、アドバイス、および導入時のお見積もりを行っております。 詳細は、 こちらまでお問い合わせください。