x:sql 元素用來指定 x:select、x:modify 或 x:procedureCall 動作所要執行的 SQL 陳述式。
<x:sql> </x:sql>
陳述式指定為這個元素的主體。
陳述式可在兩個層次中的任何一個層次參數化。 在第一個層次上,可在陳述式中使用 JSP 語法,以便在陳述式送出給資料庫之前,將參數替代到陳述式中。例如:
SELECT * FROM EMPLOYEE WHERE WORKDEPT = <%= request.getParameter("department") %>
在第二個層次上,送出給資料庫的陳述式含有參數,替代的動作會在資料庫的處理程序中進行。 在這個情況下,可以將參數表示為 ? 或 :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 語法和 ? 語法。 所有參數都只能使用其中一種。