<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">The <i><b><;sql:transaction>;</b></i> tag is used to group <b><i><;sql:query>;</i></b> and <i><b><;sql:update>;</b></i> into transactions. You can put as many <i><b><;sql:query>;</b></i> and <;sql:update>; as statements inside <;sql:transaction>; to make them a single transaction.</p>
<p> It ensures that the database modifications performed by the nested actions are either committed or rolled back if an exception is thrown by any nested action.</p>
<p> JSTL Transaction Tag provides the capability to run SQL statement in a group. You can run multiple SQL statements at a time. It is called one single transaction. In this transaction either all statments run successfully or all fail if one statement does not run successfully. </p>
<p> <b>Syntax</b><br />
<i><;sql:transaction dataSource=&#8221;<;string>;&#8221; isolation=&#8221;<;string>;&#8221;/>;</i><br />
<b><br />
</b> <b>JSTL Transaction Tag has following attribute.</b></p>
<p> <b>1. <i>dataSource </i>Attribute:</b> Specifies the datasource for the transaction.</p>
<p> <b>2. <i>isolation </i>Attribute: </b>Specifies the level of isolation for the transaction. </p>
<p> <b>JSTL SQL Transaction Tag Example:-</b></p>
<pre class="highlight" name="code"><;%@ page import="java.io.*,java.util.*,java.sql.*"%>;
<;%@ page import="javax.servlet.http.*,javax.servlet.*"%>;
<;%@ page import="java.util.Date,java.text.*" %>;

<;%@ 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:transaction Tag<;/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("2013/10/23");
int studentId = 1111;
%>;

<;sql:transaction dataSource="${snapshot}">;
 <;sql:update var="count">;
 UPDATE Students SET firstName = 'Sandhya' WHERE Id = 2222
 <;/sql:update>;
 <;sql:update var="count">;
 UPDATE Students SET fistName = 'Sweetu' WHERE Id = 3333
 <;/sql:update>;
 <;sql:update var="count">;
 INSERT INTO Students 
 VALUES (4444,'Neha', 'Verma', '2013/10/23');
 <;/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>;
</pre>
</div>
<p>
<b>Now try to access above JSP, which should display the following result:</b></p>
<table border="1" style="width: 100%px;">
<tbody>
<tr>
<th>Emp ID</th>
<th>First Name</th>
<th>Last Name</th>
<th>DOB</th>
</tr>
<tr>
<td>1111</td>
<td>Dinesh</td>
<td>Rajput</td>
<td>2013/10/23</td>
</tr>
<tr>
<td>2222</td>
<td>Anu</td>
<td>Rajput</td>
<td>2013/10/23</td>
</tr>
<tr>
<td>2222</td>
<td>Sweetu</td>
<td>Rajput</td>
<td>2013/10/23</td>
</tr>
<tr>
<td>2222</td>
<td>Sandhya</td>
<td>Bansal</td>
<td>2013/10/23</td>
</tr>
</tbody>
</table>
<div style="background-color: pink; border-width: thin; text-align: center;"><b><;<;<a href="https://dineshonjava.com/2013/10/jstl-sql-dateparam-tag-example.html">Previous</a> <;<; ; ; || <a href="https://dineshonjava.com/2013/10/jsp-standard-tag-library-jstl-tutorial.html">Index </a>||  ; >;>;<a href="https://dineshonjava.com/2013/11/jstl-fncontains-function.html">Next</a> >;>;</b></div>
<p>
</div>
<div class="wp-post-navigation"> 
									 <div class="wp-post-navigation-pre"> 
									 <a href="https://dineshonjava.com/jstl-sql-dateparam-tag-example/">Previous</a> 
									 </div> 
									 <div class="wp-post-navigation-next"> 
									 <a href="https://dineshonjava.com/jstl-fncontains-function/">Next</a> 
									 </div> 
									</div>
<script type="text/javascript">
jQuery(document).ready(function($) {
 $.post('https://dineshonjava.com/wp-admin/admin-ajax.php', {action: 'mts_view_count', id: '293'});
});
</script>
Strategy Design Patterns We can easily create a strategy design pattern using lambda. To implement…
Decorator Pattern A decorator pattern allows a user to add new functionality to an existing…
Delegating pattern In software engineering, the delegation pattern is an object-oriented design pattern that allows…
Technology has emerged a lot in the last decade, and now we have artificial intelligence;…
Managing a database is becoming increasingly complex now due to the vast amount of data…
Overview In this article, we will explore Spring Scheduler how we could use it by…