MyBatisの概要
MyBatis(マイバティス)は、Javaのアプリケーションとリレーショナルデータベースとのやりとりを簡略化するデータマッパーフレームワークです。 MyBatisを用いることで、リレーショナル(Relational)データベースから取得したレコードの値をJavaのオブジェクト(Object)に設定したり、 その逆にJavaのオブジェクトをもとにSQLを組み立てる「ORマッピング」のための単純で面倒なコードを書く必要が無くなります。 MyBatisの標準的な実装では対応が難しいような場合は、JDBCドライバーのようにSQLやストアドプロシージャでリレーショナルデータベースを操作することもできます。 MyBatis の設定やデータベースレコードと Java オブジェクトのマッピングは、XML またはアノテーションを使って行うことができます。 Javaの他に.NET Frameworkプラットフォーム向けのパッケージもあります。
MyBatisは、2001年にスタートしたiBATISの後継プロジェクトで、2010年6月からMyBatisという名前に変更されて開発が続いています。
従来のオブジェクト指向型アプリケーション開発で、リレーショナルデータベースを扱う際に最も手間がかかってしまっていた作業は、データモデルの設計思想の相違によって発生するマッピングでした。
この処理をフレームワーク化し、大量に必要だったコードを大幅に削減することで、アプリケーション構築の効率と品質を向上させるのが、MyBatisの役割です。
データマッパーフレームワークは他にもHibernateなどがありますが、機能が限定的でその分だけ習得が容易なMyBatisは、はじめに検討したいデータマッパーフレームワークと言えます。
MyBatisの特徴
主な特徴は以下のとおりです。
XMLまたはアノテーションを利用 | ストアドプロシージャとオブジェクト、あるいはSQL文とオブジェクトとの関連付けや設定などは、XML またはアノテーションを使って行うことができる |
---|---|
開発効率が良い | 直接 JDBC を扱うコードを書いたり、クエリ引数やクエリ結果を手動で設定する必要がほとんどなくなり、オブジェクトとデータベースを効率的にマッピングすることができるため、結果的にコーディングの記述量も削減することが可能 |
習得が容易 | シンプルで他のマッピングツールよりも簡易的に扱え、習得の手間も少ない |
豊富なプラグイン | 統合開発環境Eclipseのプラグインなど開発者向けのプラグインも用意されている |
コスト効果 | ライセンス費用がかからないため、商用製品に比べコストを削減することが可能 |
MyBatisの主な機能
主な機能は以下のとおりです。(Java版)
- データマッピング機能
- DBスキーママイグレーション機能
- コードジェネレータ機能
- 各種フレームワーク連携機能(Spring Framework、Google Guice)
- キャッシュ機能
- ロギング機能(※)
※別途、JDK logging、Apache Log4jなどのロギング実装が必要
その他O/Rマッパーとの比較
その他O/Rマッパーとの機能比較は以下のとおりです。
MyBatis | Hibernate | Doma2 | |
SQLの外部化 | ○ | × | ○ |
DSL | ○ | ○ | × |
マッピング | ResultSet | テーブル | ResultSet |
動的SQL | ○ | △(Criteria API) | ○ |
SQL自動生成 | × | ○ | ○ |
MyBatisのライセンス
MyBatisソフトウェアは、Apache 2.0ライセンスです。
MyBatisのコードが使用されていることの明記を条件に、ソースコードの自由な改変と公開が認められています。
参考情報
MyBatis ダウンロードページ
MyBatis ドキュメントページ
MyBatisのサポート
NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。