Etiqueta <sql:update>

JSP 标准标签库Biblioteca de etiquetas estándar de JSP

La etiqueta <sql:update> se utiliza para ejecutar una sentencia SQL que no devuelve un valor, como sentencias INSERT, UPDATE, DELETE de SQL.

Sintaxis

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

Atributos

La etiqueta <sql:update> tiene los siguientes atributos:

Atributo Descripción Requerido Valor predeterminado
sql Comando SQL a ejecutar (no devuelve un objeto ResultSet) no Body
dataSource Conexión de base de datos a utilizar (anula el valor predeterminado) no Base de datos predeterminada
var Variable utilizada para almacenar el número de filas afectadas no Ninguno
scope Alcance del atributo var no Page


Ejemplo de programa

Primero, necesita crear una tabla Employees en la base de datos TEST y luego agregar algunos registros a la tabla. Los pasos específicos son los siguientes:

Paso 1:

Abra CMD, cambie el directorio al directorio de instalación:

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

Paso 2:

Inicie sesión en la base de datos:

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

Paso 3:

Cree la tabla Employees en la base de datos TEST:

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>

Crear registros de datos:

Por último, cree varios registros en la tabla 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>

Ahora, escriba un archivo JSP y use la etiqueta <sql:update> para ejecutar la sentencia 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>

El resultado de la ejecución es el siguiente:

sql-update

El uso de las sentencias SQL UPDATE y DELETE es similar al de la sentencia INSERT.

En sql:update, si necesita usar variables, puede usarsql:param。

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

JSP 标准标签库Biblioteca de etiquetas estándar de JSP

Otras extensiones