1.核心配置文件
- mybatis-config.xml
- mybatis的配置文件中包含了深深影響mybatis行爲的設置和屬性信息
configuration(配置)
properties(屬性)
settings(設置)
typeAliases(類型別名)
typeHandlers(類型處理器)
objectFactory(對象工廠)
plugins(插件)
environments(環境配置)
environment(環境變量)
transactionManager(事務管理器)
dataSource(數據源)
databaseIdProvider(數據庫廠商標識)
mappers(映射器)
2.環境配置(environments)
mybatis可以配置適應多種環境
不過要記住:儘管可以配置多個環境,但每個SqlSessionFactory實例只能選擇一個環境!
學會使用配置多套運行環境,切換環境通過default來修改對應的環境的id
mybatis默認的事務管理器是JDBC,連接池是POOLED
3.屬性(properties)
這些屬性可以在外部進行配置,並可以進行動態替換。你既可以在典型的 Java 屬性文件中配置這些屬性,也可以在 properties 元素的子元素中設置。
【db.properties】
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
username=root
password=root
在xml配置文件中,所有的標籤都是有順序的!
在覈心配置文件中引入
<!--引入外部配置文件-->
<properties resource="db.properties">
<property name="username" value="root"/>
<property name="password" value="root"/>
</properties>
- 可以直接引入外部文件
- 可以在其中增加一些property屬性配置文件
- 如果兩個文件有同一個字段,優先使用外部配置文件的
4.類型別名(typeAliases)
類型別名是爲jJava類型設置的一個短的名字
存在的意義僅在於用來減少類完全限定名的冗餘
<!--給實體類起一個別名-->
<typeAliases>
<typeAlias type="com.superman.pojo.User" alias="User"/>
</typeAliases>
也可以指定一個包名,mybatis會在包名下面搜索需要的Java Bean,比如:
掃描實體類的包名,它的默認別名就爲這個類的類名,首字母小寫!
<!--通過掃描包的方式給實體類起一個別名-->
<typeAliases>
<package name="com.superman.pojo"/>
</typeAliases>
在實體類比較少的情況下使用第一種(可以自定義別名)
在實體類比較多的情況下使用第二種(無法自定義別名),可以通過註解的方式來實現自定義別名
//實體類
@Alias("user")
public class User {
5.設置(settings)
這是 MyBatis 中極爲重要的調整設置,它們會改變 MyBatis 的運行時行爲。 下表描述了設置中各項設置的含義、默認值等。(重點是下面三個)
6.其他配置
- typeHandles(類型處理器)
- objectFactory(對象工廠)
- plugins插件
- mybatis-generator-core
- mybatis-plus
- 通用mapper
7.映射器(mappers)
MapperRegistry:註冊綁定我們寫的mapper文件
方式一:【推薦使用】
<!--每一個Mapper.xml都需要在mybatis的核心配置文件中配置-->
<mappers>
<mapper resource="com/superman/dao/UserMapper.xml"/>
</mappers>
方式二:使用class文件綁定註冊
<!--每一個Mapper.xml都需要在mybatis的核心配置文件中配置-->
<mappers>
<mapper class="com.superman.dao.UserMapper" />
</mappers>
注意點:
- 接口和它的mapper配置文件名必須同名!
- 接口和它的mapper配置文件必須在同一個包下!
方式三:使用掃描package進行注入綁定
<!--每一個Mapper.xml都需要在mybatis的核心配置文件中配置-->
<mappers>
<package name="com.superman.dao"/>
</mappers>