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中使用两种方法解决
- 使用
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.两个文件类型不同,但是名字必须相同
其他配置不用了解(类型处理器,对象工厂,插件)
- 类型处理器 typeHandler
- 对象工厂 objectFactory
- plugins 插件
mybatis-genenrator-core
mybatis-plus
通用mapper