文章目錄
- 1. 核心配置檔案
- 2. 環境配置(environments)
- 3. 屬性(properties)
- 4. 類型别名(typeAliases)
- 5. 設定(settings)
- 6. 其他配置
- 7. 映射器(mappers)
本文章涉及環境版本:
- mysql 5.7
- Mybatis 3.5.x
- Maven 3.6.x
- JDK 1.8
項目代碼倉庫:
https://github.com/Gang-bb/Study-Record/tree/main/bzhan-mybatis-study
需要clone整個bzhan-mybatis-study項目
(整體是一個maven多module工程)
該文章對應:《bzhan-mybatis-study02 》module項目
1. 核心配置檔案
- 配置檔案官方推薦命名:mybatis-config.xml. 當然也可以自己命名。
- MyBatis 的配置檔案包含了會深深影響 MyBatis 行為的設定和屬性資訊。
configuration(配置)
properties(屬性)
settings(設定)
typeAliases(類型别名)
typeHandlers(類型處理器)
objectFactory(對象工廠)
plugins(插件)
environments(環境配置)
- environment(環境變量)
- transactionManager(事務管理器)
- dataSource(資料源)
databaseIdProvider(資料庫廠商辨別)
mappers(映射器)
2. 環境配置(environments)
MyBatis 可以配置成适應多種環境
不過要記住:盡管可以配置多個環境,但每個 SqlSessionFactory 執行個體隻能選擇一種環境。
Mybatis預設的事務管理器就是 JDBC , 連接配接池 : POOLED

3. 屬性(properties)
我們可以通過properties屬性來實作引用配置檔案
這些屬性都是可外部配置且可動态替換的,既可以在典型的 Java 屬性檔案中配置,亦可通過 properties 元素的子元素來傳遞。【db.properties】
- 建立一個db.properties檔案
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis-study?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPubicKeyRetrieval=true
username=root
password=root
- mybatis-config.xml中引入db.properties中的屬性
- 全部在db.properties檔案中定義屬性
- 在标簽中配置
PS:如果db.properties檔案和标簽定義了同名屬性并且同時 被引用,優先使用db.properties檔案中的屬性值!
4. 類型别名(typeAliases)
- 類型别名是為 Java 類型設定一個短的名字。
- 存在的意義僅在于用來減少類完全限定名的備援。
- mybatis-config.xml中聲明類别名
- 方式一:直接定位到某個類
使用:
- 方式二:掃描一整個包
也可以指定一個包名,MyBatis 會在包名下面搜尋需要的 Java Bean,比如:
掃描實體類的包,它的預設别名就為這個類的 類名,首字母小寫(大寫也行,建議小寫)!
使用:
(這裡user或User都行)
在實體類比較少的時候,使用第一種方式。
如果實體類十分多,建議使用第二種。
方式一可以DIY别名,方式二則不行,如果非要改,需要在實體上增加注解@Alias
例如:
使用:
5. 設定(settings)
幾個重要設定:
6. 其他配置
- typeHandlers(類型處理器)
- objectFactory(對象工廠)
- plugins插件
- mybatis-generator-core
- mybatis-plus
- 通用mapper
7. 映射器(mappers)
- 不要使用第二個
- 如果把mapper的xml檔案寫在resource目錄下,就不能用第三種方式注冊
無法注冊!
- 如果使用class檔案綁定注冊
<mappers>
<mapper class="com.gangbb.model.dao.UserMapper"/>
</mappers>
注意點:
- 接口和他的Mapper配置檔案必須同名!
- 接口和他的Mapper配置檔案必須在同一個包下!
- 使用掃描包進行注入綁定
<mappers>
<package name="com.gangbb.model.dao"/>
</mappers>
注意點:
- 接口和他的Mapper配置檔案必須同名!
- 接口和他的Mapper配置檔案必須在同一個包下!