SpringBoot + MyBatisのログをIntelliJで見やすく出力する方法

エキサイト株式会社 メディア事業部テクノロジー&デザイン 統括の佐々木です。

最近、Spring/Javaでメディア内の各サービスのリビルド開発を行っています。SpringBoot + MyBatisで開発を行うことが多いのですが、単なるログから実行可能なSQLを組み立てるのは割と労力がかかります。

下記のクエリは、とあるテーブルから book_id = 1 のデータを出力するときのクエリになります。

2021-03-28 17:53:21.760 DEBUG 4955 --- [oundedElastic-1] c.e.d.p.mappergen.BookMapper.selectOne   : ==>  Preparing: select book_id, created_at from book where book_id = ?
2021-03-28 17:53:21.761 DEBUG 4955 --- [oundedElastic-1] c.e.d.p.mappergen.BookMapper.selectOne   : ==> Parameters: 1(Long)

これだと、SQLとBindParamを自分で組み立てないと、実行されるSQLがわかりません。

IntelliJ mybatis-log プラグイン

log4jdbcを使ってるならそれでもいいかと思うのですが、IntelliJを使っているならmybatis-logプラグインを使うと、実行できるSQLが出力されます。これはかなり便利です。

plugins.jetbrains.com

別のタブでクエリのログのみ出力してくれるので、見やすく便利です。

f:id:earu:20210328182240p:plain

## BEGIN  name=WebApplication seq=00000004 time=2021-03-28 17:53:22
SELECT book_id, created_at
FROM book
WHERE book_id = 1
## END 

MyBatis + IntelliJを使ってる方で、これを使ってない方は入れてください。生産性があがるかと思います。