Balise <sql:update>

JSP 标准标签库Bibliothèque de balises standard JSP

La balise <sql:update> est utilisée pour exécuter une instruction SQL qui ne renvoie aucune valeur, telle que les instructions SQL INSERT, UPDATE et DELETE.

Format de syntaxe

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

Attributes

La balise <sql:update> possède les attributs suivants :

Attribut Description Requis Valeur par défaut
sql La commande SQL à exécuter (ne renvoie pas d'objet ResultSet) non Body
dataSource La connexion à la base de données à utiliser (remplace la valeur par défaut) non Base de données par défaut
var La variable utilisée pour stocker le nombre de lignes affectées non Aucune
scope La portée de l'attribut var non Page


Exemple de programme

Tout d'abord, vous devez créer une table Employees dans la base de données TEST, puis ajouter quelques enregistrements à la table. Les étapes spécifiques sont les suivantes :

Étape 1 :

Ouvrez CMD, positionnez-vous dans le répertoire d'installation :

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

Étape 2 :

Connectez-vous à la base de données :

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

Étape 3 :

Créez la table Employees dans la base de données 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>

Créer des enregistrements de données :

Enfin, créez quelques enregistrements dans la table 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>

Maintenant, écrivez un fichier JSP et utilisez la balise <sql:update> pour exécuter une instruction 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>

Le résultat est le suivant :

sql-update

L'utilisation des instructions SQL UPDATE et DELETE est similaire à l'instruction INSERT.

Dans sql:update, si vous devez utiliser des variables, vous pouvez utilisersql:param。

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

JSP 标准标签库Bibliothèque de balises standard JSP

Autres extensions