Tuesday , March 28 2017
Home / jdbc / Transaction Management in JDBC Example

Transaction Management in JDBC Example

In this tutorials, we are going to learn abut Transaction Management in JDBC. A transaction represents a group of operations, used to perform a task.

Atransaction is a set of commands, it will take our database from one consistent state to another consistent state.

Transaction Management in JDBC :

Here are the most important points about Transaction Management in JDBC.

  • A transaction means, it is a group of operations used to perform a task.
  • A transaction can reach either success state or failure state.
  • If all operations are completed successfully then the transaction becomes success.
  • If any one of the operation fail then all remaining operations will be cancelled and finally transaction will reach to fail state.

Transaction Management in JDBC

Types of Transactions :

The basic transactions are of two types.

  • Local Transactions
  • Global / Distributed Transactions

Local Transactions :

If all the operations are executed on one/same database, then it is called as local transaction.

Global / Distributed Transaction :

If the operations are executed on more than one database then it is called as global transactions.

Example : If we transfer the money from account1 to account2 of same bank, then it is called as local transaction. If we transfer the money from account1 to account2 of different banks, then it is called as global or distributed transaction.

JDBC can supports only local transactions. For distributed transactions, we must use either EJB technology or Spring Framework.

Transaction Management in JDBC Example :

We can get the Transaction support in JDBC from Connection interface. The Connection interface given 3 methods to perform Transaction Management in JDBC.

  • setAutoCommit()
  • commit()
  • rollback()

Transaction setAutoCommit() :

Before going to begin the operations, first we need to disable the auto commit mode. This can be done by calling setAutoCommit(false).

By default, all operations done from the java program are going to execute permanently in database. Once the permanent execution happened in database, we can’t revert back them (Transaction Management is not posible).

Transaction commit() :

If all operations are executed successfully, then we commit a transaction manually by calling the commit() method.

Transaction rollback() :

If any one of the operation failed, then we cancel the transaction by calling rollback() method.

connection.setAutoCommit(false);

try{

———-

         ———-

connection.commit();

}catch(Exception e){

connection.rollback();

}

Complete Example :


package com.onlinetutorialspoint.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class Jdbc_TransactionManagement_Example {

    public static void main(String[] args) throws Exception {
        Connection connection = null;
        Statement statement = null;

        try {

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            connection = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/onlinetutorialspoint", "root",
                    "123456");
            connection.setAutoCommit(false);
            statement = connection.createStatement();
            statement
                    .executeUpdate("insert person values ('5001','Hyderabad','Chandra Shekhar')");
            statement
                    .executeUpdate("insert person values ('5002','Banglore','Ram')");
            connection.commit();
            System.out.println("Transaction is commited.");
            statement.close();
            connection.close();
        } catch (Exception e) {
            e.printStackTrace();
            connection.rollback();
        }
    }
}

Transaction is commited.

If we update the code like below,

statement.executeUpdate(“insert person values (‘5003′,’Hyderabad’,’Chandra Shekhar’)”);
statement.executeUpdate(“insert person values (‘5001′,’Banglore’,’Ram’)”);

We can get the Exception like below and the transaction will be roll backed.

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry ‘5001’ for key ‘PRIMARY’
Transaction is rollbacked !

 

About chandrashekhar

Hi Folks, you have reach this so far, that shows you like what you are learning. Then why don't you support us to improve for bettor tutorials by leaving your valuable comments and why not you keep in touch with us for latest updates on your favorite blog @ facebook , twitter , Or Google+ ,

Check Also

JDBC Updatable ResultSet Example

Whenever we create a ResultSet object which never allows us to update the database through …

Leave a Reply

Your email address will not be published. Required fields are marked *