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

Làm cách nào để thực thi truy vấn cập nhật SQL trong JSP?

thẻ thực thi một câu lệnh SQL không trả về dữ liệu; ví dụ: CHÈN SQL, CẬP NHẬT hoặc XÓA tuyên bố.

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
sql Lệnh SQL để thực thi (không nên trả về Bộ kết quả) Không Phần thân
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 trữ số lượng hàng bị ảnh hưởng Không Không có
phạm vi Phạm vi của biến để lưu trữ số lượng hàng bị ảnh hưởng Không Trang

Ví dụ

Để bắt đầu với khái niệm cơ bản, chúng ta hãy tạo một bảng đơn giản Nhân viên 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 bảng Nhân viên trong KIỂM TRA cơ sở dữ liệu 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

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 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ờ chúng ta hãy viết một JSP sẽ sử dụng để thực thi một CHÈN SQL để tạo 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>JSTL sql:update Tag</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">
            INSERT INTO Employees VALUES (104, 2, 'Nuha', 'Ali');
         </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           | 25              |
| 102         | Zaid           | Khan            | 30              |
| 103         | Sumit          | Mittal          | 28              |
| 104         | Nula           | Ali             | 2               |
+-------------+----------------+-----------------+-----------------+

Theo cách tương tự, bạn có thể thử CẬP NHẬT SQL XÓA các câu lệnh trên cùng một bảng.