Truy cập Database trong JSP

Trước khi vào chương này, chúng tôi giả sử bạn đã hiểu cách ứng dụng JDBC làm việc. Trước khi bắt đầu với truy cập Database thông qua một JSP, chắc chắn rằng bạn đã cài đặt môi trường JDBC thích hợp cùng với một Database.

Để bắt đầu với các khái niệm cơ bản truy cập Database trong JSP

Chúng ta tạo một bẳng đơn giản và tạo một vài bản ghi trong bảng đó như sau:

Tạo table

Để tạo bảng Employees trong EMP database, bạn theo các bước:

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:

Login vào Database như sau:

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

Bước 3:

Tạo bảng Employee trong TEST database 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 Data Record trong JSP

Cuối cùng, bạn tạo một số record trong Employee table 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>

Hoạt động SELECT trong JSP

Ví dụ sau minh họa cách chúng ta thực thi lệnh SQL SELECT bởi sử dụng JSTL 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="" 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="">
<tr>
   <td><c:out value=""/></td>
   <td><c:out value=""/></td>
   <td><c:out value=""/></td>
   <td><c:out value=""/></td>
</tr>
</c:forEach>
</table>


</body>
</html>

Bây giờ thử truy cập JSP trên, sẽ hiển thị kết quả sau:

Emp IDFirst NameLast NameAge
100ZaraAli18
101MahnazFatma25
102ZaidKhan30
103SumitMittal28

Hoạt động INSERT trong JSP

Ví dụ này minh họa cách chúng ta thực thi lệnh SQL INSERT bởi sử dụng JSTL trong 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="" var="result">
INSERT INTO Employees VALUES (104, 2, 'Nuha', 'Ali');
</sql:update>


<sql:query dataSource="" 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="">
<tr>
   <td><c:out value=""/></td>
   <td><c:out value=""/></td>
   <td><c:out value=""/></td>
   <td><c:out value=""/></td>
</tr>
</c:forEach>
</table>


</body>
</html>

Bây giờ thử truy cập JSP trên, sẽ hiển thị kết quả sau:

Emp IDFirst NameLast NameAge
100ZaraAli18
101MahnazFatma25
102ZaidKhan30
103SumitMittal28
104NuhaAli2

Hoạt động DELETE trong JSP

Ví dụ này minh họa cách chúng ta thực thi lệnh SQL DELETE bởi sử dụng JSTL trong 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="" var="count">
  DELETE FROM Employees WHERE Id = ?
  <sql:param value="" />
</sql:update>


<sql:query dataSource="" 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="">
<tr>
   <td><c:out value=""/></td>
   <td><c:out value=""/></td>
   <td><c:out value=""/></td>
   <td><c:out value=""/></td>
</tr>
</c:forEach>
</table>


</body>
</html>

Bây giờ thử truy cập JSP trên, sẽ hiển thị kết quả sau:

Emp IDFirst NameLast NameAge
100ZaraAli18
101MahnazFatma25
102ZaidKhan30

Hoạt động UPDATE trong JSP

Ví dụ này minh họa cách chúng ta thực thi lệnh SQL UPDATE bởi sử dụng JSTL trong 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="" var="count">
  UPDATE Employees SET last = 'Ali'
  <sql:param value="" />
</sql:update>


<sql:query dataSource="" 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="">
<tr>
   <td><c:out value=""/></td>
   <td><c:out value=""/></td>
   <td><c:out value=""/></td>
   <td><c:out value=""/></td>
</tr>
</c:forEach>
</table>


</body>
</html>

Bây giờ thử truy cập JSP trên, sẽ hiển thị kết quả sau:

Emp IDFirst NameLast NameAge
100ZaraAli18
101MahnazFatma25
102ZaidAli30

Bình luận