Thẻ <sql:dateParam> được sử dụng như một hành động lồng nhau cho thẻ <sql:query> và <sql:update> để cung cấp giá trị ngày và giờ cho một placeholder giá trị. Nếu giá trị null được cung cấp, giá trị được đặt thành SQL NULL cho placeholder.
Các thuộc tính
Thẻ <sql:dateParam> có các thuộc tính sau:
| Thuộc tính | Mô tả | Bắt buộc | Mặc định |
|---|---|---|---|
| value | Giá trị tham số ngày cần thiết lập (java.util.Date) | Không | Body |
| type | DATE (chỉ ngày), TIME (chỉ giờ), hoặc TIMESTAMP (ngày và giờ) | Không | TIMESTAMP |
Ví dụ
Để bắt đầu với khái niệm cơ bản, hãy tạo một bảng Students đơ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 Students ( id int not null, first varchar (255), last varchar (255), dob date ); 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 Students VALUES (100, 'Zara', 'Ali', '2002/05/16'); Query OK, 1 row affected (0.05 sec) mysql> INSERT INTO Students VALUES (101, 'Mahnaz', 'Fatma', '1978/11/28'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO Students VALUES (102, 'Zaid', 'Khan', '1980/10/10'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO Students VALUES (103, 'Sumit', 'Mittal', '1971/05/08'); 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> cùng với thẻ <sql:param> và thẻ <sql:dateParam> để thực thi câu lệnh SQL UPDATE cập nhật ngày sinh cho Zara:
<%@ page import = "java.io.*,java.util.*,java.sql.*"%>
<%@ page import = "javax.servlet.http.*,javax.servlet.*" %>
<%@ page import = "java.util.Date,java.text.*" %>
<%@ 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:dataParam</title>
</head>
<body>
<sql:setDataSource var = "snapshot" driver = "com.mysql.jdbc.Driver"
url = "jdbc:mysql://localhost/TEST" user = "root" password = "pass123"/>
<%
Date DoB = new Date("2001/12/16");
int studentId = 100;
%>
<sql:update dataSource = "${snapshot}" var = "count">
UPDATE Students SET dob = ? WHERE Id = ?
<sql:dateParam value = "<%=DoB%>" type = "DATE" />
<sql:param value = "<%=studentId%>" />
</sql:update>
<sql:query dataSource = "${snapshot}" var = "result">
SELECT * from Students;
</sql:query>
<table border = "1" width="100%">
<tr>
<th>Emp ID</th>
<th>First Name</th>
<th>Last Name</th>
<th>DoB</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.dob}"/></td>
</tr>
</c:forEach>
</table>
</body>
</html>
Truy cập JSP trên, kết quả sau sẽ được hiển thị. dob từ 2002/05/16 thành 2001/12/16 cho bản ghi với ID = 100:
+-------------+----------------+-----------------+-----------------+ | Emp ID | First Name | Last Name | DoB | +-------------+----------------+-----------------+-----------------+ | 100 | Zara | Ali | 2001-12-16 | | 101 | Mahnaz | Fatma | 1978-11-28 | | 102 | Zaid | Khan | 1980-10-10 | | 103 | Sumit | Mittal | 1971-05-08 | +-------------+----------------+-----------------+-----------------+