Class SqlMapSessionImpl
- All Implemented Interfaces:
SqlMapExecutor,SqlMapSession,SqlMapTransactionManager
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected booleanThe closed.protected SqlMapExecutorDelegateThe delegate.protected SessionScopeThe session scope. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Closes the session.voidCommits the currently started transaction.intExecutes a mapped SQL DELETE statement.intExecutes a mapped SQL DELETE statement.voidEnds a transaction and rolls back if necessary.intExecutes (flushes) all statements currently batched.Executes (flushes) all statements currently batched.Returns the current connection in use.Returns the DataSource instance currently being used by the SqlMapSession.Get the delegate.Gets a mapped statement by ID.Get the SQL executor.Deprecated.Executes a mapped SQL INSERT statement.Executes a mapped SQL INSERT statement.booleanisClosed()Getter to tell if the session is still open.booleanGet the status of CGLib enhancements.booleanGet the status of lazy loading.voidopen()Start the session.queryForList(String id) Executes a mapped SQL SELECT statement that returns data to populate a number of result objects.queryForList(String id, int skip, int max) Executes a mapped SQL SELECT statement that returns data to populate a number of result objects within a certain range.queryForList(String id, Object paramObject) Executes a mapped SQL SELECT statement that returns data to populate a number of result objects.queryForList(String id, Object paramObject, int skip, int max) Executes a mapped SQL SELECT statement that returns data to populate a number of result objects within a certain range.queryForMap(String id, Object paramObject, String keyProp) Executes a mapped SQL SELECT statement that returns data to populate a number of result objects that will be keyed into a Map.queryForMap(String id, Object paramObject, String keyProp, String valueProp) Executes a mapped SQL SELECT statement that returns data to populate a number of result objects from which one property will be keyed into a Map.queryForObject(String id) Executes a mapped SQL SELECT statement that returns data to populate a single object instance.queryForObject(String id, Object paramObject) Executes a mapped SQL SELECT statement that returns data to populate a single object instance.queryForObject(String id, Object paramObject, Object resultObject) Executes a mapped SQL SELECT statement that returns data to populate the supplied result object.queryForPaginatedList(String id, int pageSize) Deprecated.All paginated list features have been deprecatedqueryForPaginatedList(String id, Object paramObject, int pageSize) Deprecated.All paginated list features have been deprecatedvoidqueryWithRowHandler(String id, RowHandler rowHandler) Executes a mapped SQL SELECT statement that returns a number of result objects that will be handled one at a time by a RowHandler.voidqueryWithRowHandler(String id, Object paramObject, RowHandler rowHandler) Executes a mapped SQL SELECT statement that returns a number of result objects that will be handled one at a time by a RowHandler.voidsetUserConnection(Connection connection) Allows the developer to easily use an externally supplied connection when executing statements.voidStarts a batch in which update statements will be cached before being sent to the database all at once.voidDemarcates the beginning of a transaction scope.voidstartTransaction(int transactionIsolation) Demarcates the beginning of a transaction scope using the specified transaction isolation.intExecutes a mapped SQL UPDATE statement.intExecutes a mapped SQL UPDATE statement.
-
Field Details
-
delegate
The delegate. -
sessionScope
The session scope. -
closed
protected boolean closedThe closed.
-
-
Constructor Details
-
SqlMapSessionImpl
Constructor.- Parameters:
client- - the client that will use the session
-
-
Method Details
-
open
public void open()Start the session. -
isClosed
public boolean isClosed()Getter to tell if the session is still open.- Returns:
- - the status of the session
-
close
public void close()Description copied from interface:SqlMapSessionCloses the session.- Specified by:
closein interfaceSqlMapSession
-
insert
Description copied from interface:SqlMapExecutorExecutes a mapped SQL INSERT statement. Insert is a bit different from other update methods, as it provides facilities for returning the primary key of the newly inserted row (rather than the effected rows). This functionality is of course optional.The parameter object is generally used to supply the input data for the INSERT values.
- Specified by:
insertin interfaceSqlMapExecutor- Parameters:
id- The name of the statement to execute.param- The parameter object (e.g. JavaBean, Map, XML etc.).- Returns:
- The primary key of the newly inserted row. This might be automatically generated by the RDBMS, or selected from a sequence table or other source.
- Throws:
SQLException- the SQL exception
-
insert
Description copied from interface:SqlMapExecutorExecutes a mapped SQL INSERT statement. Insert is a bit different from other update methods, as it provides facilities for returning the primary key of the newly inserted row (rather than the effected rows). This functionality is of course optional.This overload assumes no parameter is needed.
- Specified by:
insertin interfaceSqlMapExecutor- Parameters:
id- The name of the statement to execute.- Returns:
- The primary key of the newly inserted row. This might be automatically generated by the RDBMS, or selected from a sequence table or other source.
- Throws:
SQLException- the SQL exception
-
update
Description copied from interface:SqlMapExecutorExecutes a mapped SQL UPDATE statement. Update can also be used for any other update statement type, such as inserts and deletes. Update returns the number of rows effected.The parameter object is generally used to supply the input data for the UPDATE values as well as the WHERE clause parameter(s).
- Specified by:
updatein interfaceSqlMapExecutor- Parameters:
id- The name of the statement to execute.param- The parameter object (e.g. JavaBean, Map, XML etc.).- Returns:
- The number of rows effected.
- Throws:
SQLException- the SQL exception
-
update
Description copied from interface:SqlMapExecutorExecutes a mapped SQL UPDATE statement. Update can also be used for any other update statement type, such as inserts and deletes. Update returns the number of rows effected.This overload assumes no parameter is needed.
- Specified by:
updatein interfaceSqlMapExecutor- Parameters:
id- The name of the statement to execute.- Returns:
- The number of rows effected.
- Throws:
SQLException- the SQL exception
-
delete
Description copied from interface:SqlMapExecutorExecutes a mapped SQL DELETE statement. Delete returns the number of rows effected.The parameter object is generally used to supply the input data for the WHERE clause parameter(s) of the DELETE statement.
- Specified by:
deletein interfaceSqlMapExecutor- Parameters:
id- The name of the statement to execute.param- The parameter object (e.g. JavaBean, Map, XML etc.).- Returns:
- The number of rows effected.
- Throws:
SQLException- the SQL exception
-
delete
Description copied from interface:SqlMapExecutorExecutes a mapped SQL DELETE statement. Delete returns the number of rows effected.This overload assumes no parameter is needed.
- Specified by:
deletein interfaceSqlMapExecutor- Parameters:
id- The name of the statement to execute.- Returns:
- The number of rows effected.
- Throws:
SQLException- the SQL exception
-
queryForObject
Description copied from interface:SqlMapExecutorExecutes a mapped SQL SELECT statement that returns data to populate a single object instance.The parameter object is generally used to supply the input data for the WHERE clause parameter(s) of the SELECT statement.
- Specified by:
queryForObjectin interfaceSqlMapExecutor- Parameters:
id- The name of the statement to execute.paramObject- The parameter object (e.g. JavaBean, Map, XML etc.).- Returns:
- The single result object populated with the result set data, or null if no result was found
- Throws:
SQLException- the SQL exception
-
queryForObject
Description copied from interface:SqlMapExecutorExecutes a mapped SQL SELECT statement that returns data to populate a single object instance.This overload assumes no parameter is needed.
- Specified by:
queryForObjectin interfaceSqlMapExecutor- Parameters:
id- The name of the statement to execute.- Returns:
- The single result object populated with the result set data, or null if no result was found
- Throws:
SQLException- the SQL exception
-
queryForObject
public Object queryForObject(String id, Object paramObject, Object resultObject) throws SQLException Description copied from interface:SqlMapExecutorExecutes a mapped SQL SELECT statement that returns data to populate the supplied result object.The parameter object is generally used to supply the input data for the WHERE clause parameter(s) of the SELECT statement.
- Specified by:
queryForObjectin interfaceSqlMapExecutor- Parameters:
id- The name of the statement to execute.paramObject- The parameter object (e.g. JavaBean, Map, XML etc.).resultObject- The result object instance that should be populated with result data.- Returns:
- The single result object as supplied by the resultObject parameter, populated with the result set data, or null if no result was found
- Throws:
SQLException- the SQL exception
-
queryForList
Description copied from interface:SqlMapExecutorExecutes a mapped SQL SELECT statement that returns data to populate a number of result objects.The parameter object is generally used to supply the input data for the WHERE clause parameter(s) of the SELECT statement.
- Specified by:
queryForListin interfaceSqlMapExecutor- Parameters:
id- The name of the statement to execute.paramObject- The parameter object (e.g. JavaBean, Map, XML etc.).- Returns:
- A List of result objects.
- Throws:
SQLException- the SQL exception
-
queryForList
Description copied from interface:SqlMapExecutorExecutes a mapped SQL SELECT statement that returns data to populate a number of result objects.This overload assumes no parameter is needed.
- Specified by:
queryForListin interfaceSqlMapExecutor- Parameters:
id- The name of the statement to execute.- Returns:
- A List of result objects.
- Throws:
SQLException- the SQL exception
-
queryForList
Description copied from interface:SqlMapExecutorExecutes a mapped SQL SELECT statement that returns data to populate a number of result objects within a certain range.The parameter object is generally used to supply the input data for the WHERE clause parameter(s) of the SELECT statement.
- Specified by:
queryForListin interfaceSqlMapExecutor- Parameters:
id- The name of the statement to execute.paramObject- The parameter object (e.g. JavaBean, Map, XML etc.).skip- The number of results to ignore.max- The maximum number of results to return.- Returns:
- A List of result objects.
- Throws:
SQLException- the SQL exception
-
queryForList
Description copied from interface:SqlMapExecutorExecutes a mapped SQL SELECT statement that returns data to populate a number of result objects within a certain range.This overload assumes no parameter is needed.
- Specified by:
queryForListin interfaceSqlMapExecutor- Parameters:
id- The name of the statement to execute.skip- The number of results to ignore.max- The maximum number of results to return.- Returns:
- A List of result objects.
- Throws:
SQLException- the SQL exception
-
queryForPaginatedList
public PaginatedList queryForPaginatedList(String id, Object paramObject, int pageSize) throws SQLException Deprecated.All paginated list features have been deprecatedDescription copied from interface:SqlMapExecutorExecutes a mapped SQL SELECT statement that returns data to populate a number of result objects a page at a time.The parameter object is generally used to supply the input data for the WHERE clause parameter(s) of the SELECT statement.
- Specified by:
queryForPaginatedListin interfaceSqlMapExecutor- Parameters:
id- The name of the statement to execute.paramObject- The parameter object (e.g. JavaBean, Map, XML etc.).pageSize- The maximum number of result objects each page can hold.- Returns:
- A PaginatedList of result objects.
- Throws:
SQLException- the SQL exception
-
queryForPaginatedList
Deprecated.All paginated list features have been deprecatedDescription copied from interface:SqlMapExecutorExecutes a mapped SQL SELECT statement that returns data to populate a number of result objects a page at a time.This overload assumes no parameter is needed.
- Specified by:
queryForPaginatedListin interfaceSqlMapExecutor- Parameters:
id- The name of the statement to execute.pageSize- The maximum number of result objects each page can hold.- Returns:
- A PaginatedList of result objects.
- Throws:
SQLException- the SQL exception
-
queryForMap
Description copied from interface:SqlMapExecutorExecutes a mapped SQL SELECT statement that returns data to populate a number of result objects that will be keyed into a Map.The parameter object is generally used to supply the input data for the WHERE clause parameter(s) of the SELECT statement.
- Specified by:
queryForMapin interfaceSqlMapExecutor- Parameters:
id- The name of the statement to execute.paramObject- The parameter object (e.g. JavaBean, Map, XML etc.).keyProp- The property to be used as the key in the Map.- Returns:
- A Map keyed by keyProp with values being the result object instance.
- Throws:
SQLException- the SQL exception
-
queryForMap
public Map queryForMap(String id, Object paramObject, String keyProp, String valueProp) throws SQLException Description copied from interface:SqlMapExecutorExecutes a mapped SQL SELECT statement that returns data to populate a number of result objects from which one property will be keyed into a Map.The parameter object is generally used to supply the input data for the WHERE clause parameter(s) of the SELECT statement.
- Specified by:
queryForMapin interfaceSqlMapExecutor- Parameters:
id- The name of the statement to execute.paramObject- The parameter object (e.g. JavaBean, Map, XML etc.).keyProp- The property to be used as the key in the Map.valueProp- The property to be used as the value in the Map.- Returns:
- A Map keyed by keyProp with values of valueProp.
- Throws:
SQLException- the SQL exception
-
queryWithRowHandler
public void queryWithRowHandler(String id, Object paramObject, RowHandler rowHandler) throws SQLException Description copied from interface:SqlMapExecutorExecutes a mapped SQL SELECT statement that returns a number of result objects that will be handled one at a time by a RowHandler.This is generally a good approach to take when dealing with large sets of records (i.e. hundreds, thousands...) that need to be processed without eating up all of the system resources.
The parameter object is generally used to supply the input data for the WHERE clause parameter(s) of the SELECT statement.
- Specified by:
queryWithRowHandlerin interfaceSqlMapExecutor- Parameters:
id- The name of the statement to execute.paramObject- The parameter object (e.g. JavaBean, Map, XML etc.).rowHandler- A RowHandler instance- Throws:
SQLException- the SQL exception
-
queryWithRowHandler
Description copied from interface:SqlMapExecutorExecutes a mapped SQL SELECT statement that returns a number of result objects that will be handled one at a time by a RowHandler.This is generally a good approach to take when dealing with large sets of records (i.e. hundreds, thousands...) that need to be processed without eating up all of the system resources.
This overload assumes no parameter is needed.
- Specified by:
queryWithRowHandlerin interfaceSqlMapExecutor- Parameters:
id- The name of the statement to execute.rowHandler- A RowHandler instance- Throws:
SQLException- the SQL exception
-
startTransaction
Description copied from interface:SqlMapTransactionManagerDemarcates 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.
- Specified by:
startTransactionin interfaceSqlMapTransactionManager- Throws:
SQLException- the SQL exception
-
startTransaction
Description copied from interface:SqlMapTransactionManagerDemarcates 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.
- Specified by:
startTransactionin interfaceSqlMapTransactionManager- Parameters:
transactionIsolation- the transaction isolation- Throws:
SQLException- the SQL exception
-
commitTransaction
Description copied from interface:SqlMapTransactionManagerCommits the currently started transaction.- Specified by:
commitTransactionin interfaceSqlMapTransactionManager- Throws:
SQLException- If an error occurs while committing the transaction, or the transaction could not be committed.
-
endTransaction
Description copied from interface:SqlMapTransactionManagerEnds a transaction and rolls back if necessary. If the transaction has been started, but not committed, it will be rolled back upon calling endTransaction().- Specified by:
endTransactionin interfaceSqlMapTransactionManager- Throws:
SQLException- If an error occurs during rollback or the transaction could not be ended.
-
startBatch
Description copied from interface:SqlMapExecutorStarts a batch in which update statements will be cached before being sent to the database all at once. This can improve overall performance of updates update when dealing with numerous updates (e.g. inserting 1:M related data).- Specified by:
startBatchin interfaceSqlMapExecutor- Throws:
SQLException- the SQL exception
-
executeBatch
Description copied from interface:SqlMapExecutorExecutes (flushes) all statements currently batched.- Specified by:
executeBatchin interfaceSqlMapExecutor- Returns:
- the number of rows updated in the batch
- Throws:
SQLException- the SQL exception
-
executeBatchDetailed
Description copied from interface:SqlMapExecutorExecutes (flushes) all statements currently batched.- Specified by:
executeBatchDetailedin interfaceSqlMapExecutor- Returns:
- a List of BatchResult objects. There will be one element in the list for each sub-batch executed. A sub-batch is created by adding a statement to the batch that does not equal the prior statement.
- Throws:
SQLException- if a database access error occurs, or the drive does not support batch statementsBatchException- if the driver throws BatchUpdateException- See Also:
-
setUserConnection
Description copied from interface:SqlMapTransactionManagerAllows 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 } }- Specified by:
setUserConnectionin interfaceSqlMapTransactionManager- Parameters:
connection- the new user connection- Throws:
SQLException- the SQL exception
-
getUserConnection
Deprecated.TODO Deprecated.- Specified by:
getUserConnectionin interfaceSqlMapTransactionManager- Returns:
- Current connection
- Throws:
SQLException- the SQL exception
-
getCurrentConnection
Description copied from interface:SqlMapTransactionManagerReturns 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.- Specified by:
getCurrentConnectionin interfaceSqlMapTransactionManager- Returns:
- The current connection or null.
- Throws:
SQLException- the SQL exception
-
getDataSource
Description copied from interface:SqlMapTransactionManagerReturns the DataSource instance currently being used by the SqlMapSession.- Specified by:
getDataSourcein interfaceSqlMapTransactionManager- Returns:
- The DataSource instance currently being used by the SqlMapSession.
-
getMappedStatement
Gets a mapped statement by ID.- Parameters:
id- - the ID- Returns:
- - the mapped statement
-
isLazyLoadingEnabled
public boolean isLazyLoadingEnabled()Get the status of lazy loading.- Returns:
- - the status
-
isEnhancementEnabled
public boolean isEnhancementEnabled()Get the status of CGLib enhancements.- Returns:
- - the status
-
getSqlExecutor
Get the SQL executor.- Returns:
- - the executor
-
getDelegate
Get the delegate.- Returns:
- - the delegate
-