×
JSP 教程JSP 简介JSP 开发环境搭建Eclipse JSP/ServletJSP 结构JSP 生命周期JSP 语法JSP 指令JSP 动作元素JSP 隐含对象JSP 客户端请求JSP 服务器响应JSP HTTP 状态码JSP 表单处理JSP 过滤器JSP Cookies 处理JSP SessionJSP 文件上传JSP 日期处理JSP 页面重定向JSP 点击量统计JSP 自动刷新JSP 发送邮件

JSP 高级教程

JSP 标准标签库(JSTL)JSP 连接数据库JSP XML 数据处理JSP JavaBeanJSP 自定义标签JSP 表达式语言JSP 异常处理JSP 调试JSP 国际化

<sql:update> 标签


JSP 标准标签库(JSTL)JSP 标准标签库(JSTL)


<sql:update>标签用来执行一个没有返回值的SQL语句,比如SQL INSERT,UPDATE,DELETE语句。

语法格式

<sql:update var="<string>" scope="<string>" sql="<string>" dataSource="<string>"/>

属性

<sql:update>标签有如下属性:

属性 描述 是否必要 默认值
sql 需要执行的SQL命令(不返回ResultSet对象) Body
dataSource 所使用的数据库连接(覆盖默认值) 默认数据库
var 用来存储所影响行数的变量
scope var属性的作用域 Page


程序示例

首先,需要在TEST数据库中建一个Employees表,然后往表中添加几条记录,具体操作步骤如下:

步骤1:

打开CMD,将目录转至安装目录下:

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

步骤2:

登陆数据库:

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

步骤3:

在TEST数据库中建立Employees表:

mysql> use TEST;
mysql> create table Employees
    (
     id int not null,
     age int not null,
     first varchar (255),
     last varchar (255)
    );
Query OK, 0 rows affected (0.08 sec)
mysql>

创建数据记录:

最后,在Employees表中创建几条记录:

mysql> INSERT INTO Employees VALUES (100, 18, 'Zara', 'Ali');
Query OK, 1 row affected (0.05 sec)
 
mysql> INSERT INTO Employees VALUES (101, 25, 'Mahnaz', 'Fatma');
Query OK, 1 row affected (0.00 sec)
 
mysql> INSERT INTO Employees VALUES (102, 30, 'Zaid', 'Khan');
Query OK, 1 row affected (0.00 sec)
 
mysql> INSERT INTO Employees VALUES (103, 28, 'Sumit', 'Mittal');
Query OK, 1 row affected (0.00 sec)
 
mysql>

现在,编写JSP文件,使用<sql:update>标签来执行SQL INSERT语句:

<%@ 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.*" %>
<%@ 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:update 标签</title>
</head>
<body>
 
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost/TEST"
     user="root"  password="pass123"/>

<sql:update dataSource="${snapshot}" var="count">
   INSERT INTO Employees VALUES (104, 2, 'Nuha', 'Ali');
</sql:update>

<sql:query dataSource="${snapshot}" var="result">
   SELECT * from Employees;
</sql:query>
 
<table border="1" width="100%">
<tr>
<th>Emp ID</th>
<th>First Name</th>
<th>Last Name</th>
<th>Age</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.age}"/></td>
</tr>
</c:forEach>
</table>

</body>
</html>

运行结果如下:

sql-update

SQL UPDATE 和 DELETE 语句使用方法与 INSERT 语句相似。

sql:update 中如果需要使用变量可以使用 sql:param

<sql:update dataSource="${snapshot}" var="count">
  DELETE FROM Employees WHERE Id = ?
  <sql:param value="${empId}" />
</sql:update>


JSP 标准标签库(JSTL)JSP 标准标签库(JSTL)


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)