打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
JSTL <sql:transaction>标签
 上一篇下一篇  
Windows10用户联盟QQ群: 227270512
<sql:transaction>标签用于<sql:query>和<sql:update>组成事务。可以把尽可能多的<sql:query>和<sql:update>作为<sql:transaction>内部语句来使他们成为一个单个事务。
如果一个异常被任何嵌套的动作抛出,它确保了嵌套的动作进行数据库的修改是提交或回滚。
属性:
<sql:transaction>标签具有以下属性:
属性 描述 必须 默认
dataSource 数据库连接使用(覆盖默认的) No Default database
isolation 事务隔离 (READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ, or SERIALIZABLE) No Database’s default
例如:
先从基本概念,让我们在TEST数据库中创建一个简单的表学生Students 表,并在表中创建一些记录如下:
第1步:
打开命令提示符并更改到安装目录,如下所示:
C:>C:>cd Program FilesMySQLinC:Program FilesMySQLin> 第2步:
登录数据库,如下所示
C:Program FilesMySQLin>mysql -u root -pEnter password: ********mysql> 第3步:
在TEST数据库中创建表 Employee 如下:
mysql> use TEST;mysql> create table Students ( id int not null, first varchar (255), last varchar (255), dob date );Query OK, 0 rows affected (0.08 sec)mysql> 创建数据记录
最后,Employee表中创建一些记录如下:
mysql> INSERT INTO Students VALUES (100, 'Zara', 'Ali', '2002/05/16');Query OK, 1 row affected (0.05 sec) mysql> INSERT INTO Students VALUES (101, 'Mahnaz', 'Fatma', '1978/11/28');Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO Students VALUES (102, 'Zaid', 'Khan', '1980/10/10');Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO Students VALUES (103, 'Sumit', 'Mittal', '1971/05/08');Query OK, 1 row affected (0.00 sec) mysql>
现在让我们写一个JSP将利用<sql:update>连同<sql:transaction>执行SQL UPDATE语句。在这里,<sql:transaction>里面所有代码将全部执行或全部不执行:
<%@ page import="java.io.*,java.util.*,java.sql.*"%><%@ page import="javax.servlet.http.*,javax.servlet.*"%><%@ page import="java.util.Date,java.text.*" %><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%> <html><head><title>JSTL sql:transaction Tag</title></head><body> <sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/TEST" user="root" password="cohondob"/><%Date DoB = new Date("2001/12/16");int studentId = 100;%><sql:transaction dataSource="${snapshot}"> <sql:update var="count"> UPDATE Students SET last = 'Ali' WHERE Id = 102 </sql:update> <sql:update var="count"> UPDATE Students SET last = 'Shah' WHERE Id = 103 </sql:update> <sql:update var="count"> INSERT INTO Students VALUES (104,'Nuha', 'Ali', '2010/05/26'); </sql:update></sql:transaction><sql:query dataSource="${snapshot}" var="result"> SELECT * from Students;</sql:query> <table border="1" width="100%"><tr><th>Emp ID</th><th>First Name</th><th>Last Name</th><th>DoB</th></tr><c:forEach var="row" items="${result.rows}"><tr><td><c:out value="${row.id}"/></td><td><c:out value="${row.first}"/></td><td><c:out value="${row.last}"/></td><td><c:out value="${row.dob}"/></td></tr></c:forEach></table> </body></html>
现在尝试访问上面的JSP,其中应显示以下结果:
Emp ID First Name Last Name DoB
100 Zara Ali 2001-12-16
101 Mahnaz Fatma 1978-11-28
102 Zaid Ali 1980-10-10
103 Sumit Shah 1971-05-08
104 Nuha Ali 2010-05-26
标签:JSTL    sql    transaction    标签    sql    tr     本站文章除注明转载外,均为本站原创或编译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创优秀实例教程
转载请注明:文章转载自:易百教程 [http:/www.yiibai.com]
本文标题:JSTL <sql:transaction>标签
本文地址:http://www.yiibai.com/jsp/jstl_sql_transaction_tag.html
 上一篇下一篇  
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
MySQL死锁
php下mysql数据库操作类
PHP+Ajax实现后台文章快速排序
PHP教程 MySQL读写分离由PHP实现
MySQL丨PHP 获取查询结果
[php]mysql数据库操作——DB类
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服