优化MyBatis配置文件
2018-08-06 本文已影响0人
Chowing
首先我们来看看MyBatis配置文件中的内容和顺序:
<properties>(属性)
<setting>(全局配置参数)
<typeAliases>(类型别名)
<typeHandlers>(类型处理器)
<objectFactory>(对象工厂)
<plugins>(插件)
<environments>(环境集合属性对象)
<environment>(环境子属性对象)
<transactionManager>(事务管理)
<dataSource>(数据源)
<mappers>(映射器)
- 可以把一些通用的属性值配置在属性文件中,加载到mybatis运行环境内。例如创建db.properties文件,然后在SqlMapperConfig.xml中进行配置。db.properties文件内容如下:
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=123456789
- 然后在SqlMapperConfig.xml中进行配置:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="db.properties"/>
......
然后在<environments>标签中用${}符号做如下修改:
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<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>
- <settings>全局参数配置
- 3.<typeAliases>属性,可以将parameterType、resultType中指定的类型通过别名引用。
<!--定义别名-->
<typeAliases >
<!--单个别名的定义-->
<typeAlias type="domain.User" alias="uu"/>
<!--批量别名定义,需要指定包路径,自动扫描里面的pojo,自动定义别名为类名-->
<package name="domain"/>
</typeAliases>
-
<typeHandlers>
属性
类型处理器将java类型和jdbc类型进行映射,mybatis提供了很多类型处理器,一般情况下够用了。 -
<mapper>
映射器属性
之前我们在配置文件中使用的<mapper>
标签内容为:<mapper resource=“mapper/UserMapper.xml”/>
,接下来我要讲的是另一种在配置文件中映射mapper动态代理的方法。在配置文件中这样配置<mapper class=“mapper.UserMapper”/>
,这样的要求需要保证UserMapper.xml文件和UserMapper.java在同一个包下且.xml文件和.java文件名要同名。同上方别名的配置,当包下出现多个Mapper.java和Mapper.xml时我们采用批量配置:<package name=“mapper”/>
,代码如下:
<mappers>
<!--<mapper resource="Member.xml"/>-->
<package name="mapper"/>
</mappers>