MyBatisの@SelectProvider,@UpdateProvider,@InsertProvider,@DeleteProviderアノテーションで動的SQL作成する

MyBatisの@SelectProvider,@UpdateProvider,@InsertProvider,@DeleteProviderアノテーションで動的SQL作成する

MyBatisでXMLベースではなくアノテーションベースで記述するときに動的SQLを作成したい場合は、@SelectProvider,@UpdateProvider,@InsertProvider,@DeleteProviderアノテーションを使って実現します。

アノテーションはメソッドに付与します。以下マッパークラスの記述例です。

パラメータ
type クラス名
method メソッド名

同じパッケージにHogeSelectBuilderクラスを作成します。このクラスにマッパーで指定したselectSqlというメソッドを指定して動的SQLを作成します。

HogeSelectBuilderクラス

ここではHogeSelectBuilderクラスとしていますが名前は何でもいいです。

これでアノーテションベースで動的SQLを作成することが可能ですがバインド変数を使っていない為、SQLインジェクションの危険があります。

#{リストの変数名[インデックス]}としてバインド変数に変更する必要があります。

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA