简介
什么是Mybatis
- Mybatis 是一款优秀的持久层框架;
- 它支持自定义SQL,存储过程以及高级映射;
- Mybatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作;
- Mybatis可以通过简单的XML或注解来配置和映射原始类型,接口和Java POJO为数据库中的记录;
特点
- 简单易学:本身就很小且简单;
- 灵活;
- 解除SQL和程序代码的耦合,SQL和代码分离,提高可维护性;
- 提供映射标签,支持对象与数据库的ORM字段关系映射;
- 提供对象关系映射标签,支持对象关系组建维护;
- 提供XML标志,支持编写动态SQL;
Tips:
Mybatis的配置文件包含了会深深影响Mybatis的行为的设置和属性信息。
文档链接:https://mybatis.org/mybatis-3/zh/configuration.html#
configuration(配置)<标签是有序的,按照如下顺序>
- propertie(属性)
- settings(设置)
- typeAliases(类型别名)
- typeHandlers(类型处理器)
- ObjectFactory(对象工厂)
- plugins(插件)
- environments(环境配置)
7.1 environment(环境变量)
7.2 transactionManager(事务管理器)
7.3 dataSource(数据源)
8.databaseIdProvider(数据库厂商标识)
9.mappers(映射器)
1.properties(属性)
这些属性可以在外部进行配置,并可以进行动态替换
加载顺序:
- 首先读取在properties元素体内指定的属性;
- 然后根据properties元素中resource属性读取类路径下属性文件,或根据url属性指定的路径读取属性文件,覆盖读取过的同名属性;
- 最后读取作为方法参数传递的属性,覆盖读取过的同名属性;
优先级由下往上,通过方法参数传递具有最高优先级
<properties resource="db.properties">
<property name="username" value="dev_user"/>
<property name="password" value="F2Fa3!33TYyg"/>
</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>
Mybatis 从 3.4.2开始,可以为占位符指定一个默认值;
<dataSource type="POOLED">
<!-- 如果属性 'username' 没有被配置,'username' 属性的值将为 'ut_user' -->
<property name="username" value="${username:ut_user}"/>
</dataSource>
注:这个特性默认是关闭的。需要添加一个特定的属性来开启这个特性。
<properties resource="db.properties">
<!-- 启用默认值特性 -->