JSP JSTL <sql:update>标签:更新数据

<sql:update> 标签用于使用 update、delete 和 insert 等 SQL 语句更新数据库记录,并返回影响的记录行数。

语法:

<sql:update sql="sqlUpdate"
  [dataSource="dataSource"]
  [var="varName"][scope="{page|request|session|application}"]/>

含有查询语句的语法如下:

<sql:update sql="sqlUpdate"
            [dataSource="dataSource"]
            [var="varName"][scope="{page|request|session|application}"]>
  <sql:param>actions
    </sql:update>

含有条件查询的语法如下:

<sql:update[dataSource="dataSource"][var="varName"][scope="{page|request|session|application}"]>
  update statement
  optional<sql:param>actions
</sql:update>

<sql:update>标签各属性的详细介绍如表所示。

<sql:update>标签属性
属性 类型 描述 引用 EL
sql String 更新数据记录的SQL语句 可以
dataSource String,javax.sql.DataSource 使用的数据源对象 可以
var String 存储更新记录数量的变量 不可以
scope String 变量的存储范围 不可以

示例1

应用 <sql:setDataSource> 标签连接 MySQL 数据库 db_testJSTL,并应用 <sql:update> 标签向数据表 tb_user 中插入一条记录,并显示全部数据表记录,关键代码如下:

<%@page language="java" contentType="text/html;charset=GBK" pageEncoding="GBK"%>
  <%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
      <sql:setDataSource driver="com.mysql.jdbc.Driver"
                         url="jdbc:mysql://localhost:3306/db_testjstl"user="root"
                         password="111"/>
      <sql:update sql="INSERT INTO tb_user(username,pwd)VALUES('无语','111')"/>
      <table width="300" border="1" cellspacing="0" cellpadding="0" bordercolor="#FFFFFF"
             bordercolordark="#999999" bordercolorlight="#FFFFFF">
        <tr>
          <td align="center">&nbsp;${rs.columnNames[0]}</td>
          <td align="center">&nbsp;${rs.columnNames[1]}</td>
          <td align="center">&nbsp;${rs.columnNames[2]}</td>
        </tr>
        <c:forEach items="${rs.rowsByIndex}" var="row">
          <tr>
            <td>&nbsp;${row[0]}</td>
            <td>&nbsp;${row[1]}</td>
            <td>&nbsp;${row[2]}</td>
          </tr>
        </c:forEach>
      </table>

示例2

应用 <sql:setDataSource> 标签连接 MySQL 数据库 db_testJSTL,并应用 <sql:update> 标签修改数据表 tb_user 中用户名为“无语”的用户密码为 123,关键代码如下:

<%@page language="java" contentType="text/html;charset=GBK" pageEncoding="GBK"%>
  <%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
    <sql:setDataSource driver="com.mysql.jdbc.Driver"
                       url="jdbc:mysql://localhost:3306/db_testjstl"user="root"
                       password="111"/>
    <sql:update sql="UPDATE tb_user SET pwd='123'WHERE username='无语'"/>
    <sql:query var="rs" sql="SELECT*FROM tb_user order by id desc"></sql:query>
<%@page language="java" contentType="text/html;charset=GBK" pageEncoding="GBK"%>
  <%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
    <sql:setDataSource driver="com.mysql.jdbc.Driver"
                       url="jdbc:mysql://localhost:3306/db_testjstl"user="root"
                       password="111"/>
    <sql:update sql="UPDATE tb_user SET pwd='123'WHERE username='无语'"/>
    <sql:query var="rs" sql="SELECT*FROM tb_user order by id desc"></sql:query>

示例3

应用 <sql:setDataSource> 标签连接 MySQL 数据库 db_testJSTL,并应用 <sql:update> 标签删除数据表 tb_user 中用户名为“无语”的用户信息,关键代码如下:

<%@page language="java" contentType="text/html;charset=GBK" pageEncoding="GBK"%>
  <%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
  <sql:setDataSource driver="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/db_testjstl"user="root"
    password="111"/>
    <sql:update sql="DELETE FROM tb_user WHERE username='无语'"/>

典型应用

本示例使用 <sql:update> 标签向数据库中的 tb_goods 表插入一条新记录,使用系统时间生成记录的商品编号,以当前操作系统作为商品名称。应用 <sql:update> 标签向数据库中插入一条数据,关键代码如下:

<%@page pageEncoding="gbk" contentType="text/html;charset=GBK"%>
  <%@taglib prefix="sql" uri="/WEB-INF/sql.tld"%>
    <%@taglib prefix="c" uri="/WEB-INF/c.tld"%>
      <sql:setDataSource driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"
                         url="jdbc:microsoft:sqlserver://localhost:1433;databaseName=db_JSDQ26"
                         user="sa"password=""/>
      <%
         request.setAttribute("id",System.currentTimeMillis()%100);
         request.setAttribute("name",System.getProperty("os.name"));
         request.setAttribute("intro",System.getProperty("user.dir"));
         request.setAttribute("price",2000);
         request.setAttribute("nowPrice",1800);
       %>
        <sql:update
                    sql="insert tb_goods values(${id},'${name}','${intro}',${price},${nowPrice})"/>
        <sql:query var="result"
                   sql="select*from tb_goods where商品编号<=${id}order by商品编号desc"
                   maxRows="6"/>
        <table width="600" border="1" cellpadding="0" cellspacing="0"
               bordercolor="white" bordercolordark="white" bordercolorlight="black">
          <tr align="center" bgcolor="cyan">
            <td width="80">${result.columnNames[0]}</td>
            <td width="140">${result.columnNames[1]}</td>
            <td width="240">${result.columnNames[2]}</td>
            <td width="50">${result.columnNames[3]}</td>
            <td width="50">${result.columnNames[4]}</td>
          </tr>
          <c:forEach items="${result.rowsByIndex}" var="row">
            <tr>
              <td>${row[0]}</td>
              <td>${row[1]}</td>
              <td>${row[2]}</td>
              <td>${row[3]}</td>
              <td>${row[4]}</td>
            </tr>
          </c:forEach>
        </table>

运行结果如下:

商品编号 商品名称 简介 单价 现价
62 Windows 10 D:/Tomcat 5.5/bin 2000.0000 1800.0000
24 衡水老白干 口感好、入口柔 25.0000 25.0000
23 长白山 特价型商品 98.0000 98.0000
20 豆角 口感好、易熟易烂 2.2000 1.9000
20 百里香鸡蛋 口感极佳 6.3000 5.2000
20 八珍猪手 香嫩可口 10.8000 10.8000

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/22847.html

(0)
上一篇 2021年7月20日
下一篇 2021年7月20日

相关推荐

发表回复

登录后才能评论