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)                لا                الجسم
                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');
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>

Now, write a JSP file to use the <sql:update> tag to execute the SQL INSERT statement:

<%@ 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 tag</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>معرف الموظف</th>
<th>الاسم الأول</th>
<th>اسم العائلة</th>
<th>العمر</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