<sql:param> टैग का उपयोग <sql:query> टैग और <sql:update> टैग के लिए नेस्टेड एक्शन के रूप में किया जाता है ताकि वैल्यू प्लेसहोल्डर के लिए मान प्रदान किया जा सके। यदि null मान प्रदान किया जाता है, तो मान को प्लेसहोल्डर के लिए SQL NULL पर सेट किया जाता है।
विशेषताएं
<sql:param> टैग में निम्नलिखित विशेषताएं होती हैं:
| विशेषता | विवरण | आवश्यक | डिफ़ॉल्ट |
|---|---|---|---|
| value | सेट करने के लिए पैरामीटर का मान | नहीं | बॉडी |
उदाहरण
आरंभिक अवधारणा के साथ शुरू करने के लिए, आइए TEST डेटाबेस में एक Employees टेबल बनाएं और उसमें कुछ रिकॉर्ड बनाएं:
चरण 1
एक कमांड प्रॉम्प्ट खोलें और इंस्टॉलेशन डायरेक्टरी में जाएं:
C:\> C:\>cd Program Files\MySQL\bin C:\Program Files\MySQL\bin>
चरण 2
डेटाबेस में लॉगिन करें:
C:\Program Files\MySQL\bin>mysql -u root -p Enter password: ******** mysql>
चरण 3
TEST डेटाबेस में Employee टेबल बनाएं:
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>
डेटा रिकॉर्ड बनाएं
अब हम Employee टेबल में कुछ रिकॉर्ड बनाएंगे:
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 लिखें जो id = 103 वाले एक रिकॉर्ड को टेबल से हटाने के लिए <sql:update> टैग का उपयोग SQL DELETE स्टेटमेंट निष्पादित करने के लिए करता है:
<%@ page import = "java.io.*,java.util.*,java.sql.*"%>
<%@ page import = "javax.servlet.http.*,javax.servlet.*" %>
<%@ taglib uri = "https://java.sun.com/jsp/jstl/core" prefix = "c"%>
<%@ taglib uri = "https://java.sun.com/jsp/jstl/sql" prefix = "sql"%>
<html>
<head>
<title>JSTL sql:param टैग</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>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>
उपरोक्त JSP को एक्सेस करें, निम्नलिखित परिणाम प्रदर्शित होगा:
+-------------+----------------+-----------------+-----------------+ | Emp ID | First Name | Last Name | Age | +-------------+----------------+-----------------+-----------------+ | 100 | Zara | Ali | 18 | | 101 | Mahnaz | Fatma | 25 | | 102 | Zaid | Khan | 30 | +-------------+----------------+-----------------+-----------------+
आप <sql:param> टैग को SQL UPDATE और SELECT स्टेटमेंट्स के साथ भी उसी तरह आज़मा सकते हैं जैसे हमने इसे DELETE स्टेटमेंट के साथ उपयोग किया है।