コンテンツへスキップ

MBMyBatis変換

読み込み中...

MyBatisはJavaで広く使われているSQLマッパーフレームワークです。MyBatisのクエリには #{param} などのプレースホルダや <if>・<where>・<choose> などの動的タグが含まれており、デバッグ時にそのままDBクライアントで実行するのは困難です。このツールはパラメータ値に基づいて動的タグを評価し、実行可能なSQLを生成します。逆にSQLからXMLマッパーの雛形を作成することもできます。

使い方

  1. 1
    タブを選択

    「MyBatis → SQL」では動的タグの評価とパラメータ置換を行います。「SQL → MyBatis XML」では素のSQLをMyBatis XMLマッパー形式に変換します。

  2. 2
    クエリを入力

    MyBatis/iBatisのクエリ、または素のSQLを貼り付けます。#{param} 形式はMyBatis 3、#param# 形式はiBatis 2として自動判別されます。

  3. 3
    パラメータ設定

    「MyBatis → SQL」の場合、検出されたパラメータの型と値を設定します。値を入力すると動的タグの条件が自動評価され、条件を満たさないブロックは出力から削除されます。

  4. 4
    確認とコピー

    変換された結果を確認し、コピーして利用します。

ヒント

  • 💡MyBatis 3の動的タグ対応: <if test="x != null">、<where>、<set>、<choose>/<when>/<otherwise>、<trim>、<foreach>。
  • 💡iBatis 2の動的タグ対応: <isNotEmpty>、<isEmpty>、<isNotNull>、<isNull>、<isEqual>、<isGreaterThan> など、<dynamic prepend="WHERE"> も含みます。
  • 💡値を入力したパラメータの条件ブロックのみ出力に含まれ、値がない場合はブロックごと削除されます。<![CDATA[...]]> も自動除去されます。
  • 💡#{param} はPreparedStatement形式(引用符あり)、${param} は文字列置換形式(そのまま挿入)として処理されます。
  • 💡ブラウザ内完結のツールなので、機密データを含むクエリでも安全です。

よくある質問

Q. MyBatisパラメータ変換が必要な理由は?
A. MyBatisのログには?プレースホルダーとパラメータ値が分離して出力されます。このツールは?を実際の値に置換し、すぐに実行できるSQLを生成します。
Q. どのパラメータ型をサポートしていますか?
A. 文字列、数値、Boolean、null、Dateの型をサポートしています。文字列は自動的にクォートが追加されます。
Q. Prepared Statementを使う理由は何ですか?
A. SQLインジェクション攻撃を防ぎ、クエリ実行計画のキャッシュにより性能を向上させます。MyBatisの#{}構文がPrepared Statementを使用します。

DevHelper

© 2026. All rights reserved.