Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

Cách thực thi SQL UPDATE trong JSP?

Thẻ <sql:update> thực thi câu lệnh SQL không trả về dữ liệu; ví dụ: câu lệnh SQL INSERT, UPDATE, hoặc DELETE.

Các thuộc tính

Thẻ <sql:update> có các thuộc tính sau:

Thuộc tính Mô tả Bắt buộc Mặc định
sql Lệnh SQL cần thực thi (không nên trả về ResultSet) Không Body
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
var Tên biến lưu số dòng bị ảnh hưởng Không Không có
scope Phạm vi của biến lưu số dòng bị ảnh hưởng Không Page

Ví dụ

Để bắt đầu với khái niệm cơ bản, hãy tạo một bảng Employees đơn giản trong cơ sở dữ liệu TEST và tạo một vài bản ghi như sau:

Bước 1

Mở Command Prompt và chuyển đến 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 bảng Employee trong cơ sở dữ liệu TEST như sau:

mysql> use TEST; mysql> create table Employees ( id int not null, age int not null, first varchar (255), last varchar (255) ); Query OK, 0 rows affected (0.08 sec) mysql>

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

Chúng ta sẽ tạo một vài bản ghi trong bảng Employee như sau:

mysql> INSERT INTO Employees VALUES (100, 18, 'Zara', 'Ali'); Query OK, 1 row affected (0.05 sec) mysql> INSERT INTO Employees VALUES (101, 25, 'Mahnaz', 'Fatma'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO Employees VALUES (102, 30, 'Zaid', 'Khan'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO Employees VALUES (103, 28, 'Sumit', 'Mittal'); Query OK, 1 row affected (0.00 sec) mysql>

Bây giờ hãy viết một JSP sử dụng thẻ <sql:update> để thực thi câu lệnh SQL UPDATE cập nhật một bản ghi trong bảng như sau:

<%@ page import = "java.io.*,java.util.*,java.sql.*"%>
<%@ page import = "javax.servlet.http.*,javax.servlet.*" %>
<%@ 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>Thẻ JSTL sql:update</title>
   </head>
   <body>
   <sql:setDataSource var = "snapshot" driver = "com.mysql.jdbc.Driver"
      url = "jdbc:mysql://localhost/TEST"
      user = "root" password = "pass123"/>
      <sql:update dataSource = "${snapshot}" var = "count">
         Update Employees SET age = 30 where id = 101;
      </sql:update>
      <sql:query dataSource = "${snapshot}" var = "result">
         SELECT * from Employees;
      </sql:query>
      <table border = "1" width = "100%">
         <tr>
            <th>Emp ID</th>
            <th>First Name</th>
            <th>Last Name</th>
            <th>Age</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.age}"/></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       | Age             |
+-------------+----------------+-----------------+-----------------+
| 100         | Zara           | Ali             | 18              |
| 101         | Mahnaz         | Fatma           | 30              |
| 102         | Zaid           | Khan            | 30              |
| 103         | Sumit          | Mittal          | 28              |
| 104         | Nula           | Ali             | 2               |
+-------------+----------------+-----------------+-----------------+

Tương tự, bạn có thể thử câu lệnh SQL INSERT và DELETE trên cùng bảng.