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

Làm thế nào để thực thi một câu lệnh SQL SELECT trong JSP?

thẻ thực thi câu lệnh SQL SELECT và lưu kết quả trong một biến phạm vi.

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 (phải trả về một 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
maxRows Số lượng kết quả tối đa để lưu trữ trong biến Không Không giới hạn
startRow Số hàng trong kết quả để bắt đầu ghi Không 0
var Tên của biến đại diện cho cơ sở dữ liệu Không Đặt mặc định
phạm vi Phạm vi của biến để hiển thị kết quả từ cơ sở dữ liệu Không Trang

Ví dụ

Để bắt đầu với khái niệm cơ bản, hãy để chúng tôi tạo 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 -

Làm theo các bước sau để tạo bảng Nhân viên -

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 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 ta sẽ tạo một vài bản ghi trong bảng Nhân viên 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 tạo một JSP sẽ sử dụng of để thực thi một câu lệnh SQL SELECT 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:query Tag</title>
   </head>
   <body>
      <sql:setDataSource var = "snapshot" driver = "com.mysql.jdbc.Driver"
         url = "jdbc:mysql://localhost/TEST"
         user = "root" password = "pass123"/>
         <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, sẽ hiển thị kết quả sau -

+-------------+----------------+-----------------+-----------------+
| Emp ID      | First Name     | Last Name       | Age             |
+-------------+----------------+-----------------+-----------------+
| 100         | Zara           | Ali             | 18              |
| 101         | Mahnaz         | Fatma           | 25              |
| 102         | Zaid           | Khan            | 30              |
| 103         | Sumit          | Mittal          | 28              |
+-------------+----------------+-----------------+-----------------+