本文主要是介绍MyBatis的配置对象Configuration作用及说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《MyBatis的配置对象Configuration作用及说明》MyBatis的Configuration对象是MyBatis的核心配置对象,它包含了MyBatis运行时所需的几乎所有配置信息,这个对...
MyBatis配置对象Configuration作用
org.apache.ibatis.session.Configuration
是 MyBatis 的核心配置对象,它包含了 MyBatis 运行时所需的几乎所有配置信息。可以把它理解为 MyBatis 的“大脑”或“配置中心”。
在 MyBatis 的初始化过程中,会解析 XML 配置文件或通过 Java 代码构建一个 Configuration
对象,MyBatis 的其他组件(如 SqlSessionFactory
、Executor
、MappedStatement
等)都会依赖这个 Configuration
对象来获取配置信息和执行操作。
Configuration 对象的主要作用
保存全局配置信息: Configuration
对象保存了 MyBatis 的全局配置信息,这些信息通常在 mybatis-config.xml
文件中配置,或者通过 Java 代码设置。 这些信息包括:
- Properties: 外部属性配置(可以通过
<properties>
标签或Properties
对象加载)。 - Settings: 全局设置,控制 MyBatis 的运行时行为(例如,是否开启缓存、是否使用延迟加载、是否自动映射等)。
- Type Aliases: 类型别名,用于简化 XML 配置文件中的类型引用。
- Type Handlers: 类型处理器,用于处理 Java 类型与 JDBC 类型之间的转换。
- Object Factory: 对象工厂,用于创建结果对象。
- Plugins: 插件,用于拦截 MyBatis 的核心执行流程(例如,拦截 SQL 执行、参数设置、结果映射等)。
- Environments: 环境配置,可以配置多个数据源环境(例如,开发环境、测试环境、生产环境)。
- DatabaseId Provider: 数据库厂商标识,用于根据不同的数据库厂商执行不同的 SQL 语句。
- Mappers: 映射器配置,用于加载 SQL 映射文件或 Mapper 接口。
管理 MappedStatement: Configuration
对象维护了一个 MappedStatement
的注册表(Map<String, MappedStatement>
)。MappedStatement
对象代表一个 SQL 语句(select
、insert
、update
、delete
),它包含了 SQL 语句的 ID、参数类型、结果类型、SQL 语句内容等信息。Configuration
对象通过 MappedStatement
的 ID 来查找和管理 MappedStatement
。
创建核心组件: Configuration
对象提供了一些方法来创建 MyBatis 的核心组件,例如:
newww.chinasem.cnwExecutor(Transaction tx, ExecutorType executorType)
: 创建Executor
对象(执行器,负责执行 SQL 语句)。newStatementHandler(...)
: 创建StatementHandler
对象(语句处理器,负责处理 JDBC 的Statement
)。newparameterHandler(...)
: 创建ParameterHandler
对象(参数处理器,负责设置 SQL 语句的参数)。newResultSetHandler(...)
: 创建ResultSetHandler
对象(结果集处理器,负责将ResultSet
映射为 Java 对象)。
提供配置信息的访问接口: Configuration
对象提供了一系列 getXXX()
方法,用于获取各种配置信息。例如:
getVariables()
:获取属性配置isCacheEnabled()
: 获取是否开启缓存。isLazyLoadingEnabled()
: 获取是否开启延迟加载。getTypeAliasRegistry()
: 获取类型别名注册表。getTypeHandlerRegistry()
: 获取类型处理器注册表。getMappedStatement(String id)
: 根据 ID 获取MappedStatement
对象。gejstEnvironment()
:获取环境配置
插件机制的入口: Configuration
提供了添加和获取插件的方法 (addInterceptor()
, getInterceptors()
),使得插件可以拦截 MyBatis 的核心执行流程。
Configuration 对象的创建
Configuration
对象通常由SqlSessionFactoryBuilder
创建。SqlSessionFactoryBuilder
可以通过 XML 配置文件或 Java 代码来构建Configuration
对象。
// 通过 XML 配置文件创建 String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); Configuration configuration = sqlSessionFactory.getConfiguration(); // 通过 Java 代码创建 Configuration confighttp://www.chinasem.cnuration = new Configuration(); configuration.setCacheEnabled(true); // 设置缓存 configuration.setLazyLoadingEnabled(false); // 设置延迟加载 configuration.addMapper(UserMapper.class); // 添加 Mapper 接口 // ... 其他配置 ... SqlSessiChina编程onFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(conckzCuQifiguration);
Configuration 对象的使用 (通常不需要直接操作)
- 在大多数情况下,我们不需要直接操作
Configuration
对象。 - MyBatis 内部会使用
Configuration
对象来执行各种操作。
总结
Configuration
对象是 MyBatis 的核心配置对象,它包含了 MyBatis 运行时所需的几乎所有配置信息,并负责管理 MappedStatement
、创建核心组件、提供配置信息的访问接口以及作为插件机制的入口。
这篇关于MyBatis的配置对象Configuration作用及说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!