Mybatis系列--04-配置文件详解

配置文件详解

概述

我发现狂神讲东西不过就是把官网文档按顺序讲了一遍,如果我自己能看懂官网文档,是不是就不用看视频自己成长啦。本文主要讲述配置文件的配置内容

环境配置

Mybatis可以集成多个数据库环境,比如支持mysql,postgresql...或者配置开发,测试,上线的环境
可以在environments字段中配置
default 配置了默认使用的环境,虽然配置文件支持配置多个数据库环境,但是默认选用的只有一个
transactionManager 事务管理器的配置,Mybatis支持两种JDBC(默认)和MANAGED,这里不详细阐述,详见官网
dataSource 有三种内建的数据源类型,即UNPOOLED,POOLED(默认),JNDI

<environments default="development">
  <environment id="development">
    <transactionManager type="JDBC">
      <property name="..." value="..."/>
    </transactionManager>
    <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>

属性(properties)

property属性可以在外部进行配置,并可以进行动态替换。既可以在属性文件(.properties)中配置这些属性,也可以在properties元素的子元素中进行设置
db.propertis文件

driver=com.mysql.jdbc.Driver
url=xxx

mybatis-config.xml

<properties resource="db.properties">
  <property name="username" value="xxx"/>
  <property name="password" value="xxx"/>
</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>

别名

别名的出现主要是为了解决Mapper.xml文件中类的全限定名太长的问题,可以在Mybatis-config.xml中使用两种方法解决

  1. 使用typeAlias
<typeAliases>
  <typeAlias alias="Author" type="domain.blog.Author"/>
  <typeAlias alias="Blog" type="domain.blog.Blog"/>
  <typeAlias alias="Comment" type="domain.blog.Comment"/>
  <typeAlias alias="Post" type="domain.blog.Post"/>
  <typeAlias alias="Section" type="domain.blog.Section"/>
  <typeAlias alias="Tag" type="domain.blog.Tag"/>
</typeAliases>

2.指定包名package

<typeAliases>
  <package name="domain.blog"/>
</typeAliases>

别名有一个需要注意的点:java基本类型属性的别名前面带下划线,不带下划线的是对应的引用类型的属性

设置

设置比较重要

映射器Mapper

映射器的作用就是把mapper.xml文件注册到mapper寄存器中,有三种注册方式
1.使用相对于类路径的额资源引用

<!-- 使用相对于类路径的资源引用 -->
<mappers>
  <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  <mapper resource="org/mybatis/builder/PostMapper.xml"/>
</mappers>

要求:
1.mapper.xml跟mapper.java可以不在同一个包下
2.两个文件类型不同,名字也不是必须相同
2.使用完全限定资源定位符(URL)

<!-- 使用完全限定资源定位符(URL) -->
<mappers>
  <mapper url="file:///var/mappers/AuthorMapper.xml"/>
  <mapper url="file:///var/mappers/BlogMapper.xml"/>
  <mapper url="file:///var/mappers/PostMapper.xml"/>
</mappers>

3.使用映射器接口实现类的完全限定名

<!-- 使用映射器接口实现类的完全限定类名 -->
<mappers>
  <mapper class="org.mybatis.builder.AuthorMapper"/>
  <mapper class="org.mybatis.builder.BlogMapper"/>
  <mapper class="org.mybatis.builder.PostMapper"/>
</mappers>

要求:
1.mapper.xml跟mapper.java在同一个包下,或者早resource目录下创建完全相同的文件夹
2.两个文件类型不同,但是名字必须相同

4.将包内的映射器接口实现全部注册为映射器

<!-- 将包内的映射器接口实现全部注册为映射器 -->
<mappers>
  <package name="org.mybatis.builder"/>
</mappers>

要求:
1.mapper.xml跟mapper.java在同一个包下
2.两个文件类型不同,但是名字必须相同

其他配置不用了解(类型处理器,对象工厂,插件)

  1. 类型处理器 typeHandler
  2. 对象工厂 objectFactory
  3. plugins 插件
    mybatis-genenrator-core
    mybatis-plus
    通用mapper
posted @ 2022-07-15 17:21  Oh,mydream!  阅读(37)  评论(0编辑  收藏  举报