English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

<sql:dateParam> tag

Bibliothèque de balises standard JSP

The <sql:dateParam> tag is used in conjunction with the <sql:query> tag and the <sql:update> tag to provide placeholders for dates and times. If it is a null value, the placeholder is set to SQL NULL.

Syntax format

<sql:dateParam value="<string>" type="<string>"/>

Attribute

The <sql:dateParam> tag has the following attributes:

AttributeDescriptionIs it necessaryDefault value
                value                Date parameter to be set (java.util.Date)                No                Body
                type                DATE (only date), TIME (only time), TIMESTAMP (date and time)                No                TIMESTAMP

Example demonstration

Firstly, you need to create an Employees table in the TEST database and then add several records to the table. The specific operation steps are as follows:

    Step1:

Open CMD, change the directory to the installation directory:

C:\>
C:\>cd Program Files\MySQL\bin
C:\Program Files\MySQL\bin>

    Step2:

Log in to the database:

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

    Step3:

Establish the Employees table in the TEST database:

mysql> use TEST;
mysql> create table Students
    (
     id int not null,
     first varchar (255),
     last varchar (255),
     date of birth
    );
Query OK, 0 rows affected (0.08 sec)
mysql>

创建数据记录:

最后,在 Students 表中创建几条记录:

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>

现在编写JSP文件,使用<sql:update>标签、<sql:param>标签和<sql:dateParam>标签来执行SQL UPDATE语句,更新Zara的生日:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%@ page import="java.util.Date,java.text.*" %>
<%@ 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>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>ID Employé</th>
   <th>Nom de naissance</th>
   <th>Nom de famille</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>

Résultat de l'exécution suivant :

Bibliothèque de balises standard JSP