天天看點

Mybatis學習筆記--配置檔案常見配置解析1. 核心配置檔案2. 環境配置(environments)3. 屬性(properties)4. 類型别名(typeAliases)5. 設定(settings)6. 其他配置7. 映射器(mappers)

文章目錄

  • 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

Mybatis學習筆記--配置檔案常見配置解析1. 核心配置檔案2. 環境配置(environments)3. 屬性(properties)4. 類型别名(typeAliases)5. 設定(settings)6. 其他配置7. 映射器(mappers)

3. 屬性(properties)

我們可以通過properties屬性來實作引用配置檔案

這些屬性都是可外部配置且可動态替換的,既可以在典型的 Java 屬性檔案中配置,亦可通過 properties 元素的子元素來傳遞。【db.properties】

  1. 建立一個db.properties檔案
Mybatis學習筆記--配置檔案常見配置解析1. 核心配置檔案2. 環境配置(environments)3. 屬性(properties)4. 類型别名(typeAliases)5. 設定(settings)6. 其他配置7. 映射器(mappers)
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
           
  1. mybatis-config.xml中引入db.properties中的屬性
  • 全部在db.properties檔案中定義屬性
Mybatis學習筆記--配置檔案常見配置解析1. 核心配置檔案2. 環境配置(environments)3. 屬性(properties)4. 類型别名(typeAliases)5. 設定(settings)6. 其他配置7. 映射器(mappers)
  • 在标簽中配置
Mybatis學習筆記--配置檔案常見配置解析1. 核心配置檔案2. 環境配置(environments)3. 屬性(properties)4. 類型别名(typeAliases)5. 設定(settings)6. 其他配置7. 映射器(mappers)
PS:如果db.properties檔案和标簽定義了同名屬性并且同時 被引用,優先使用db.properties檔案中的屬性值!

4. 類型别名(typeAliases)

  • 類型别名是為 Java 類型設定一個短的名字。
  • 存在的意義僅在于用來減少類完全限定名的備援。
  1. mybatis-config.xml中聲明類别名
  • 方式一:直接定位到某個類
Mybatis學習筆記--配置檔案常見配置解析1. 核心配置檔案2. 環境配置(environments)3. 屬性(properties)4. 類型别名(typeAliases)5. 設定(settings)6. 其他配置7. 映射器(mappers)

使用:

Mybatis學習筆記--配置檔案常見配置解析1. 核心配置檔案2. 環境配置(environments)3. 屬性(properties)4. 類型别名(typeAliases)5. 設定(settings)6. 其他配置7. 映射器(mappers)
  • 方式二:掃描一整個包

也可以指定一個包名,MyBatis 會在包名下面搜尋需要的 Java Bean,比如:

掃描實體類的包,它的預設别名就為這個類的 類名,首字母小寫(大寫也行,建議小寫)!

Mybatis學習筆記--配置檔案常見配置解析1. 核心配置檔案2. 環境配置(environments)3. 屬性(properties)4. 類型别名(typeAliases)5. 設定(settings)6. 其他配置7. 映射器(mappers)

使用:

(這裡user或User都行)

Mybatis學習筆記--配置檔案常見配置解析1. 核心配置檔案2. 環境配置(environments)3. 屬性(properties)4. 類型别名(typeAliases)5. 設定(settings)6. 其他配置7. 映射器(mappers)

在實體類比較少的時候,使用第一種方式。

如果實體類十分多,建議使用第二種。

方式一可以DIY别名,方式二則不行,如果非要改,需要在實體上增加注解@Alias

例如:

Mybatis學習筆記--配置檔案常見配置解析1. 核心配置檔案2. 環境配置(environments)3. 屬性(properties)4. 類型别名(typeAliases)5. 設定(settings)6. 其他配置7. 映射器(mappers)

使用:

Mybatis學習筆記--配置檔案常見配置解析1. 核心配置檔案2. 環境配置(environments)3. 屬性(properties)4. 類型别名(typeAliases)5. 設定(settings)6. 其他配置7. 映射器(mappers)

5. 設定(settings)

幾個重要設定:

Mybatis學習筆記--配置檔案常見配置解析1. 核心配置檔案2. 環境配置(environments)3. 屬性(properties)4. 類型别名(typeAliases)5. 設定(settings)6. 其他配置7. 映射器(mappers)
Mybatis學習筆記--配置檔案常見配置解析1. 核心配置檔案2. 環境配置(environments)3. 屬性(properties)4. 類型别名(typeAliases)5. 設定(settings)6. 其他配置7. 映射器(mappers)
Mybatis學習筆記--配置檔案常見配置解析1. 核心配置檔案2. 環境配置(environments)3. 屬性(properties)4. 類型别名(typeAliases)5. 設定(settings)6. 其他配置7. 映射器(mappers)

6. 其他配置

  • typeHandlers(類型處理器)
  • objectFactory(對象工廠)
  • plugins插件
    • mybatis-generator-core
    • mybatis-plus
    • 通用mapper

7. 映射器(mappers)

Mybatis學習筆記--配置檔案常見配置解析1. 核心配置檔案2. 環境配置(environments)3. 屬性(properties)4. 類型别名(typeAliases)5. 設定(settings)6. 其他配置7. 映射器(mappers)
  1. 不要使用第二個
  2. 如果把mapper的xml檔案寫在resource目錄下,就不能用第三種方式注冊
Mybatis學習筆記--配置檔案常見配置解析1. 核心配置檔案2. 環境配置(environments)3. 屬性(properties)4. 類型别名(typeAliases)5. 設定(settings)6. 其他配置7. 映射器(mappers)

無法注冊!

  1. 如果使用class檔案綁定注冊
<mappers>
	<mapper class="com.gangbb.model.dao.UserMapper"/>
</mappers>
           

注意點:

  • 接口和他的Mapper配置檔案必須同名!
  • 接口和他的Mapper配置檔案必須在同一個包下!
  1. 使用掃描包進行注入綁定
<mappers>
    <package name="com.gangbb.model.dao"/>
</mappers>
           

注意點:

  • 接口和他的Mapper配置檔案必須同名!
  • 接口和他的Mapper配置檔案必須在同一個包下!

繼續閱讀