English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Тег <sql:update>

Стандартная библиотека тегов JSP

Тег <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                Переменная для хранения числа затронутых строк                Нет                Нет
                Область действия                Действие var                Нет                Страница

    Пример программы

Сначала вам нужно создать таблицу Employees в базе данных TEST, а затем добавить несколько записей в таблицу, подробные шаги см. ниже:

    Шаг 1:

Откройте CMD, переместите каталог к установке:

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

    Шаг 2:

Вход в базу данных:

C:\Program Files\MySQL\bin>mysql -u root -p
Введите пароль: ********
mysql>

    Шаг 3:

Создайте таблицу Employees в базе данных TEST:

mysql> use TEST;
mysql> create table Employees
    (
     id int not null,
     age int not null,
     first varchar(255),
     last varchar(255)
    ;
Запрос успешно выполнен, затронуты 0 строк (0.08 сек)
mysql>

    Создание записи данных:

В конце концов, создайте несколько записей в таблице Employees:

mysql> INSERT INTO Employees VALUES (100, 18, 'Zara', 'Ali');
Запрос успешно выполнен, затронуты 1 строка (0.05 сек)
 
mysql> INSERT INTO Employees VALUES (101, 25, 'Mahnaz', 'Fatma');
Запрос выполнен успешно, изменено 1 строка (0.00 сек)
 
mysql> INSERT INTO Employees VALUES (102, 30, 'Zaid', 'Khan');
Запрос выполнен успешно, изменено 1 строка (0.00 сек)
 
mysql> INSERT INTO Employees VALUES (103, 28, 'Sumit', 'Mittal');
Запрос выполнен успешно, изменено 1 строка (0.00 сек)
 
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>ID работника</th>
<th>Имя</th>
<th>Фамилия</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 и DELETE заявлений аналогичен методу INSERT заявлений.

Если необходимо использовать переменные в sql:update, можно использовать sql:param.

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

Стандартная библиотека тегов JSP