| |
|
| com.ibatis.sqlmap.client.SqlMapTransactionManager
SqlMapTransactionManager | public interface SqlMapTransactionManager (Code) | | This interface declares methods for demarcating SQL Map transactions.
See Also: SqlMapSession See Also: See Also: SqlMapClient |
Method Summary | |
public void | commitTransaction() Commits the currently started transaction. | public void | endTransaction() Ends a transaction and rolls back if necessary. | public Connection | getCurrentConnection() Returns the current connection in use. | public DataSource | getDataSource() Returns the DataSource instance currently being used by the SqlMapSession. | public Connection | getUserConnection() Returns the current user supplied connection as set by setUserConnection(). | public void | setUserConnection(Connection connnection) 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. | public void | startTransaction() Demarcates the beginning of a transaction scope. | public void | startTransaction(int transactionIsolation) Demarcates the beginning of a transaction scope using the specified transaction
isolation. |
commitTransaction | public void commitTransaction() throws SQLException(Code) | | Commits the currently started transaction.
throws: SQLException - If an error occurs while committing the transaction, orthe transaction could not be committed. |
endTransaction | public void endTransaction() throws SQLException(Code) | | 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().
throws: SQLException - If an error occurs during rollback or the transaction couldnot be ended. |
getCurrentConnection | public Connection getCurrentConnection() throws SQLException(Code) | | 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.
The current connection or null. throws: SQLException - |
getDataSource | public DataSource getDataSource()(Code) | | Returns the DataSource instance currently being used by the SqlMapSession.
The DataSource instance currently being used by the SqlMapSession. |
getUserConnection | public Connection getUserConnection() throws SQLException(Code) | | Returns the current user supplied connection as set by setUserConnection().
TODO : DEPRECATED
The current user supplied connection. throws: SQLException - |
setUserConnection | public void setUserConnection(Connection connnection) throws SQLException(Code) | | 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
}
}
Parameters: connnection - throws: SQLException - |
startTransaction | public void startTransaction() throws SQLException(Code) | | 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.
throws: java.sql.SQLException - If an error occurs while starting the transaction, orthe transaction could not be started. |
startTransaction | public void startTransaction(int transactionIsolation) throws SQLException(Code) | | 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.
throws: java.sql.SQLException - If an error occurs while starting the transaction, orthe transaction could not be started. |
|
|
|