MyBatis系统核心配置文件详解
mybatis-config.xml 系统核心配置文件
-
configuration 配置
-
properties 可以配置在Java属性配置文件中
-
settings 修改MyBatis在运行时的行为方式
-
typeAliases 为Java类型命名一个别名(简称)
-
typeHandlers 类型处理器
-
objecttFactory 对象工厂
-
plugins 插件
-
environments 环境
-
environment 环境变量
- transactionManager 事务管理器
- dataSource 数据源
-
mappers 映射器
-
配置properties元素
-
配置properties元素的两种方式
-
通过外部指定的方式(database.properties),实现动态配置
-
配置properties的resourcec属性
database.properties:
driver=com.mysql.jdbc.Driver url=jdbc://localhost:3306/smbms?useUnicode=true&characterEncoding=utr-8 username=root password=111111
<properties resource="database.properties"/> ...... <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource>
-
-
直接配置为xml,实现动态配置
-
配置property的name和value
<propetries> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="ulr" value="jdbc://localhost:3306/smbms"/> <property name="username" value="root"/> <property name="password" value="111111"/> </propetries> ...... <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource>
-
-
若两种方式同时都用了,那么哪种方式优先
-
配置properties的resource指定
-
配置property的name和value
<properties resource="database.properties"/> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="ulr" value="jdbc://localhost:3306/smbms"/> <property name="username" value="root"/> <property name="password" value="111111"/> </dataSource>
结论:resource属性值的优先级高于property子节点配置的值
-
-
settings元素
-
用来修改MyBatis运行时的行为方式
-
主要时MyBatis的一些全局配置属性的设置
<settings> <!--是否启用延迟加载--> <setting name="lazyLoadingEnabled" value="false"/> </settings>
设置项 描述 允许值 默认值 cacheEnabled 对在此配置文件下的所有cache进行全局性开/关设置 true | false true lazyLoadingEnabled 全局性设置懒加载。如果设为’false‘,则所有相关联的都会被初始化加载 true | false true autoMappingBehavior MyBatis对于resultMap自动映射匹配级别 NONE | PAERTIAL | FULL PARTIAL …(9个) … … …
typeAliases元素
-
类型别名
-
仅仅只关联XML配置,简写冗长的Java类名
<typeAliases> <typeAlias alias="User" type="cn.smbms.pojo.User"/> </typeAliases>
<typeAliases> <package name="cn.smbms.pojo"/> </typeAliases>
environments元素
-
表示配置MyBatis的多套运行环境,将SQL映射到多个不同的数据库上
-
子元素节点:environment,但是必须指定其中一个为默认运行环境(通过default指定)
<environments default="chap1"> <environment id="chap1"> <!--使用jdbc事务管理 --> <transactionManager type="JDBC"/> <!-- 数据库连接池 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/supermarket? characterEncoding=utf-8"/> <property name="username" value="root"/> <property name="password" value="111111"/> </dataSource> </environment> <environment id="chap2"> ...... </environment> </environments>
-
transactionManager-事务管理器
<transactionManager type="[JDBC | MANAGED]"/>
-
dataSource
-
dataSource元素使用基本的JDBC数据源接口来配置JDBC连接对象的资源
-
有三种内建的数据源类型
<dataSource type="[UNPOOLED|POOLED|JNDI]">
<dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/supermarket? characterEncoding=utf-8"/> <property name="username" value="root"/> <property name="password" value="111111"/> </dataSource>
-
mapper元素
-
映射器,定义SQL映射语句
-
须在配置中引用mapper映射文件
-
方式一:使用类资源路径获取资源
<!-- 将mapper映射文件加入到系统核心配置文件中 --> <mappers> <mapper resource="cn/smbms/dao/user/UserMapper.xml"/> </mappers>
-
方式二:使用URL获取资源
<mappers> <mapper url="file:///E:/sqlmappers/UserMapper.xml"/> </mappers>