エキサイト株式会社 メディア事業部テクノロジー&デザイン 統括の佐々木です。
最近、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が出力されます。これはかなり便利です。
別のタブでクエリのログのみ出力してくれるので、見やすく便利です。
## 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を使ってる方で、これを使ってない方は入れてください。生産性があがるかと思います。