<sql:transaction> 标签用于在事务中处理 SQL 操作,如果 SQL 操作有错误将不会执行 <sql:transaction> 标签中的所有 SQL 操作。
语法:
参数说明:
本示例应用 <sql:transaction> 标签处理事务中对用户密码更改的 sql 操作,关键代码如下:
<%@page language="java" contentType="text/html;charset=GBK" pageEncoding="GBK"%>
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<sql:setDataSource driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;databaseName=db_testH"
user="sa"password=""var="conn"/>
<sql:transaction dataSource="${conn}" isolation="read_uncommitted">
<sql:update sql="UPDATE tb_user SET pwd=?WHERE username=?">
<sql:param value="1224"></sql:param>
<sql:param value="zs"></sql:param>
</sql:update>
<sql:update sql="UPDATE tb_user SET id=?WHERE username=?">
<sql:param value="123"></sql:param>
<sql:param value="zs"></sql:param>
</sql:update>
</sql:transaction>
运行本示例,如果第二条更新语句出现错误,则第一条更新语句的更新结果将会被回滚。