1、核心配置文件
-
mybatis-config.xml 系统核心配置文件
-
MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。
-
能配置的内容如下:
configuration(配置) properties(属性) settings(设置) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) environments(环境配置) environment(环境变量) transactionManager(事务管理器) dataSource(数据源) databaseIdProvider(数据库厂商标识) mappers(映射器) <!-- 注意元素节点的顺序!顺序不对会报错 -->
2、environments
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///mybatis"/>
<property name="username" value="root"/>
<property name="password" value="111111"/>
</dataSource>
</environment>
</environments>
- environments:下可配置多套数据库环境,但只能同时使用一套(通过default指定)
- environment:具体的一套环境通过设置id进行区别,id保证唯一!
- transactionManager:事务管理器 ,有JDBC和MANAGED两种类型
- dataSource:数据源,有UNPOOLED、POOLED、JNDI三种类型
3、properties
<properties resource="mysql.properties">
<property name="username" value="root"/>
<property name="password" value="111111"/>
</properties>
- properties可以通过resource属性在外部引入,也可以在properties内部定义
- 外部引入的properties优先级更高
可以使用properties来对核心配置文件进行优化
-
在resource资源文件夹创建mysql.properties
driver=com.mysql.jdbc.Driver url=jdbc:mysql:///mybatis?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC username=root password=111111
-
在mybatis-config.xml 中引入properties
- 注意:根据xml约束,properties在最前边引入
<!--核心配置文件--> <configuration> <properties resource="mysql.properties" /> </configuration>
-
修改environments中的value
<environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments>
4、typeAliases
- 类型别名是为 Java 类型设置一个短的名字。
- 存在的意义仅在于用来减少类完全限定名的冗余
配置别名有两种方式:
- 指定全类名
<typeAliases>
<typeAlias type="com.myboy.domain.User" alias="user" />
</typeAliases>
- 也可以指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean
<typeAliases>
<package name="com.myboy.domain"/>
</typeAliases>
- 实体类没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名
总结
-
若实体类数量较少,推荐使用第一种
-
若实体类数量较多,推荐使用第二种
-
第一种可以实现DIY别名,第二种不行,若非要DIY,则可以在实体类上增加注解
@Alias("user")
public class User {...}
常见的 Java 类型内建的相应的类型别名:
别名 | 映射的类型 |
---|---|
_int | int |
_double | double |
_boolean | boolean |
… | … |
string | String |
long | Long |
int | Integer |
date | Date |
map | Map |
arraylist | ArrayList |
5、mappers
告诉 MyBatis 到哪里去找到SQL语句
MapperRegistry:注册绑定Mapper.xml文件
方法一:
<!-- 使用相对于类路径的资源引用 -->
<mappers>
<mapper resource="com/myboy/dao/UserMapper.xml" />
</mappers>
方法二:使用class全类名绑定注册
<!-- 使用映射器接口实现类的完全限定类名 -->
<mappers>
<mapper class="com.myboy.dao.UserMapper" />
</mappers>
注意点:
- 接口和他的配置文件在同一个包
- 接口和他的配置文件名一致
方法三:使用包名扫描绑定注册
<!-- 将包内的映射器接口实现全部注册为映射器 -->
<mappers>
<package name="com.myboy.dao"/>
</mappers>
注意点:
- 接口和他的配置文件在同一个包
- 接口和他的配置文件名一致
6、setting
设置名 | 描述 | 有效值 | 默认值 |
---|---|---|---|
cacheEnabled | 全局地开启或关闭配置文件中的所有映射器已经配置的任何缓存。 | true | false | true |
logImpl | 指定 MyBatis 所用日志的具体实现,未指定时将自动查找。 | LOG4J … | 未设置 |
参考官网:https://mybatis.org/mybatis-3/zh/configuration.html#settings
7、其他配置
- typeHandlers(类型处理器)
- objectFactory(对象工厂)
- plugins(插件)
这些配置不重要