Spring Boot解説第13回(開発環境編：MyBatipse)

こんにちはこんばんは！
株式会社情創 技術開発局
だんだんと日没が遅くなりBBQをやれる時間が延びると喜んでいる@YAKINIKUです！
今回はMyBatipseについて解説していきます！

#MyBatipseとは
[前回](http://qiita.com/TEBASAKI/items/8925aa675f5e15b41967)紹介したMyBatis関連のファイルを編集時にコンテンツアシスト及び検証機能を提供してくれるEclipseプラグインです。

#導入
導入方法は、[第2回](http://qiita.com/TEBASAKI/items/a30a7daf11cdb51272fb)にて解説しているのでそちらをご参照ください。

#機能説明
##ハイパーリンク
MayBatipseで一番便利な機能です。
xmlファイルに

```xml:dao.xml
<mapper namespace="com.qiita.dao.testTbl.TestTblDao">
</mapper>
```

と記述することでjavaファイルとのハイパーリンクを作成できます。
これがどういったものかというとxmlステートメントIDとjavaメソッドを紐づけて
Ctrl+左クリックで遷移してくれるようになります。

xmlファイルを開いてみるとCtrlを押すことで
xmlステートメントIDがクリックできるようになっていて、
![マッパー.png](https://qiita-image-store.s3.amazonaws.com/0/116032/8290b5d0-6718-c60c-5d2e-7b4e4749545a.png)

押してみると下記のようにjavaメソッドの場所まで遷移してくれます。
![java.png](https://qiita-image-store.s3.amazonaws.com/0/116032/9ff60d07-bee3-876d-c6db-21b0b72a1be6.png)

この逆も可能でjavaメソッドをCtrl+クリックで選択するとメニューが出てきて
![java2.png](https://qiita-image-store.s3.amazonaws.com/0/116032/778c5631-4f7c-b04b-c67e-12952168502e.png)

このOpen select in XML mapper.を選択することでXMLステートメントまで遷移してくれます。

その他のハイパーリンク機能としては
![include.png](https://qiita-image-store.s3.amazonaws.com/0/116032/db64f980-9871-4abf-3952-80fc39435477.png)
includeのXMLステートメントIDをsqlと紐づけてくれるもの等があります。
このincludeは、同じxmlファイル内にあるsqlタグの中身を呼び出してくれるタグです。
同じ記述を何度もする場合に使用することで記述の省略ができます。

##xmlエディター拡張機能
xmlの入力を補助してくれる機能です。
xmlファイルに記述する際にCtrl+Spaceを押すことで下記のように様々な入力を補助してくれます。
###ID入力補助
mapperでjavaファイルと紐づけられている場合にid入力の際、メソッド名を選択できるようにしてくれます。
![id.png](https://qiita-image-store.s3.amazonaws.com/0/116032/dc67fa1a-55c0-e849-1973-6a2a4ef9439f.png)

###parameterType入力補助
呼出先のjavaファイルを予測しパスを入力してくれます。
![type.png](https://qiita-image-store.s3.amazonaws.com/0/116032/69481343-d6fb-cf97-131a-b81920b6d9e4.png)

###refid入力補助
入力する際に、同xmlファイル内にあるsqlに設定されているIDを選択できるようにしてくれます。
![a.png](https://qiita-image-store.s3.amazonaws.com/0/116032/0ee07581-fe7d-a326-887b-947c63124949.png)


今回は3つほど説明させていただきましたが、この他にもmapperのnamespace、XML configのname、valueの入力補助や、javaエディター拡張機能も備わっています。

##xmlファイルのエラーチェック
ファイルを更新した時に、エラーチェックを実施してselect、sql、resultMapのID等の整合性を確認してくれます。

問題があった場合には、他のエラーと同じように表示してくれます。
![検証.png](https://qiita-image-store.s3.amazonaws.com/0/116032/3fa40eaa-440a-31f5-6cb6-37fde33cdc76.png)
![エラー.png](https://qiita-image-store.s3.amazonaws.com/0/116032/75d83664-0645-78df-4b91-b3339d6da5f9.png)

###MyBatis Nature
デフォルトでは各ファイルを更新した時のみエラーチェックが実施されるのですが、このMyBatis Natureを設定しておくことで関連するファイルが更新された際に自動的にxmlファイルのエラーチェックも実施してくれるようになります。

設定方法は簡単でプロジェクトファイルを右クリックしてメニューを開き、構成からAdd MyBatis Natureを選択するだけです。

![構成.png](https://qiita-image-store.s3.amazonaws.com/0/116032/820afc77-0432-f681-362b-d89ac23046df.png)

オフにする場合は、同じ場所にRemove MyBatis Natureと表示されているのでそれを選択してください。

##Mybatis Declaration
XMLファイルで記述したSQL文を見やすく表示してくれる機能です。
表示方法は[第3回](http://qiita.com/YAKINIKU/items/6889c5438de48eb4e873)で解説しているのでそちらをご参照ください。

includeを多く使用するような書き方ですと、
![aaaaaaaaaa.png](https://qiita-image-store.s3.amazonaws.com/0/116032/dbe5b858-7a71-a2c6-a156-162fee3fa066.png)


文字が多くなってしまい見辛くなってしまいます。
そんな時に、下記のように実際に出力されるSQL文を表示してくれます。

![bbbb.png](https://qiita-image-store.s3.amazonaws.com/0/116032/083a6c9b-0598-69ac-f2cb-337c4fa86d2b.png)


細かい設定は必要なくXMLエディターで選択しているSQLが表示されます。

では今回はこの辺で終わりにします。
今日解説した以外にどんな機能があるのか気になる方は[こちら](https://github.com/harawata/mybatipse)をご参照ください。
※英語のページです。

最後まで読んでいただきありがとうございました。
それではみなさんまた会いましょう！