Computer >> Máy Tính >  >> Lập trình >> Lập trình

Làm cách nào để nhóm các truy vấn bằng giao dịch trong JSP?

được sử dụng để nhóm vào các giao dịch. Bạn có thể đặt bao nhiêu dưới dạng các câu lệnh bên trong để tạo một giao dịch duy nhất.

Nó đảm bảo rằng các sửa đổi cơ sở dữ liệu được thực hiện bởi các hành động lồng nhau được cam kết hoặc được khôi phục nếu một ngoại lệ được ném ra bởi bất kỳ hành động lồng nhau nào.

Thuộc tính

thẻ có các thuộc tính sau -

Thuộc tính Mô tả Bắt buộc Mặc định
dataSource Kết nối cơ sở dữ liệu để sử dụng (ghi đè mặc định) Không Cơ sở dữ liệu mặc định
cách ly Cách ly giao dịch (READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ hoặc SERIALIZABLE) Không Cơ sở dữ liệu mặc định

Ví dụ

Để bắt đầu với khái niệm cơ bản, hãy để chúng tôi tạo Học sinh trong cơ sở dữ liệu TEST và tạo một vài bản ghi trong bảng đó như sau -

Bước 1

Mở Command Prompt và thay đổi thư mục cài đặt như sau -

C:\>
C:\>cd Program Files\MySQL\bin
C:\Program Files\MySQL\bin>

Bước 2

Đăng nhập vào cơ sở dữ liệu như sau -

C:\Program Files\MySQL\bin>mysql -u root -p
Enter password: ********
mysql>

Bước 3

Tạo Nhân viên trong TEST cơ sở dữ liệu như sau -

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>

Tạo bản ghi dữ liệu

Bây giờ chúng tôi sẽ tạo một vài bản ghi trong Nhân viên bảng như sau -

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>

Bây giờ chúng ta hãy viết một JSP sẽ sử dụng cùng với thẻ để thực thi một CẬP NHẬT SQL tuyên bố. Đây là mã bên trong thẻ sẽ được thực thi hoàn toàn hoặc hoàn toàn không -

<%@ page import = "java.io.*,java.util.*,java.sql.*"%>
<%@ page import = "javax.servlet.http.*,javax.servlet.*"%>
<%@ page import = "java.util.Date,java.text.*" %>
<%@ taglib uri = "https://java.sun.com/jsp/jstl/core" prefix = "c"%>
<%@ taglib uri = "https://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>

Truy cập JSP ở trên, kết quả sau sẽ được hiển thị -

+-------------+----------------+-----------------+-----------------+
| 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          | Mittal          | 1971-05-08      |
| 104         | Nuha           | Ali             | 2010-05-26      |
+-------------+----------------+-----------------+-----------------+