Skip to content

Commit 67f11c0

Browse files
committed
クエリビルダのドキュメントに literal メソッドの説明を記述
1 parent bd1e8ff commit 67f11c0

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

docs/sources/query-builder/index.rst

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,13 @@
1515
どのクエリビルダも、インスタンスは ``Config`` 型の引数をとる
1616
``static`` な ``newInstance`` メソッドで生成できます。
1717
インスタンスには、 ``sql`` メソッドでSQL文字列の断片を、
18-
``param`` メソッドでパラメータの型とパラメータを渡せます。
18+
``param`` メソッドと ``literal`` メソッドでパラメータの型とパラメータを渡せます。
19+
20+
``param`` メソッドで渡されたパラメータは ``PreparedStatement`` のバインド変数として扱われます。
21+
22+
``literal`` メソッドで渡されたパラメータはSQLにリテラルとして埋め込まれます。
23+
このメソッドでパラメータが渡された場合、SQLインジェクション対策としてのエスケープ処理は実施されません。
24+
しかし、SQLインジェクションを防ぐためにパラメータの値にシングルクォテーションを含めることは禁止しています。
1925

2026
検索
2127
====
@@ -33,6 +39,8 @@
3339
builder.sql("salary");
3440
builder.sql("from Emp");
3541
builder.sql("where");
42+
builder.sql("job_type = ").literal(String.class, "fulltime");
43+
builder.sql("and");
3644
builder.sql("name like ").param(String.class, "S%");
3745
builder.sql("and");
3846
builder.sql("age > ").param(int.class, 20);

0 commit comments

Comments
 (0)