MyBatis
MyBatis はJavaならびに.NET Frameworkで利用可能な、XMLまたはアノテーションを用いてストアドプロシージャやSQL文をオブジェクトと紐付ける永続性フレームワークである。Apache License 2.0によるオープンソースソフトウェアとして提供されている。
以前はiBATISとして知られていた。
MyBatisは他のO/Rマッピングフレームワークとは異なりデータベースとオブジェクトをマッピングするのではなく、SQL文とオブジェクトのマッピングを行う。このため、MyBatisはレガシーな環境や非正規化されたデータベース、またはSQL文の実行を完全に制御したい場合に、よい選択肢となる。
MyBatisによるデータベースへのアクセスコードは、JDBCによるものより遥かに簡単である。通常の場合、SQL文の実行は1行のコードで完了する。よく見られるコネクションのクローズ漏れや、検索結果に1件を期待しているにもかかわらず超過してしまうような問題を抑止できる。
MyBatisの一番の特徴は、XMLに記述したSQL文を普通のオブジェクトと組み合わせられることである。
また、MyBatisではオブジェクトとデータベースをマッピングするだけでなく、SQL文のインタフェースメソッド(マッパー)を作成することも出来る。この場合は、DIフレームワークと組み合わせることでMyBatis APIへの依存関係を排除することが出来る。このためにSpring Framework、Google Guiceとの連携がサポートされている。
MyBatisではデータキャッシュもサポートしている。XMLマッピングファイルに僅かな構文を追加するだけでキャッシュを有効にすることが可能である。MyBatisのキャッシュではOSCache, EhcacheそれにHazelcastとの連携がサポートされている。