JSTL dateParam Tag provides the value of the date parameter. In SQL update statement, date paramter is sent using JSTL dateParam tag.
Syntax
<sql:dateParam value=”<string>” type=”<string>”/>
JSTL Param Tag has following attribute.
1. value Attribute: Specifies the value of the date parameter.
2. type Attribute: Specifies the type of the parameter. It can be DATE , TIME or TIMESTAMP. TIMESTAMP is the default value.
JSTL SQL date param Tag Example:
To start with basic concept, let us create a simple table Students table in TEST database and create few records in that table as follows:
<%@ 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("12-08-1987");
int empId = 1111;
%>
<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>
Now try to access above JSP, which should display the following result:
| Emp ID | First Name | Last Name | DOB |
|---|---|---|---|
| 1111 | Dinesh | Rajput | 12-08-1987 |
| 2222 | Sweety | Rajput | 20-11-1989 |

