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 语法和 ? 语法混合使用。所有参数都只能使用这两个语法中的一个。