jstl <sql:dateParam>标签

<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目录下。

运行上述项目代码,得到以下结果如下 -


上一篇: Jstl教程 下一篇: JSP+MySQL实例