Spring Boot DB連携

MyBatisのSQL文をXMLファイルに配置してみた

MyBatisを利用するプログラムで、これまではMapperクラスに直接SQL文を記載していたが、今回はXMLファイルにSQL文を移動してみたので、そのサンプルプログラムを共有する。

前提条件

下記記事の実装が完了していること。

Spring BootのWEB画面上でサービスクラスを利用してみたこれまではコントローラクラスに主要な処理を記載していたが、MVCモデルに従うと、C(コントローラ)とM(モデル)で明確に分割した方が望ま...

完成した画面イメージ

下記記事の「完成した画面イメージの共有」を参照のこと。

Spring BootのWEB画面上でCRUDを含むOracleアクセス処理を実装してみた(完成イメージ編)今回は、C(Create)・R(Read)・U(Update)・D(Delete)を一通り含むOracle接続処理をSpring Boo...

作成したサンプルプログラムの内容

作成したサンプルプログラムの構成は以下の通り。「前提条件」で記載したソースコードと異なるプログラムを赤枠で囲っている。
サンプルプログラムの構成

「UserDataMapper.java」の内容は以下の通り。SQL文の記載をこのプログラムから削除している。

新規追加した「UserDataMapper.xml」の内容は以下の通り。

xmlファイルはresourcesフォルダ下のMapperインタフェースと同じディレクトリ下に配置し、mapperタグには、Mapperインタフェースのクラスパスを指定している。

また、select, insert, update, deleteの各タグを利用し、idタグにMapperインタフェースのメソッド名を指定している。さらに、resultTypeで戻り値のデータ型を、parameterTypeで引数のデータ型を指定している。

その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/java/tree/master/spring-boot-mybatis-xml/demo

要点まとめ

  • MyBatisのSQL文をXMLファイルに配置する場合、XMLファイルは、resourcesフォルダ下のMapperインタフェースと同じディレクトリ下に配置する。
  • XMLのmapperタグには、Mapperインタフェースのクラスパスを指定する。
  • SQL文は、select, insert, update, deleteの各タグ内に記載し、idタグにMapperインタフェースのメソッド名を指定する。さらに、resultTypeで戻り値のデータ型を、parameterTypeで引数のデータ型を指定することができる。