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

Das <sql:param>-Tag

JSP-Standard-Tag-Bibliothek

Das <sql:param>-Tag wird mit den <sql:query>- und <sql:update>-Tags verschachtelt verwendet, um einen Wertspalmar zu bieten. Wenn es sich um einen null-Wert handelt, wird der Platzhalter auf SQL NULL gesetzt.

Syntax

<sql:param value="<string>"/>

Eigenschaft

Die <sql:param>-Tag hat folgende Eigenschaften:

EigenschaftBeschreibungNotwendigkeitStandardwert
                value                Notwendige Parameterwerte                Nein                Body

Beispiel

Zunächst müssen Sie in der Datenbank TEST eine Tabelle Employees erstellen und einige Zeilen in die Tabelle einfügen. Die spezifischen Schritte sind wie folgt:

    Schritt1:

Öffnen Sie die CMD, wechseln Sie zum Installationsverzeichnis:

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

    Schritt2:

Datenbank anmelden:

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

    Schritt3:

In der Datenbank TEST wird die Tabelle Employees erstellt:

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 DELETE语句来删除id=103的记录:

<%@ 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:param Tag</title>
</head>
<body>
 
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost/TEST"
     user="root" password="pass123"/>
<c:set var="empId" value="103"/>
<sql:update dataSource="${snapshot}" var="count">
  DELETE FROM Employees WHERE Id = ?
  <sql:param value="${empId}" />
</sql:update>
<sql:query dataSource="${snapshot}" var="result">
   SELECT * from Employees;
</sql:query>
 
<table border="1" width="100%">
<tr>
<th> Mitarbeiter-ID</th>
<th> Vorname</th>
<th> Nachname</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>

Das Ausführungsresultat ist wie folgt:

Die Verwendung von <sql:param> im Rahmen von SQL UPDATE- und SELECT-Anweisungen ist ähnlich wie in DELETE.

JSP-Standard-Tag-Bibliothek