Balise <sql:dateParam>

JSP 标准标签库Bibliothèque de balises standard JSP

La balise <sql:dateParam> est imbriquée avec la balise <sql:query> et la balise <sql:update> pour fournir des espaces réservés de date et d'heure. Si la valeur est null, l'espace réservé est défini sur SQL NULL.

Format de syntaxe

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

Attributes

La balise <sql:dateParam> possède les attributs suivants :

Attribut Description Requis Valeur par défaut
value Le paramètre de date à définir (java.util.Date) non Body
type DATE (date uniquement), TIME (heure uniquement), TIMESTAMP (date et heure) non TIMESTAMP


Démonstration d'exemple

Tout d'abord, créez une table Employees dans la base de données TEST, puis ajoutez quelques enregistrements à la table. Les étapes spécifiques sont les suivantes :

Étape 1 :

Ouvrez CMD et positionnez-vous dans le répertoire d'installation :

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

Étape 2 :

Connectez-vous à la base de données :

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

Étape 3 :

Créez la table Employees dans la base de données TEST :

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>

Créez des enregistrements de données :

Enfin, créez quelques enregistrements dans la table 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>

Maintenant, écrivez un fichier JSP, en utilisant la balise <sql:update>, la balise <sql:param> et la balise <sql:dateParam> pour exécuter une instruction SQL UPDATE afin de mettre à jour l'anniversaire de 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>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>

La sortie est la suivante :

sql-detalparam


JSP 标准标签库Bibliothèque de balises standard JSP

Autres extensions