File tree Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Original file line number Diff line number Diff line change @@ -221,6 +221,51 @@ Dao インタフェースのメソッドと対応する SQL の例は次のと
221221 where
222222 salary = /* dto.getTaxedSalary() */1234
223223
224+ リテラル変数コメント
225+ --------------------
226+
227+ リテラル変数を示す式コメントを *リテラル変数 * コメントと呼びます。
228+ リテラル変数は、 SQLのリテラルの形式に変換された後にSQLに埋め込まれます。
229+ リテラルの形式に変換とは、文字列型をシングルクォートで囲むなどを指します。
230+ この変換にはSQLインジェクション対策としてのエスケープ処理は含まれません。
231+
232+ SQL インジェクションを防ぐため、リテラル変数の値にシングルクォテーションを含めることは禁止しています。
233+
234+ リテラル変数は ``/*^~*/ `` というブロックコメントで囲んで示します。
235+ リテラル変数の名前はDaoメソッドのパラメータ名に対応します。
236+ 対応するパラメータの型は :doc: `basic ` もしくは :doc: `domain ` でなければいけません。
237+ リテラル変数コメントの直後にはテスト用データを指定する必要があります。
238+ ただし、テスト用データは実行時には使用されません。
239+
240+ Dao インタフェースのメソッドと対応する SQL の例は次のとおりです。
241+
242+ .. code-block :: java
243+
244+ Employee selectByCode(String code);
245+
246+ .. code-block :: sql
247+
248+ select * from employee where code = /*^ code */'test'
249+
250+ Dao の呼び出し例は次の通りです。
251+
252+ .. code-block :: java
253+
254+ EmployeeDao dao = new EmployeeDaoImpl ();
255+ List<Employee > list = dao. selectByCode(" abc" );
256+
257+ 発行される SQL は次のようになります。
258+
259+ .. code-block :: sql
260+
261+ select * from employee where code = 'abc'
262+
263+ 記法が異なることを除けば、使い方はバインド変数コメントと同様です。
264+
265+ .. note ::
266+
267+ リテラル変数コメントは、実行計画を固定するなどあえてバインド変数の使用を避けたい場合に利用できます。
268+
224269埋め込み変数コメント
225270--------------------
226271
You can’t perform that action at this time.
0 commit comments