<이 SQL : 거래> 태그
<이 SQL : 거래>의 <SQL : 쿼리>에 태그 태그와 <SQL : 업데이트> 트랜잭션을 패키지로 태그입니다. 단일 거래로 만들기 : <트랜잭션 SQL>, <: 쿼리 SQL>와 <SQL 업데이트> 작업로드 당신은 큰의 숫자가 될 수 있습니다.
대신 제출되는 데이터베이스에 대한 변경 사항이 롤백되도록 보장한다.
구문
<sql:transaction dataSource="<string>" isolation="<string>"/>
재산
<이 SQL : 거래> 태그는 다음과 같은 특성이 있습니다 :
재산 | 기술 | 필요한 경우 | 디폴트 값 |
---|---|---|---|
은 dataSource | 데이터베이스에서 사용 (디폴트 값을 대체하기 위해) | 아니 | 기본 데이터베이스 |
격리 | 트랜잭션 격리 수준 (READ_COMMITTED ,, READ_UNCOMMITTED, REPEATABLE_READ 또는 SERIALIZABLE) | 아니 | 기본 데이터베이스 |
예를 들면 데모
첫째, 당신은 TEST 데이터베이스의 직원 테이블에 구축 한 다음 테이블에 몇 가지 레코드를 추가 할 필요가 다음과 같이 단계는 다음과 같습니다
단계 1 :
설치 디렉토리의 디렉토리로 이동 CMD를 엽니 다
C:\> C:\>cd Program Files\MySQL\bin C:\Program Files\MySQL\bin>
단계 2 :
로그인 데이터베이스 :
C:\Program Files\MySQL\bin>mysql -u root -p Enter password: ******** mysql>
3 단계 :
TEST 데이터베이스에서 직원 테이블을 설정 :
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>
데이터 레코드를 만듭니다
마지막으로, 직원 테이블에 몇 가지 레코드를 만들 :
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 : 업데이트> 사용 SQL UPDATE 문을 실행하기 위해 <트랜잭션 SQL> 및. 에서 : 코드가 실행되지 않습니다 <SQL 트랜잭션 (transaction)>, 없음 실행이다 :
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ 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>
결과는 다음과 같습니다 :