Class SqlMapSessionImpl
- All Implemented Interfaces:
SqlMapExecutor
,SqlMapSession
,SqlMapTransactionManager
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected boolean
The closed.protected SqlMapExecutorDelegate
The delegate.protected SessionScope
The session scope. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Closes the session.void
Commits the currently started transaction.int
Executes a mapped SQL DELETE statement.int
Executes a mapped SQL DELETE statement.void
Ends a transaction and rolls back if necessary.int
Executes (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.boolean
isClosed()
Getter to tell if the session is still open.boolean
Get the status of CGLib enhancements.boolean
Get the status of lazy loading.void
open()
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 deprecatedvoid
queryWithRowHandler
(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.void
queryWithRowHandler
(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.void
setUserConnection
(Connection connection) Allows the developer to easily use an externally supplied connection when executing statements.void
Starts a batch in which update statements will be cached before being sent to the database all at once.void
Demarcates the beginning of a transaction scope.void
startTransaction
(int transactionIsolation) Demarcates the beginning of a transaction scope using the specified transaction isolation.int
Executes a mapped SQL UPDATE statement.int
Executes 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:SqlMapSession
Closes the session.- Specified by:
close
in interfaceSqlMapSession
-
insert
Description copied from interface:SqlMapExecutor
Executes 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:
insert
in 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:SqlMapExecutor
Executes 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:
insert
in 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:SqlMapExecutor
Executes 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:
update
in 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:SqlMapExecutor
Executes 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:
update
in 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:SqlMapExecutor
Executes 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:
delete
in 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:SqlMapExecutor
Executes a mapped SQL DELETE statement. Delete returns the number of rows effected.This overload assumes no parameter is needed.
- Specified by:
delete
in 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:SqlMapExecutor
Executes 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:
queryForObject
in 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:SqlMapExecutor
Executes a mapped SQL SELECT statement that returns data to populate a single object instance.This overload assumes no parameter is needed.
- Specified by:
queryForObject
in 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:SqlMapExecutor
Executes 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:
queryForObject
in 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:SqlMapExecutor
Executes 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:
queryForList
in 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:SqlMapExecutor
Executes a mapped SQL SELECT statement that returns data to populate a number of result objects.This overload assumes no parameter is needed.
- Specified by:
queryForList
in 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:SqlMapExecutor
Executes 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:
queryForList
in 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:SqlMapExecutor
Executes 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:
queryForList
in 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:SqlMapExecutor
Executes 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:
queryForPaginatedList
in 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:SqlMapExecutor
Executes 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:
queryForPaginatedList
in 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:SqlMapExecutor
Executes 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:
queryForMap
in 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:SqlMapExecutor
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.The parameter object is generally used to supply the input data for the WHERE clause parameter(s) of the SELECT statement.
- Specified by:
queryForMap
in 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:SqlMapExecutor
Executes 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:
queryWithRowHandler
in 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:SqlMapExecutor
Executes 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:
queryWithRowHandler
in interfaceSqlMapExecutor
- Parameters:
id
- The name of the statement to execute.rowHandler
- A RowHandler instance- Throws:
SQLException
- the SQL exception
-
startTransaction
Description copied from interface:SqlMapTransactionManager
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.
- Specified by:
startTransaction
in interfaceSqlMapTransactionManager
- Throws:
SQLException
- the SQL exception
-
startTransaction
Description copied from interface:SqlMapTransactionManager
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.
- Specified by:
startTransaction
in interfaceSqlMapTransactionManager
- Parameters:
transactionIsolation
- the transaction isolation- Throws:
SQLException
- the SQL exception
-
commitTransaction
Description copied from interface:SqlMapTransactionManager
Commits the currently started transaction.- Specified by:
commitTransaction
in interfaceSqlMapTransactionManager
- Throws:
SQLException
- If an error occurs while committing the transaction, or the transaction could not be committed.
-
endTransaction
Description copied from interface:SqlMapTransactionManager
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().- Specified by:
endTransaction
in interfaceSqlMapTransactionManager
- Throws:
SQLException
- If an error occurs during rollback or the transaction could not be ended.
-
startBatch
Description copied from interface:SqlMapExecutor
Starts 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:
startBatch
in interfaceSqlMapExecutor
- Throws:
SQLException
- the SQL exception
-
executeBatch
Description copied from interface:SqlMapExecutor
Executes (flushes) all statements currently batched.- Specified by:
executeBatch
in interfaceSqlMapExecutor
- Returns:
- the number of rows updated in the batch
- Throws:
SQLException
- the SQL exception
-
executeBatchDetailed
Description copied from interface:SqlMapExecutor
Executes (flushes) all statements currently batched.- Specified by:
executeBatchDetailed
in 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:SqlMapTransactionManager
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 } }
- Specified by:
setUserConnection
in interfaceSqlMapTransactionManager
- Parameters:
connection
- the new user connection- Throws:
SQLException
- the SQL exception
-
getUserConnection
Deprecated.TODO Deprecated.- Specified by:
getUserConnection
in interfaceSqlMapTransactionManager
- Returns:
- Current connection
- Throws:
SQLException
- the SQL exception
-
getCurrentConnection
Description copied from interface:SqlMapTransactionManager
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.- Specified by:
getCurrentConnection
in interfaceSqlMapTransactionManager
- Returns:
- The current connection or null.
- Throws:
SQLException
- the SQL exception
-
getDataSource
Description copied from interface:SqlMapTransactionManager
Returns the DataSource instance currently being used by the SqlMapSession.- Specified by:
getDataSource
in 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
-