Class DefaultSqlSession

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, SqlSession

    public class DefaultSqlSession
    extends java.lang.Object
    implements SqlSession
    The default implementation for SqlSession. Note that this class is not Thread-Safe.
    Author:
    Clinton Begin
    • Method Summary

      Modifier and Type Method Description
      void clearCache()
      Clears local session cache.
      void close()
      Closes the session.
      void commit()
      Flushes batch statements and commits database connection.
      void commit​(boolean force)
      Flushes batch statements and commits database connection.
      int delete​(java.lang.String statement)
      Execute a delete statement.
      int delete​(java.lang.String statement, java.lang.Object parameter)
      Execute a delete statement.
      java.util.List<BatchResult> flushStatements()
      Flushes batch statements.
      Configuration getConfiguration()
      Retrieves current configuration.
      java.sql.Connection getConnection()
      Retrieves inner database connection.
      <T> T getMapper​(java.lang.Class<T> type)
      Retrieves a mapper.
      int insert​(java.lang.String statement)
      Execute an insert statement.
      int insert​(java.lang.String statement, java.lang.Object parameter)
      Execute an insert statement with the given parameter object.
      void rollback()
      Discards pending batch statements and rolls database connection back.
      void rollback​(boolean force)
      Discards pending batch statements and rolls database connection back.
      void select​(java.lang.String statement, java.lang.Object parameter, ResultHandler handler)
      Retrieve a single row mapped from the statement key and parameter using a ResultHandler.
      void select​(java.lang.String statement, java.lang.Object parameter, RowBounds rowBounds, ResultHandler handler)
      Retrieve a single row mapped from the statement key and parameter using a ResultHandler and RowBounds.
      void select​(java.lang.String statement, ResultHandler handler)
      Retrieve a single row mapped from the statement using a ResultHandler.
      <T> Cursor<T> selectCursor​(java.lang.String statement)
      A Cursor offers the same results as a List, except it fetches data lazily using an Iterator.
      <T> Cursor<T> selectCursor​(java.lang.String statement, java.lang.Object parameter)
      A Cursor offers the same results as a List, except it fetches data lazily using an Iterator.
      <T> Cursor<T> selectCursor​(java.lang.String statement, java.lang.Object parameter, RowBounds rowBounds)
      A Cursor offers the same results as a List, except it fetches data lazily using an Iterator.
      <E> java.util.List<E> selectList​(java.lang.String statement)
      Retrieve a list of mapped objects from the statement key and parameter.
      <E> java.util.List<E> selectList​(java.lang.String statement, java.lang.Object parameter)
      Retrieve a list of mapped objects from the statement key and parameter.
      <E> java.util.List<E> selectList​(java.lang.String statement, java.lang.Object parameter, RowBounds rowBounds)
      Retrieve a list of mapped objects from the statement key and parameter, within the specified row bounds.
      <K,​V>
      java.util.Map<K,​V>
      selectMap​(java.lang.String statement, java.lang.Object parameter, java.lang.String mapKey)
      The selectMap is a special case in that it is designed to convert a list of results into a Map based on one of the properties in the resulting objects.
      <K,​V>
      java.util.Map<K,​V>
      selectMap​(java.lang.String statement, java.lang.Object parameter, java.lang.String mapKey, RowBounds rowBounds)
      The selectMap is a special case in that it is designed to convert a list of results into a Map based on one of the properties in the resulting objects.
      <K,​V>
      java.util.Map<K,​V>
      selectMap​(java.lang.String statement, java.lang.String mapKey)
      The selectMap is a special case in that it is designed to convert a list of results into a Map based on one of the properties in the resulting objects.
      <T> T selectOne​(java.lang.String statement)
      Retrieve a single row mapped from the statement key.
      <T> T selectOne​(java.lang.String statement, java.lang.Object parameter)
      Retrieve a single row mapped from the statement key and parameter.
      int update​(java.lang.String statement)
      Execute an update statement.
      int update​(java.lang.String statement, java.lang.Object parameter)
      Execute an update statement.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • DefaultSqlSession

        public DefaultSqlSession​(Configuration configuration,
                                 Executor executor,
                                 boolean autoCommit)
    • Method Detail

      • selectOne

        public <T> T selectOne​(java.lang.String statement)
        Description copied from interface: SqlSession
        Retrieve a single row mapped from the statement key.
        Specified by:
        selectOne in interface SqlSession
        Type Parameters:
        T - the returned object type
        Returns:
        Mapped object
      • selectOne

        public <T> T selectOne​(java.lang.String statement,
                               java.lang.Object parameter)
        Description copied from interface: SqlSession
        Retrieve a single row mapped from the statement key and parameter.
        Specified by:
        selectOne in interface SqlSession
        Type Parameters:
        T - the returned object type
        Parameters:
        statement - Unique identifier matching the statement to use.
        parameter - A parameter object to pass to the statement.
        Returns:
        Mapped object
      • selectMap

        public <K,​V> java.util.Map<K,​V> selectMap​(java.lang.String statement,
                                                              java.lang.String mapKey)
        Description copied from interface: SqlSession
        The selectMap is a special case in that it is designed to convert a list of results into a Map based on one of the properties in the resulting objects. Eg. Return a of Map[Integer,Author] for selectMap("selectAuthors","id")
        Specified by:
        selectMap in interface SqlSession
        Type Parameters:
        K - the returned Map keys type
        V - the returned Map values type
        Parameters:
        statement - Unique identifier matching the statement to use.
        mapKey - The property to use as key for each value in the list.
        Returns:
        Map containing key pair data.
      • selectMap

        public <K,​V> java.util.Map<K,​V> selectMap​(java.lang.String statement,
                                                              java.lang.Object parameter,
                                                              java.lang.String mapKey)
        Description copied from interface: SqlSession
        The selectMap is a special case in that it is designed to convert a list of results into a Map based on one of the properties in the resulting objects.
        Specified by:
        selectMap in interface SqlSession
        Type Parameters:
        K - the returned Map keys type
        V - the returned Map values type
        Parameters:
        statement - Unique identifier matching the statement to use.
        parameter - A parameter object to pass to the statement.
        mapKey - The property to use as key for each value in the list.
        Returns:
        Map containing key pair data.
      • selectMap

        public <K,​V> java.util.Map<K,​V> selectMap​(java.lang.String statement,
                                                              java.lang.Object parameter,
                                                              java.lang.String mapKey,
                                                              RowBounds rowBounds)
        Description copied from interface: SqlSession
        The selectMap is a special case in that it is designed to convert a list of results into a Map based on one of the properties in the resulting objects.
        Specified by:
        selectMap in interface SqlSession
        Type Parameters:
        K - the returned Map keys type
        V - the returned Map values type
        Parameters:
        statement - Unique identifier matching the statement to use.
        parameter - A parameter object to pass to the statement.
        mapKey - The property to use as key for each value in the list.
        rowBounds - Bounds to limit object retrieval
        Returns:
        Map containing key pair data.
      • selectCursor

        public <T> Cursor<T> selectCursor​(java.lang.String statement)
        Description copied from interface: SqlSession
        A Cursor offers the same results as a List, except it fetches data lazily using an Iterator.
        Specified by:
        selectCursor in interface SqlSession
        Type Parameters:
        T - the returned cursor element type.
        Parameters:
        statement - Unique identifier matching the statement to use.
        Returns:
        Cursor of mapped objects
      • selectCursor

        public <T> Cursor<T> selectCursor​(java.lang.String statement,
                                          java.lang.Object parameter)
        Description copied from interface: SqlSession
        A Cursor offers the same results as a List, except it fetches data lazily using an Iterator.
        Specified by:
        selectCursor in interface SqlSession
        Type Parameters:
        T - the returned cursor element type.
        Parameters:
        statement - Unique identifier matching the statement to use.
        parameter - A parameter object to pass to the statement.
        Returns:
        Cursor of mapped objects
      • selectCursor

        public <T> Cursor<T> selectCursor​(java.lang.String statement,
                                          java.lang.Object parameter,
                                          RowBounds rowBounds)
        Description copied from interface: SqlSession
        A Cursor offers the same results as a List, except it fetches data lazily using an Iterator.
        Specified by:
        selectCursor in interface SqlSession
        Type Parameters:
        T - the returned cursor element type.
        Parameters:
        statement - Unique identifier matching the statement to use.
        parameter - A parameter object to pass to the statement.
        rowBounds - Bounds to limit object retrieval
        Returns:
        Cursor of mapped objects
      • selectList

        public <E> java.util.List<E> selectList​(java.lang.String statement)
        Description copied from interface: SqlSession
        Retrieve a list of mapped objects from the statement key and parameter.
        Specified by:
        selectList in interface SqlSession
        Type Parameters:
        E - the returned list element type
        Parameters:
        statement - Unique identifier matching the statement to use.
        Returns:
        List of mapped object
      • selectList

        public <E> java.util.List<E> selectList​(java.lang.String statement,
                                                java.lang.Object parameter)
        Description copied from interface: SqlSession
        Retrieve a list of mapped objects from the statement key and parameter.
        Specified by:
        selectList in interface SqlSession
        Type Parameters:
        E - the returned list element type
        Parameters:
        statement - Unique identifier matching the statement to use.
        parameter - A parameter object to pass to the statement.
        Returns:
        List of mapped object
      • selectList

        public <E> java.util.List<E> selectList​(java.lang.String statement,
                                                java.lang.Object parameter,
                                                RowBounds rowBounds)
        Description copied from interface: SqlSession
        Retrieve a list of mapped objects from the statement key and parameter, within the specified row bounds.
        Specified by:
        selectList in interface SqlSession
        Type Parameters:
        E - the returned list element type
        Parameters:
        statement - Unique identifier matching the statement to use.
        parameter - A parameter object to pass to the statement.
        rowBounds - Bounds to limit object retrieval
        Returns:
        List of mapped object
      • select

        public void select​(java.lang.String statement,
                           java.lang.Object parameter,
                           ResultHandler handler)
        Description copied from interface: SqlSession
        Retrieve a single row mapped from the statement key and parameter using a ResultHandler.
        Specified by:
        select in interface SqlSession
        Parameters:
        statement - Unique identifier matching the statement to use.
        parameter - A parameter object to pass to the statement.
        handler - ResultHandler that will handle each retrieved row
      • select

        public void select​(java.lang.String statement,
                           ResultHandler handler)
        Description copied from interface: SqlSession
        Retrieve a single row mapped from the statement using a ResultHandler.
        Specified by:
        select in interface SqlSession
        Parameters:
        statement - Unique identifier matching the statement to use.
        handler - ResultHandler that will handle each retrieved row
      • select

        public void select​(java.lang.String statement,
                           java.lang.Object parameter,
                           RowBounds rowBounds,
                           ResultHandler handler)
        Description copied from interface: SqlSession
        Retrieve a single row mapped from the statement key and parameter using a ResultHandler and RowBounds.
        Specified by:
        select in interface SqlSession
        Parameters:
        statement - Unique identifier matching the statement to use.
        rowBounds - RowBound instance to limit the query results
        handler - ResultHandler that will handle each retrieved row
      • insert

        public int insert​(java.lang.String statement)
        Description copied from interface: SqlSession
        Execute an insert statement.
        Specified by:
        insert in interface SqlSession
        Parameters:
        statement - Unique identifier matching the statement to execute.
        Returns:
        int The number of rows affected by the insert.
      • insert

        public int insert​(java.lang.String statement,
                          java.lang.Object parameter)
        Description copied from interface: SqlSession
        Execute an insert statement with the given parameter object. Any generated autoincrement values or selectKey entries will modify the given parameter object properties. Only the number of rows affected will be returned.
        Specified by:
        insert in interface SqlSession
        Parameters:
        statement - Unique identifier matching the statement to execute.
        parameter - A parameter object to pass to the statement.
        Returns:
        int The number of rows affected by the insert.
      • update

        public int update​(java.lang.String statement)
        Description copied from interface: SqlSession
        Execute an update statement. The number of rows affected will be returned.
        Specified by:
        update in interface SqlSession
        Parameters:
        statement - Unique identifier matching the statement to execute.
        Returns:
        int The number of rows affected by the update.
      • update

        public int update​(java.lang.String statement,
                          java.lang.Object parameter)
        Description copied from interface: SqlSession
        Execute an update statement. The number of rows affected will be returned.
        Specified by:
        update in interface SqlSession
        Parameters:
        statement - Unique identifier matching the statement to execute.
        parameter - A parameter object to pass to the statement.
        Returns:
        int The number of rows affected by the update.
      • delete

        public int delete​(java.lang.String statement)
        Description copied from interface: SqlSession
        Execute a delete statement. The number of rows affected will be returned.
        Specified by:
        delete in interface SqlSession
        Parameters:
        statement - Unique identifier matching the statement to execute.
        Returns:
        int The number of rows affected by the delete.
      • delete

        public int delete​(java.lang.String statement,
                          java.lang.Object parameter)
        Description copied from interface: SqlSession
        Execute a delete statement. The number of rows affected will be returned.
        Specified by:
        delete in interface SqlSession
        Parameters:
        statement - Unique identifier matching the statement to execute.
        parameter - A parameter object to pass to the statement.
        Returns:
        int The number of rows affected by the delete.
      • commit

        public void commit()
        Description copied from interface: SqlSession
        Flushes batch statements and commits database connection. Note that database connection will not be committed if no updates/deletes/inserts were called. To force the commit call SqlSession.commit(boolean)
        Specified by:
        commit in interface SqlSession
      • commit

        public void commit​(boolean force)
        Description copied from interface: SqlSession
        Flushes batch statements and commits database connection.
        Specified by:
        commit in interface SqlSession
        Parameters:
        force - forces connection commit
      • rollback

        public void rollback()
        Description copied from interface: SqlSession
        Discards pending batch statements and rolls database connection back. Note that database connection will not be rolled back if no updates/deletes/inserts were called. To force the rollback call SqlSession.rollback(boolean)
        Specified by:
        rollback in interface SqlSession
      • rollback

        public void rollback​(boolean force)
        Description copied from interface: SqlSession
        Discards pending batch statements and rolls database connection back. Note that database connection will not be rolled back if no updates/deletes/inserts were called.
        Specified by:
        rollback in interface SqlSession
        Parameters:
        force - forces connection rollback
      • flushStatements

        public java.util.List<BatchResult> flushStatements()
        Description copied from interface: SqlSession
        Flushes batch statements.
        Specified by:
        flushStatements in interface SqlSession
        Returns:
        BatchResult list of updated records
      • close

        public void close()
        Description copied from interface: SqlSession
        Closes the session.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Specified by:
        close in interface SqlSession
      • getMapper

        public <T> T getMapper​(java.lang.Class<T> type)
        Description copied from interface: SqlSession
        Retrieves a mapper.
        Specified by:
        getMapper in interface SqlSession
        Type Parameters:
        T - the mapper type
        Parameters:
        type - Mapper interface class
        Returns:
        a mapper bound to this SqlSession
      • getConnection

        public java.sql.Connection getConnection()
        Description copied from interface: SqlSession
        Retrieves inner database connection.
        Specified by:
        getConnection in interface SqlSession
        Returns:
        Connection
      • clearCache

        public void clearCache()
        Description copied from interface: SqlSession
        Clears local session cache.
        Specified by:
        clearCache in interface SqlSession