MyBatis(2),配置文件属性详解
在mybatis的项目中,有一个mybatis-config.xml的配置文件,这个配置文件是mybatis的全局配置文件,用来进行相关的全局配置,在任何操作下都生效的配置。这次对配置文件其中的属性进行详细解释
配置文档的顶层结构
注意: 顺序必须严格按照结构要求,不然会报错
properties
当需要引入外部的配置文件的时候,可以使用这样的方式,类似于Spring中的property-placeholder
resource:表示从当前项目的类路径中进行加载,如果用的是IDEA指的是resources资源目录下的配置文件
url:可以从当前文件系统的磁盘目录查找配置,也可以从网络上的资源进行引入
settings
可以影响mybatis的行为,包含N多个属性,是mybatis中的重要配置,需要什么引入什么,具体属性详见官网https://mybatis.org/mybatis-3/zh/configuration.html#plugins
name: 设置名
value: 值
例如:
<!--开启驼峰标识验证-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
typeAliases
表示在引入实体类的名称时候,可以使用别名,而不需要写完全限定名
<!--
type:实体类
alias:别名
-->
<typeAlias type="com.mashibing.bean.Emp" alias="Emp"></typeAlias>
<!--
如果需要引用多个类,那么给每一个类起别名肯定会很麻烦,因此可以指定对应的包名,那么默认用的是类名,
可以同时存在
-->
<package name="com.yangqihang.bean"/>
typeHandlers
设置自定义的类型处理器,mybatis中默认内置了很多类型处理器,一般不需要自己来实现。具体内容见官网,初学用不到此功能
typeHandler: 添加指定的类型处理器
package: 添加指定包下的所有类型处理器
objectFactory
当需要自定义对象工厂的时候实现此标签,完成结果集到Java对象实例化的过程,一般不需要自己实现
底层使用反射进行实现的
plugins
插件,最常用的就是pageHelper,具体详见官网
environments
在项目开发中,会包含开发环境,测试环境,生产环境,有可能会使用不同的数据源进行连接操作,在此配置文件中可以指定多个环境
<!-- defauult表示选择哪个环境作为运行时环境 -->
<environments default="development">
<!--
配置具体的环境属性
id:表示当前环境的名称
-->
<environment id="development">
<!--
事务管理器,每一种数据源都需要配置具体的事务管理器
type:表示事务管理器的类型,有2种
JDBC:使用jdbc原生的事务控制
MANAGED:什么都没做
-->
<transactionManager type="JDBC"/>
<!--
配置具体的数据源的类型
type:表示数据源的类型,3种
POOLED:使用数据库连接池
UNPOOLED:每次都打开和关闭一个连接
JNDI:不用
-->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
databaseIdProvider
提供了不同的数据库厂商的标识,当有数据库移植的需求的时候,可以根据不同的数据库来执行不同的SQL语句,用来扩展数据库的移植性
<!--
type属性固定是DB_VENDOR
name:数据厂商
value:别名
-->
<databaseIdProvider type="DB_VENDOR">
<property name="SQL Server" value="sqlserver"/>
<property name="MySQL" value="mysql"/>
<property name="Oracle" value="oracle" />
</databaseIdProvider>
mappers
用来将mapper映射文件引入到配置文件中,方便程序启动的时候进行加载,每次在进行填写的时候需要注意,写完xml映射之后一定要添加到mybatis-config文件中
<mapper></mapper>
子标签mapper有3个属性
resource:表示从当前项目的类路径中进行加载对应的映射文件,如果用的是IDEA指的是resources资源目录下的映射文件
url:从本地磁盘目录或者网络中引入映射文文件
class:可以直接引入类的完全限定名,可以使用注解的方式进行使用,如果需要使用XML映射文件的方式,需要将XML映射文件放在映射接口类的相同目录下
如果是maven项目且放在的是java目录下,由于在java目录中不会编译除java外的其它文件,需要在pom.xml中添加
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
子标签package
<!--
如果需要引入多个配置文件,可以直接定义包的名称
resources目录下配置的映射文件必须要具备相同的目录
-->
<package name="com.yangqihang.mapper"/>