JSP - Truy cập cơ sở dữ liệu
Trong chương này, chúng ta sẽ thảo luận về cách truy cập cơ sở dữ liệu với JSP. Chúng tôi cho rằng bạn đã hiểu rõ về cách hoạt động của ứng dụng JDBC. Trước khi bắt đầu với việc truy cập cơ sở dữ liệu thông qua JSP, hãy đảm bảo rằng bạn đã thiết lập môi trường JDBC phù hợp cùng với cơ sở dữ liệu.
Để biết thêm chi tiết về cách truy cập cơ sở dữ liệu bằng JDBC và thiết lập môi trường của nó, bạn có thể xem qua Hướng dẫn JDBC của chúng tôi .
Để bắt đầu với khái niệm cơ bản, chúng ta hãy tạo một bảng và tạo một vài bản ghi trong bảng đó như sau:
Tạo bảng
Để tạo Employees trong cơ sở dữ liệu EMP, sử dụng các bước sau:
Bước 1
Mở một 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 Employee bảng 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 hãy tạo một vài bản ghi trong Employee 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>CHỌN hoạt động
Ví dụ sau cho thấy cách chúng ta có thể thực thi SQL SELECT câu lệnh sử dụng JTSL trong lập trình JSP -
<%@ page import = "java.io.*,java.util.*,java.sql.*"%>
<%@ page import = "javax.servlet.http.*,javax.servlet.*" %>
<%@ 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>SELECT Operation</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, 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  
          
       
      
INSERT hoạt động
Ví dụ sau đây cho thấy cách chúng ta có thể thực thi câu lệnh SQL INSERT sử dụng JTSL trong lập trình JSP:
<%@ page import = "java.io.*,java.util.*,java.sql.*"%>
<%@ page import = "javax.servlet.http.*,javax.servlet.*" %>
<%@ 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>JINSERT Operation</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 = "result">
         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  
         Nuha  
         Ali  
         2  
          
       
      
Thao tác DELETE
Ví dụ sau cho thấy cách chúng ta có thể thực thi SQL DELETE câu lệnh sử dụng JTSL trong lập trình JSP -
<%@ page import = "java.io.*,java.util.*,java.sql.*"%>
<%@ page import = "javax.servlet.http.*,javax.servlet.*" %>
<%@ 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>DELETE Operation</title>
   </head>
   
   <body>
      <sql:setDataSource var = "snapshot" driver = "com.mysql.jdbc.Driver"
         url = "jdbc:mysql://localhost/TEST"
         user = "root" password = "pass123"/>
 
      <c:set var = "empId" value = "103"/>
 
      <sql:update dataSource = "${snapshot}" var = "count">
         DELETE FROM Employees WHERE Id = ?
         <sql:param value = "${empId}" />
      </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  
          
       
      
CẬP NHẬT Hoạt động
Ví dụ sau cho thấy cách chúng ta có thể thực thi SQL UPDATE câu lệnh sử dụng JTSL trong lập trình JSP -
<%@ page import = "java.io.*,java.util.*,java.sql.*"%>
<%@ page import = "javax.servlet.http.*,javax.servlet.*" %>
<%@ 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>DELETE Operation</title>
   </head>
   
   <body>
      <sql:setDataSource var = "snapshot" driver = "com.mysql.jdbc.Driver"
         url = "jdbc:mysql://localhost/TEST"
         user = "root" password = "pass123"/>
 
      <c:set var = "empId" value = "102"/>
 
      <sql:update dataSource = "${snapshot}" var = "count">
         UPDATE Employees SET WHERE last = 'Ali'
         <sql:param value = "${empId}" />
      </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  
         Ali  
         30