<sql:update>
xmlns:sql="http://java.sun.com/jsp/jstl/sql"
SYNOPSIS
<sql:update
>
</sql:update>
| var="変数名" |
| scope="page|request|session|application" |
| sql="SQL" |
| dataSource="データソース" |
| <sql:param> * | - | 更新処理の SQL にパラメータを埋め込みます. |
| <sql:dateParam> * | - | 更新処理の SQL に日付型のパラメータを埋め込みます. |
| sql 属性を省略した場合の SQL. | ||
説 明
タグの内部または sql 属性で定義された更新処理を実行します。
PreparedStatement#executeUpdate() の処理に相当します。
SQL 条件などに可変値を埋め込みたい場合は <sql:param> を使用してください。
直接埋め込むと SQL インジェクションなどにつながるため危険です。
属 性
optional
var 属性で指定した変数を格納するスコープです。
page, request, session, application
のいずれかを指定できます。
optional
実行する SQL を指定します。
文字列内のプレースホルダ ? はタグ内で定義した <sql:param>,
<sql:dateParam> とマップされます。
この sql 属性で定義する以外にタグ内で SQL を指定することも出来ます。
optional
この更新処理の実行で使用する java.sql.Connection のデータソース
を指定します。以下のいずれかを使用できます。
-
jdbc/XXX形式のデータソース名 (文字列) -
jdbc:dbname:database形式の JDBC URL (文字列) -
<sql:setDataSource>でデータソースを設定した変数
個別にデータソースや JDBC URL を指定した場合のトランザクションスコープはこの 更新処理の実行だけに限定されます (自動コミットと似た動きになります)。 また JDBC URL が指定された場合はコネクションプールは使用されません。
省略された場合は現在の <sql:transaction> のデータソースが使用されます。
内 容
sql 属性を省略した場合の SQL。
通常の JSP と同じ書式で記述できます。
更新処理の SQL にパラメータを埋め込みます。
更新処理の SQL に日付型のパラメータを埋め込みます。
使用例
テーブル
上記の実行結果です。
FOO の中で ID が 1 のレコードに
alpha を設定します。
JSP
<sql:transaction dataSource="jdbc/MYDS">
<sql:update>
UPDATE FOO SET BAR='alpha' WHERE ID=?
<sql:param>1</sql:param>
</sql:update>
<sql:query var="rs">
SELECT ID,BAR FROM FOO ORDER BY ID
</sql:query>
<c:forEach var="r" items="${rs.rows}">
<c:out value="${r.id}" />. <c:out value="${r.bar}" /><br>
</c:forEach>
</sql:transaction>
実行結果
1. alpha 2. Beta 3. Gamma 4. Delta 5. Epsilon