jodd.db
Class DbSession

java.lang.Object
  extended by jodd.db.DbSession
Direct Known Subclasses:
DbThreadSession

public class DbSession
extends java.lang.Object

Encapsulates db connection. Initially works in auto-commit mode. May start and work with transactions, after commiting/rolling back DbSession goes back to auto-commit mode.

All invoked queries are stored within one session and closed implicitly on session closing.

For managed transaction see DbJtxTransactionManager.


Field Summary
protected  java.sql.Connection connection
           
protected  ConnectionProvider connectionProvider
           
static DbTransactionMode DEFAULT_TX_MODE
          Default DbTransactionMode for all db sessions.
protected  java.util.Set<DbQuery> queries
          Bag of all queries attached to this session.
protected  boolean txActive
           
protected  DbTransactionMode txMode
           
 
Constructor Summary
DbSession(ConnectionProvider connectionProvider)
          Creates new database session with default transaction mode and in autocommit mode.
 
Method Summary
 void beginTransaction()
          Starts transaction with default transaction mode.
 void beginTransaction(DbTransactionMode mode)
          Starts a transaction.
protected  void checkActiveTx()
           
protected  void checkClosedTx()
           
protected  void checkOpenSession()
           
 void closeSession()
          Closes current session and all allocated resources.
protected  void closeTx()
          Closes current transaction.
 void commitTransaction()
          Commit the current transaction, writing any unflushed changes to the database.
 java.sql.Connection getConnection()
          Returns current connection.
 int getTotalActiveQueries()
          Returns total number of queries assigned to this session.
 int getTotalQueries()
          Returns total number of queries assigned to this session.
 boolean isSessionClosed()
          Indicates whether a session is open.
 boolean isTransactionActive()
          Indicate whether a transaction is in progress.
protected  void openConnectionForQuery()
          Opens connection in autocommit mode, if already not opened.
protected  void openTx()
          Opens a transaction.
 void rollbackTransaction()
          Roll back the current transaction.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_TX_MODE

public static DbTransactionMode DEFAULT_TX_MODE
Default DbTransactionMode for all db sessions.


connectionProvider

protected final ConnectionProvider connectionProvider

connection

protected java.sql.Connection connection

queries

protected java.util.Set<DbQuery> queries
Bag of all queries attached to this session. Explicitly closed queries remains in the bag. If null session is closed;


txActive

protected boolean txActive

txMode

protected DbTransactionMode txMode
Constructor Detail

DbSession

public DbSession(ConnectionProvider connectionProvider)
Creates new database session with default transaction mode and in autocommit mode.

Method Detail

closeSession

public void closeSession()
Closes current session and all allocated resources. All attached queries are closed. If a transaction is still active, exception occurs. Database connection is returned to the ConnectionProvider. Closed session is no longer available for usage.


isSessionClosed

public boolean isSessionClosed()
Indicates whether a session is open.


getTotalQueries

public int getTotalQueries()
Returns total number of queries assigned to this session.


getTotalActiveQueries

public int getTotalActiveQueries()
Returns total number of queries assigned to this session.


getConnection

public java.sql.Connection getConnection()
Returns current connection.

See Also:
attachQuery(DbQuery)

openConnectionForQuery

protected void openConnectionForQuery()
Opens connection in autocommit mode, if already not opened.


isTransactionActive

public boolean isTransactionActive()
Indicate whether a transaction is in progress.


openTx

protected void openTx()
Opens a transaction.


closeTx

protected void closeTx()
Closes current transaction.


beginTransaction

public void beginTransaction(DbTransactionMode mode)
Starts a transaction.


beginTransaction

public void beginTransaction()
Starts transaction with default transaction mode.


commitTransaction

public void commitTransaction()
Commit the current transaction, writing any unflushed changes to the database. Transaction mode is closed.


rollbackTransaction

public void rollbackTransaction()
Roll back the current transaction. Transaction mode is closed.


checkOpenSession

protected void checkOpenSession()

checkClosedTx

protected void checkClosedTx()

checkActiveTx

protected void checkActiveTx()


Copyright ©2008 Jodd Team