MyBatis マッパー の仕組みとは
MyBatis のマッパーの仕組みは、マッパーファイル(Mapper XML)とマッパーインターフェイスの 2 つが主に関係しています。
- マッピングファイル(Mapper XML):データベース操作のSQL文やパラメータマッピングの規則を定義したファイルです。SQL文の定義、パラメータの設定、結果セットのマッピングなどが含まれます。XPathやOGNL式を使用することで、動的SQLの作成が実現し、柔軟な検索および更新操作が提供されます。
- マッパのインターフェースは、データベースの操作方法を定義し、アノテーションや XML の設定ファイルでマッピングファイルと紐づけられます。インターフェースメソッドの名前はマッピングファイルのSQL文のIDに対応し、インターフェースメソッドを呼び出すことで、対応するSQL操作が実行されます。マッパのインターフェースはJavaのオブジェクト指向プログラミングの思想に従っており、SQL操作の記述と呼び出しをより直感的で簡便に行えます。
MyBatisのMapperのしくみは、次の手順に要約できます。
- Mapperインターフェースのメソッド名とパラメータの型に基づいて、ダイナミックプロキシによって対応するプロキシオブジェクトが生成されます。
- 委任オブジェクトはメソッドを実行する際、メソッド名とパラメータの型から、対応するマッピングファイルに存在するSQL文を検索する。
- マッピングファイル内の SQL 文を元にパラメータをマッピングし、SQL 操作を実行します。
- SQLの実行結果を処理し、Javaオブジェクトに変換して、呼び出し側に返します。
MyBatisでは、Javaオブジェクトとデータベース操作を非依存に実装することで柔軟かつ直感的で簡単なデータベースアクセス手段を提供しています。さらに、キャッシュや動的SQL、遅延ロードなどの多彩な機能を備え、開発者が効率的にデータベース操作コードの記述と管理を行うことができます。