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

Làm cách nào để chuyển một biến ngày trong truy vấn sql trong JSP?

được sử dụng như một hành động lồng nhau cho để cung cấp giá trị ngày và giờ cho một trình giữ chỗ giá trị. Nếu giá trị null được cung cấp, giá trị được đặt thành SQL NULL cho trình giữ chỗ.

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
Giá trị Giá trị của tham số ngày cần đặt (java.util.Date) Không Phần thân
loại 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, chúng ta hãy tạo một bảng đơn giản Học sinh 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 Nhân viên trong TEST cơ sở dữ liệu 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

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 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ờ chúng ta hãy viết một JSP sẽ sử dụng cùng với thẻ và thẻ để thực thi một CẬP NHẬT SQL tuyên bố 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>JSTL sql:dataParam Tag</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 đến 2001/12/16 cho bản ghi có 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      |
+-------------+----------------+-----------------+-----------------+