mybatis-logプラグインでSQLコメントアウトを使う方法

こんにちは。 エキサイト株式会社の三浦です。

Spring BootでMySQLなどのDBを使う場合、MyBatisを使用すると便利です。

そしてMyBatisを使用する際は、IntelliJで開発しているのであれば、mybatis-logというプラグインを使用すると、MyBatisのログから実行SQLを取得するのが非常に簡単になります。

ただし、SQL内でコメントアウトをしていると、実行SQLの取得がうまく行かない場合があります。

今回は、mybatis-logプラグインをうまく挙動させつつSQLコメントアウトを使う方法を紹介します。

MyBatisとmybatis-log

MyBatisは、MySQLなどDBを扱う際に使用するJava用のフレームワークであり、使用すると簡単にDBに接続・操作することができるようになります。

mybatis.org

MyBatis はカスタム SQL、ストアドプロシージャ、高度なマッピング処理に対応した優れた永続化フレームワークです。

そしてmybatis-logはIntelliJプラグインで、上記のMyBatisを使うときにインストールしておくと、ログから非常に簡単に実行されたSQLを取得することができるようになります。

plugins.jetbrains.com

mybatis-log is a very simple toy for spring boot project which print sql in console.

MyBatisの実行ログ

SQLを取得したいログを選択

SQLを取得

詳しくは以下にも載っています。

tech.excite.co.jp

mybatis-logとSQLコメントアウト

さて、このように非常に便利なmybatis-logですが、実はSQLコメントアウトが使用されているSQLだと、うまく実行SQLが取得できないことがあります。

コメントアウトしたSQL

上記のようにコメントアウトをすると、SQLが取得できません。

SQL取得失敗

コードの中身まで見たわけではないのですが、これはおそらく、ログ出力する際に改行がすべて取り除かれてしまうために、「コメントアウトが記述された部分から後のSQLはすべてコメントアウトされている」と判定されてしまっているからかと思われます。

以下のようなコメントアウトの記述方法であれば、問題なくSQLを取得できます。

問題ないSQLコメントアウト方法

コメント入りでSQL取得成功

最後に

mybatis-logを使うと、生産性が圧倒的に上がります。

とはいえそのためにコメントアウトを使わないようにするのは難しいところですが、今回の記事のようにすれば問題なくなるので、ぜひ使ってみてください!