深入浅出Mybatis配置文件

本文深入解析Mybatis配置文件,涵盖properties、settings、typeAliases、typeHandlers、objectFactory、plugins、environments等内容,帮助理解Mybatis的运行时行为及配置优化。详细介绍了数据源、事务管理器和映射器的配置,以及SqlSessionFactoryBuilder、SqlSessionFactory和SqlSession的生命周期与作用域。
摘要由CSDN通过智能技术生成

简介

什么是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(配置)<标签是有序的,按照如下顺序>

  1. propertie(属性)
  2. settings(设置)
  3. typeAliases(类型别名)
  4. typeHandlers(类型处理器)
  5. ObjectFactory(对象工厂)
  6. plugins(插件)
  7. 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">
  <!-- 启用默认值特性 -->
  
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值