こんにちは。 エキサイト株式会社の三浦です。
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 はカスタム SQL、ストアドプロシージャ、高度なマッピング処理に対応した優れた永続化フレームワークです。
そしてmybatis-logはIntelliJのプラグインで、上記のMyBatisを使うときにインストールしておくと、ログから非常に簡単に実行されたSQLを取得することができるようになります。
mybatis-log is a very simple toy for spring boot project which print sql in console.
詳しくは以下にも載っています。
mybatis-logとSQLコメントアウト
さて、このように非常に便利なmybatis-logですが、実はSQLコメントアウトが使用されているSQLだと、うまく実行SQLが取得できないことがあります。
上記のようにコメントアウトをすると、SQLが取得できません。
コードの中身まで見たわけではないのですが、これはおそらく、ログ出力する際に改行がすべて取り除かれてしまうために、「コメントアウトが記述された部分から後のSQLはすべてコメントアウトされている」と判定されてしまっているからかと思われます。
以下のようなコメントアウトの記述方法であれば、問題なくSQLを取得できます。
最後に
mybatis-logを使うと、生産性が圧倒的に上がります。
とはいえそのためにコメントアウトを使わないようにするのは難しいところですが、今回の記事のようにすれば問題なくなるので、ぜひ使ってみてください!