类 SqlSessionFactoryBean

  • 所有已实现的接口:
    FactoryBean<org.apache.ibatis.session.SqlSessionFactory>

    public class SqlSessionFactoryBean
    extends Object
    implements FactoryBean<org.apache.ibatis.session.SqlSessionFactory>
    FactoryBean that creates an MyBatis SqlSessionFactory. This is the usual way to set up a shared MyBatis SqlSessionFactory in a Spring application context; the SqlSessionFactory can then be passed to MyBatis-based DAOs via dependency injection.

    Either DataSourceTransactionManager or JtaTransactionManager can be used for transaction demarcation in combination with a SqlSessionFactory. JTA should be used for transactions which span multiple databases or when container managed transactions (CMT) are being used.

    版本:
    $Id$
    作者:
    Putthibong Boonbong, Hunter Presnall, Eduardo Macarron, Eddú Meléndez, Kazuki Shimizu
    另请参阅:
    setConfigLocation(cn.hutool.core.io.resource.Resource), setDataSource(javax.sql.DataSource)
    • 构造器详细资料

      • SqlSessionFactoryBean

        public SqlSessionFactoryBean()
    • 方法详细资料

      • setObjectFactory

        public void setObjectFactory​(org.apache.ibatis.reflection.factory.ObjectFactory objectFactory)
        Sets the ObjectFactory.
        参数:
        objectFactory -
        从以下版本开始:
        1.1.2
      • setObjectWrapperFactory

        public void setObjectWrapperFactory​(org.apache.ibatis.reflection.wrapper.ObjectWrapperFactory objectWrapperFactory)
        Sets the ObjectWrapperFactory.
        参数:
        objectWrapperFactory -
        从以下版本开始:
        1.1.2
      • getDatabaseIdProvider

        public org.apache.ibatis.mapping.DatabaseIdProvider getDatabaseIdProvider()
        Gets the DatabaseIdProvider
        返回:
        从以下版本开始:
        1.1.0
      • setDatabaseIdProvider

        public void setDatabaseIdProvider​(org.apache.ibatis.mapping.DatabaseIdProvider databaseIdProvider)
        Sets the DatabaseIdProvider. As of version 1.2.2 this variable is not initialized by default.
        参数:
        databaseIdProvider -
        从以下版本开始:
        1.1.0
      • getVfs

        public Class<? extends org.apache.ibatis.io.VFS> getVfs()
      • setVfs

        public void setVfs​(Class<? extends org.apache.ibatis.io.VFS> vfs)
      • getCache

        public org.apache.ibatis.cache.Cache getCache()
      • setCache

        public void setCache​(org.apache.ibatis.cache.Cache cache)
      • setPlugins

        public void setPlugins​(org.apache.ibatis.plugin.Interceptor[] plugins)
        Mybatis plugin list.
        参数:
        plugins - list of plugins
        从以下版本开始:
        1.0.1
      • setTypeAliasesPackage

        public void setTypeAliasesPackage​(String typeAliasesPackage)
        Packages to search for type aliases.
        参数:
        typeAliasesPackage - package to scan for domain objects
        从以下版本开始:
        1.0.1
      • setTypeAliasesSuperType

        public void setTypeAliasesSuperType​(Class<?> typeAliasesSuperType)
        Super class which domain objects have to extend to have a type alias created. No effect if there is no package to scan configured.
        参数:
        typeAliasesSuperType - super class for domain objects
        从以下版本开始:
        1.1.2
      • setTypeHandlersPackage

        public void setTypeHandlersPackage​(String typeHandlersPackage)
        Packages to search for type handlers.
        参数:
        typeHandlersPackage - package to scan for type handlers
        从以下版本开始:
        1.0.1
      • setTypeHandlers

        public void setTypeHandlers​(org.apache.ibatis.type.TypeHandler<?>[] typeHandlers)
        Set type handlers. They must be annotated with MappedTypes and optionally with MappedJdbcTypes
        参数:
        typeHandlers - Type handler list
        从以下版本开始:
        1.0.1
      • setTypeAliases

        public void setTypeAliases​(Class<?>[] typeAliases)
        List of type aliases to register. They can be annotated with Alias
        参数:
        typeAliases - Type aliases list
        从以下版本开始:
        1.0.1
      • setFailFast

        public void setFailFast​(boolean failFast)
        If true, a final check is done on Configuration to assure that all mapped statements are fully loaded and there is no one still pending to resolve includes. Defaults to false.
        参数:
        failFast - enable failFast
        从以下版本开始:
        1.0.1
      • setConfigLocation

        public void setConfigLocation​(cn.hutool.core.io.resource.Resource configLocation)
        Set the location of the MyBatis SqlSessionFactory config file. A typical value is "WEB-INF/mybatis-configuration.xml".
      • setConfiguration

        public void setConfiguration​(org.apache.ibatis.session.Configuration configuration)
        Set a customized MyBatis configuration.
        参数:
        configuration - MyBatis configuration
        从以下版本开始:
        1.3.0
      • setDocumentMapperDefines

        public void setDocumentMapperDefines​(List<DocumentMapperDefine> documentMapperDefines)
        Set locations of MyBatis mapper files that are going to be merged into the SqlSessionFactory configuration at runtime.

        This is an alternative to specifying "<sqlmapper>" entries in an MyBatis config file. This property being based on Spring's resource abstraction also allows for specifying resource patterns here: e.g. "classpath*:sqlmap/*-mapper.xml".

      • setConfigurationProperties

        public void setConfigurationProperties​(Properties sqlSessionFactoryProperties)
        Set optional properties to be passed into the SqlSession configuration, as alternative to a &lt;properties&gt; tag in the configuration xml file. This will be used to resolve placeholders in the config file.
      • setDataSource

        public void setDataSource​(DataSource dataSource)
        Set the JDBC DataSource that this instance should manage transactions for. The DataSource should match the one used by the SqlSessionFactory: for example, you could specify the same JNDI DataSource for both.

        A transactional JDBC Connection for this DataSource will be provided to application code accessing this DataSource directly via DataSourceUtils or DataSourceTransactionManager.

        The DataSource specified here should be the target DataSource to manage transactions for, not a TransactionAwareDataSourceProxy. Only data access code may work with TransactionAwareDataSourceProxy, while the transaction manager needs to work on the underlying target DataSource. If there's nevertheless a TransactionAwareDataSourceProxy passed in, it will be unwrapped to extract its target DataSource.

      • setSqlSessionFactoryBuilder

        public void setSqlSessionFactoryBuilder​(org.apache.ibatis.session.SqlSessionFactoryBuilder sqlSessionFactoryBuilder)
        Sets the SqlSessionFactoryBuilder to use when creating the SqlSessionFactory.

        This is mainly meant for testing so that mock SqlSessionFactory classes can be injected. By default, SqlSessionFactoryBuilder creates DefaultSqlSessionFactory instances.

      • setTransactionFactory

        public void setTransactionFactory​(org.apache.ibatis.transaction.TransactionFactory transactionFactory)
        Set the MyBatis TransactionFactory to use. Default is SpringManagedTransactionFactory

        The default SpringManagedTransactionFactory should be appropriate for all cases: be it Spring transaction management, EJB CMT or plain JTA. If there is no active transaction, SqlSession operations will execute SQL statements non-transactionally. It is strongly recommended to use the default TransactionFactory. If not used, any attempt at getting an SqlSession through Spring's MyBatis framework will throw an exception if a transaction is active.

        参数:
        transactionFactory - the MyBatis TransactionFactory
        另请参阅:
        YaoManagedTransactionFactory
      • setEnvironment

        public void setEnvironment​(String environment)
        NOTE: This class overrides any Environment you have set in the MyBatis config file. This is used only as a placeholder name. The default value is SqlSessionFactoryBean.class.getSimpleName().
        参数:
        environment - the environment name
      • afterPropertiesSet

        public void afterPropertiesSet()
      • buildSqlSessionFactory

        protected org.apache.ibatis.session.SqlSessionFactory buildSqlSessionFactory()
        Build a SqlSessionFactory instance.

        The default implementation uses the standard MyBatis XMLConfigBuilder API to build a SqlSessionFactory instance based on an Reader. Since 1.3.0, it can be specified a Configuration instance directly(without config file).

        返回:
        SqlSessionFactory
        抛出:
        IOException - if loading the config file failed
      • getObject

        public org.apache.ibatis.session.SqlSessionFactory getObject()
        指定者:
        getObject 在接口中 FactoryBean<org.apache.ibatis.session.SqlSessionFactory>
      • isSingleton

        public boolean isSingleton()
        指定者:
        isSingleton 在接口中 FactoryBean<org.apache.ibatis.session.SqlSessionFactory>