x:sql 要素は、x:select、x:modify、または x:procedureCall アクションのために実行される SQL ステートメントの指定に使用されます。
<x:sql> </x:sql>
このステートメントは、この要素の本体として指定されます。
このステートメントは、 2 つのレベルのいずれかでパラメーター化することができます。第 1 レベルでは、JSP 構文をこのステートメントの中で使用して、 データベースへのサブミット前にこのパラメーターへのパラメーター置換を行うことができます。 次に例を示します。
SELECT * FROM EMPLOYEE WHERE WORKDEPT = <%= request.getParameter("department") %>
第 2 レベルでは、データベースにサブミットされたステートメントはパラメーターを含み、 データベース処理中に置換が行われます。 この場合、パラメーターは、? または :name として表すことができます (ここで、name は大/小文字の区別があるパラメーターの名前です)。 以下は、これについてのすべての例です。
SELECT * FROM EMPLOYEE WHERE WORKDEPT = ? SELECT * FROM EMPLOYEE WHERE WORKDEPT = :dept DELETE FROM EMPLOYEE WHERE EMPNO = ? DELETE FROM EMPLOYEE WHERE EMPNO = :employee CALL GETDEPT (?, ?) CALL GETDEPT (:number, :name) :deptno = CALL GETNUMBER (:deptname)
ステートメント内の各パラメーターには、:name 構文と ? 構文を組み合わせて使用することはできません。すべてのパラメーターでいずれか一方の構文を使用する必要があります。