Latest web development tutorials

<Sql: transaction> tag

JSP standard Tag Library JSP standard Tag Library

<Sql: transaction> à la balise <sql: query> et <sql: update> tag pour emballer transaction. Vous pouvez être un grand nombre de <sql: query> et <sql: mise à jour> Load Operations <sql: transaction>, les transformant en une seule transaction.

Il veille à ce que des modifications à la base de données au lieu d'être soumis doit être annulée.

syntaxe

<sql:transaction dataSource="<string>" isolation="<string>"/>

propriété

<Sql: transaction> tag possède les attributs suivants:

propriété description le cas échéant Par défaut
dataSource Utilisé par la base de données (pour remplacer la valeur par défaut) aucun base de données par défaut
isolement niveau d'isolement de transaction (READ_COMMITTED ,, READ_UNCOMMITTED, REPEATABLE_READ ou SERIALIZABLE) aucun La base de données par défaut


Exemples Démo

Tout d'abord, vous devez construire dans un test table Employés de base de données, puis ajoutez quelques enregistrements à la table, les étapes sont les suivantes:

Etape 1:

Ouvrez le CMD, allez dans le répertoire du répertoire d'installation:

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

Étape 2:

Connexion Base de données:

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

Etape 3:

ESSAI établir table Employés dans la base de données:

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>

Créer un enregistrement de données:

Enfin, créer quelques enregistrements de la table Employés:

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>

Maintenant écrire des fichiers JSP, utilisez le <sql: update> et <sql: transaction> pour exécuter des instructions UPDATE SQL. Dans <sql: transaction> Le code est pas exécutée, est aucune Exécution:

<%@ 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.*"%>
<%@ 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("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>

Les résultats sont les suivants:

sql-transcation


JSP standard Tag Library JSP standard Tag Library