Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> प्रोग्रामिंग

JSP में ट्रांजैक्शन का उपयोग करके क्वेरीज़ को कैसे समूहित करें?


<sql:transaction> टैग का उपयोग <sql:query> और <sql:update> टैग्स को ट्रांजैक्शन में समूहित करने के लिए किया जाता है। आप <sql:transaction> टैग के अंदर जितने चाहें उतने <sql:query> और <sql:update> टैग्स स्टेटमेंट्स के रूप में रख सकते हैं ताकि एक सिंगल ट्रांजैक्शन बनाया जा सके।

यह सुनिश्चित करता है कि नेस्टेड कार्यों द्वारा किए गए डेटाबेस संशोधन या तो कमिट हों या रोल बैक हों यदि किसी नेस्टेड कार्य द्वारा कोई अपवाद फेंका जाता है।

विशेषताएं

<sql:transaction> टैग में निम्नलिखित विशेषताएं होती हैं:

विशेषता विवरण आवश्यक डिफ़ॉल्ट
dataSource उपयोग करने के लिए डेटाबेस कनेक्शन (डिफ़ॉल्ट को ओवरराइड करता है) नहीं डिफ़ॉल्ट डेटाबेस
isolation ट्रांजैक्शन आइसोलेशन (READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ, या SERIALIZABLE) नहीं डेटाबेस का डिफ़ॉल्ट

उदाहरण

आरंभिक अवधारणा के साथ शुरू करने के लिए, आइए TEST डेटाबेस में एक Students टेबल बनाएं और उसमें कुछ रिकॉर्ड बनाएं:

चरण 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 Students ( id int not null, first varchar (255), last varchar (255), dob date ); Query OK, 0 rows affected (0.08 sec) mysql>

डेटा रिकॉर्ड बनाएं

अब हम Employee टेबल में कुछ रिकॉर्ड बनाएंगे:

mysql> INSERT INTO Students VALUES (100, 'Zara', 'Ali', '2002/05/16'); Query OK, 1 row affected (0.05 sec) mysql> INSERT INTO Students VALUES (101, 'Mahnaz', 'Fatma', '1978/11/28'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO Students VALUES (102, 'Zaid', 'Khan', '1980/10/10'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO Students VALUES (103, 'Sumit', 'Mittal', '1971/05/08'); Query OK, 1 row affected (0.00 sec) mysql>

आइए अब एक JSP लिखें जो <sql:update> टैग का उपयोग <sql:transaction> टैग के साथ मिलकर एक SQL UPDATE स्टेटमेंट निष्पादित करने के लिए करता है। यहां <sql:transaction> टैग के अंदर का कोड या तो पूरी तरह से निष्पादित होगा या बिल्कुल भी नहीं:

<%@ page import = "java.io.*,java.util.*,java.sql.*"%> 
<%@ page import = "javax.servlet.http.*,javax.servlet.*"%> 
<%@ page import = "java.util.Date,java.text.*" %> 
<%@ 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:transaction टैग</title> 
</head> 
<body> 
<sql:setDataSource var = "snapshot" driver = "com.mysql.jdbc.Driver" 
url = "jdbc:mysql://localhost/TEST" user = "root" password = "cohondob"/> 
<% 
Date DoB = new Date("2001/12/16"); 
int studentId = 100; 
%> 
<sql:transaction dataSource = "${snapshot}"> 
<sql:update var = "count"> 
UPDATE Students SET last = 'Ali' WHERE Id = 102 
</sql:update> 
<sql:update var = "count"> 
UPDATE Students SET last = 'Shah' WHERE Id = 103 
</sql:update> 
<sql:update var = "count"> 
INSERT INTO Students 
VALUES (104,'Nuha', 'Ali', '2010/05/26'); 
</sql:update> 
</sql:transaction> 
<sql:query dataSource = "${snapshot}" var = "result"> 
SELECT * from Students; 
</sql:query> 
<table border = "1" width = "100%"> 
<tr> 
<th>Emp ID</th> 
<th>First Name</th> 
<th>Last Name</th> 
<th>DoB</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.dob}"/></td> 
</tr> 
</c:forEach> 
</table> 
</body> 
</html>

उपरोक्त JSP को एक्सेस करें, निम्नलिखित परिणाम प्रदर्शित होगा:

+-------------+----------------+-----------------+-----------------+ | Emp ID | First Name | Last Name | DoB | +-------------+----------------+-----------------+-----------------+ | 100 | Zara | Ali | 2001-12-16 | | 101 | Mahnaz | Fatma | 1978-11-28 | | 102 | Zaid | Ali | 1980-10-10 | | 103 | Sumit | Mittal | 1971-05-08 | | 104 | Nuha | Ali | 2010-05-26 | +-------------+----------------+-----------------+-----------------+

  1. - JSP में UPDATE SQL कैसे निष्पादित करें?

    <sql:update> टैग एक SQL स्टेटमेंट निष्पादित करता है जो डेटा वापस नहीं करता; उदाहरण के लिए, SQL INSERT, UPDATE, या DELETE स्टेटमेंट्स। विशेषताएं <sql:update> टैग में निम्नलिखित विशेषताएं होती हैं: विशेषता विवरण आवश्यक डिफ़ॉल्ट sql निष्पादित करने के लिए SQL कमांड (ResultSet वापस

  1. - JSP में SQL अपडेट क्वेरी कैसे निष्पादित करें?

    <sql:update> टैग एक SQL स्टेटमेंट निष्पादित करता है जो डेटा वापस नहीं करता; उदाहरण के लिए, SQL INSERT, UPDATE, या DELETE स्टेटमेंट्स। विशेषताएं <sql:update> टैग में निम्नलिखित विशेषताएं होती हैं: विशेषता विवरण आवश्यक डिफ़ॉल्ट sql निष्पादित करने के लिए SQL कमांड (ResultSet वापस

  1. - Python का उपयोग करके SQL टेबल के कॉलम गिनना

    किसी SQL टेबल में मौजूद कॉलम की संख्या गिनने की आवश्यकता पड़ सकती है। यह information_schema.columns के साथ COUNT(*) फ़ंक्शन और WHERE क्लॉज का उपयोग करके किया जाता है। WHERE क्लॉज उस टेबल का नाम निर्दिष्ट करता है जिसके कॉलम गिने जाने हैं। सिंटैक्स SELECT COUNT(*) FROM information_schema.columns WHER