MyBatis3.xを試してみました。
MyBatis3.xを試してみました。
仕事でSpring MVC + MyBatis 3.xを使う必要が出てきて、久しぶりに触ったので、自分用にサンプルとメモを残します。
以前はSpringとMyBatis 2.xのフレームワークだったのですが、数年が経ってバージョンアップしたようです。
ちなみに、今回はSpringによるラッパーフレームワークは使わず、MyBatis 3.xのみで動かしてみました。
サンプルコード
勉強メモとして作ったサンプルコード。
https://github.com/momotaro-lucy/mybatis_sample
参考
公式サイト
MyBatisの公式サイトが素直にわかりやすいのですが、チュートリアル的なものが弱く、そのまま動かして試してみるには辛かったです。
https://mybatis.github.io/mybatis-3/ja/getting-started.html
書籍
MyBatisを専門に扱った日本語書籍はないと思いますが、こちらのSpringの入門本にMyBatis 2.xと3.xの両方が解説されており、わかりやすいです。
Spring3入門 ――Javaフレームワーク・より良い設計とアーキテクチャ
- 作者: 長谷川裕一,大野渉,土岐孝平
- 出版社/メーカー: 技術評論社
- 発売日: 2012/11/02
- メディア: 大型本
- 購入: 8人 クリック: 115回
- この商品を含むブログ (14件) を見る
メモ
MyBatisは、SQLを記述するタイプのORマッパーで、 テーブルとオブジェクトのマッピングというより、SQLとオブジェクトとのマッピングを作っていくイメージ。
-
SQLとやり取りさせるエンティティクラスを定義します。カラム名のフィールドとセッター・ゲッターを定義したただのBeanで問題なし。
1で作成するSQLに記述するバインドフィールドとフィールド名が一致する必要あり。
-
Mapper XML ファイルには、SQLとマッピングするエンティティクラスの指定を行う。
注意点としては、SQLから取得できるカラム名がエンティティクラスのフィールド名と一致しないと自動でバインドしてもらえない。アンダーバーでつないでいるとカラム名とキャメルケースのフィールド名を自動でバインドしてくれなかった。
Mapper インターフェイスに定義したSQLに対応するメソッドを定義する。
XMLでパラメータ・戻り値の型定義を行っていますが、こちらのインターフェースで重複して定義が必要みたい?