Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

com.ibatis.sqlmap.client
Interface SqlMapTransactionManager  view SqlMapTransactionManager download SqlMapTransactionManager.java

All Known Subinterfaces:
SqlMapClient, SqlMapSession

public interface SqlMapTransactionManager

This interface declares methods for demarcating SQL Map transactions.


Method Summary
 void commitTransaction()
          Commits the currently started transaction.
 void endTransaction()
          Ends a transaction and rolls back if necessary.
 java.sql.Connection getCurrentConnection()
          Returns the current connection in use.
 javax.sql.DataSource getDataSource()
          Returns the DataSource instance currently being used by the SqlMapSession.
 java.sql.Connection getUserConnection()
          Deprecated. Use getCurrentConnection() instead.
 void setUserConnection(java.sql.Connection connnection)
          Allows the developer to easily use an externally supplied connection when executing statements.
 void startTransaction()
          Demarcates the beginning of a transaction scope.
 void startTransaction(int transactionIsolation)
          Demarcates the beginning of a transaction scope using the specified transaction isolation.
 

Method Detail

startTransaction

public void startTransaction()
                      throws java.sql.SQLException
Demarcates the beginning of a transaction scope. Transactions must be properly committed or rolled back to be effective. Use the following pattern when working with transactions:
 try {
   sqlMap.startTransaction();
   // do work
   sqlMap.commitTransaction();
 } finally {
   sqlMap.endTransaction();
 }
 

Always call endTransaction() once startTransaction() has been called.


startTransaction

public void startTransaction(int transactionIsolation)
                      throws java.sql.SQLException
Demarcates the beginning of a transaction scope using the specified transaction isolation. Transactions must be properly committed or rolled back to be effective. Use the following pattern when working with transactions:
 try {
   sqlMap.startTransaction(Connection.TRANSACTION_REPEATABLE_READ);
   // do work
   sqlMap.commitTransaction();
 } finally {
   sqlMap.endTransaction();
 }
 

Always call endTransaction() once startTransaction() has been called.


commitTransaction

public void commitTransaction()
                       throws java.sql.SQLException
Commits the currently started transaction.


endTransaction

public void endTransaction()
                    throws java.sql.SQLException
Ends a transaction and rolls back if necessary. If the transaction has been started, but not committed, it will be rolled back upon calling endTransaction().


setUserConnection

public void setUserConnection(java.sql.Connection connnection)
                       throws java.sql.SQLException
Allows the developer to easily use an externally supplied connection when executing statements.

Important: Using a user supplied connection basically sidesteps the transaction manager, so you are responsible for appropriately. Here's a (very) simple example (throws SQLException):

 try {
   Connection connection = dataSource.getConnection();
   sqlMap.setUserConnection(connection);
   // do work
   connection.commit();
 } catch (SQLException e) {
     try {
       if (connection != null) commit.rollback();
     } catch (SQLException ignored) {
       // generally ignored
     }
     throw e;  // rethrow the exception
 } finally {
   try {
     if (connection != null) connection.close();
   } catch (SQLException ignored) {
     // generally ignored
   }
 }
 


getUserConnection

public java.sql.Connection getUserConnection()
                                      throws java.sql.SQLException
Deprecated. Use getCurrentConnection() instead.

Returns the current user supplied connection as set by setUserConnection().

TODO : DEPRECATED


getCurrentConnection

public java.sql.Connection getCurrentConnection()
                                         throws java.sql.SQLException
Returns the current connection in use. If no connection exists null will be returned. There may be no connection if no transaction has been started, and if no user provided connection has been set.


getDataSource

public javax.sql.DataSource getDataSource()
Returns the DataSource instance currently being used by the SqlMapSession.