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