<sql:dateParam>
標籤用作<sql:query>
和<sql:update>
標籤的巢狀操作,為值預留位置提供日期和時間值。如果提供了NULL
值,則該值將為預留位置設定為SQL的NULL
。
<sql:dateParam>
標籤具有以下屬性 -
屬性 | 描述 | 必需 | 預設 |
---|---|---|---|
value |
要設定的日期引數的值(java.util.Date ) |
否 | 主體 |
type |
DATE(僅限日期),TIME(僅限時間)或TIMESTAMP(日期和時間) | 否 | TIMESTAMP |
在這個範例中,我們從基礎概念和操作開始,在testdb
資料庫中建立一個student
表,並在該表中建立幾個記錄,參考以下SQL語句:
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(64) NOT NULL DEFAULT '',
`sex` char(3) NOT NULL DEFAULT '0',
`birthday` date DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES ('1', '馬得力', '男', null);
INSERT INTO `student` VALUES ('2', '張小玲', '女', '2001-10-25');
INSERT INTO `student` VALUES ('3', '李雙達', '男', '2000-10-25');
編寫一個JSP,它將使用<sql:update>
標籤以及<sql:param>
和<sql:dataParam>
標籤來執行一個SQL UPDATE語句來更新ID為1
的學生的出生日期 -,檔案:sql_dateParam.jsp 如下所示:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import = "java.util.Date,java.text.*" %>
<%@ page import = "java.io.*,java.util.*,java.sql.*"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>sql:dataParam標籤範例</title>
</head>
<body>
<div style="margin: auto; width: 90%">
<h2>sql:dataParam標籤範例</h2>
<sql:setDataSource var="connection" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/testdb?useSSL=false&characterEncoding=utf8"
user="root" password="123456" />
<!-- 執行更新語句 -->
<%
Date newDate = new Date("2001/11/16");
int studentId = 1;
%>
<sql:update dataSource="${connection}" var="count">
UPDATE student SET birthday = ? WHERE Id = ?
<sql:dateParam value="<%=newDate%>" type="DATE" />
<sql:param value="<%=studentId%>" />
</sql:update>
<!-- 執行查詢語句 -->
<sql:query dataSource="${connection}" var="result">
SELECT * from student;
</sql:query>
<table border="1" width="100%">
<tr>
<th>編號</th>
<th>名字</th>
<th>性別</th>
<th>出生日期</th>
</tr>
<c:forEach var="row" items="${result.rows}">
<tr>
<td><c:out value="${row.id}" /></td>
<td><c:out value="${row.name}" /></td>
<td><c:out value="${row.sex}" /></td>
<td><c:out value="${row.birthday}" /></td>
</tr>
</c:forEach>
</table>
</div>
</body>
</html>
注意:需要將MySQL的連線驅動程式:mysql-connector-java-5.1.40-bin.jar放入到{Webpp}/WEB-INFO/lib目錄下。
執行上述專案程式碼,得到以下結果如下 -