(外だしSQL)execute()

"外だしSQLの使い方" を既に読んでいることが前提となります。

概要

外だしSQLで登録、更新、削除、truncate、DDLなどの更新系のSQLを実行 します。プロシージャの実行を除けば、検索以外の外だしSQLは全てこのメソッドで実行すると言えます。 (プロシージャも実行できますが、OUTパラメータ(プロシージャリターン値も含む)には対応できません)

会話上では、(外だしSQLの)えぐぜきゅーと と表現します。

実装方法

メソッドの呼び出し

outsideSql() の後、execute() を呼び出します。

e.g. 外だしSQLの一件検索の実装手順 (Eclipseでコード補完) @Java
memberBhv.o // .o と打って enter
--
memberBhv.outsideSql().ex // .ex と打って enter
--
memberBhv.outsideSql().execute(pmb);
// あらかじめ補完される引数の名前に合わせておくとスムーズに

メソッドはオーバーロードで "定型呼び出し形式" と "フリースタイル形式" と二つあります。

定型呼び出し形式

TypedParameterBean を引数に受け取ります。(null は許可されません)

CustomizeEntityマーク、および、ParameterBeanマークが定義されていることで TypedParameterBean の定型呼び出しが利用できます。

フリースタイル形式

パス、パラメータ(ParameterBean)、二つの要素を引数に受け取ります。 それぞれフリースタイル形式の基本仕様と全く同じです。

外だしSQLの使い方 - フリースタイル基本仕様

実行結果の受け取り

実行結果はint型の戻り値として受け取ります。基本的には、そのSQLで影響したレコードの件数(更新件数など)ですが、単純に PreparedStatement の executeUpdate() の戻り値を戻しているだけであり、実行したSQL次第で数値の意味は変わります。(業務的に利用されることはあまり多くないと想定されます)

単純に実行するだけ

このメソッドは、指定された外だしSQLを単純に実行するだけです。例えば、このメソッドを使って更新処理などを行ったとしても、 共通カラムの自動設定や、排他制御などの処理は行われません(自前で制御する必要があります)。

本当に特殊な更新処理にて

一件更新、バッチ更新、クエリ更新など、更新系は Behavior にて既に基本となるメソッドが存在します。 なので、この execute() は、本当に特殊な更新処理にて利用されることを想定しています。

例えば、以下のような処理を想定されています。

  • ConditionBean で表現できない複雑な条件でのクエリ更新・削除
  • truncate table
  • DDL文全般
  • OUTパラメータのないプロシージャでSql2Entityの恩恵が受けられる場合
  • (環境面など色々な都合で) call() で呼べない(OUTパラメータのない)プロシージャ

OutsideSqlTest タスクで実行されてはいけないSQL(truncateやDDLなど)は、必ず実行対象外SQLに設定するようにして下さい。