(Mybatis)XML配置解析
文章目錄
- XML配置解析
- 1.核心配置文件
- 2.環(huán)境配置(environments)
- 3. 屬性(properties)
- 4. 設置(settings)
- 5. 其他配置
- 6. 映射器(mappers)
- 7. 生命周期和作用域
XML配置解析
Mybatis中文文檔
1.核心配置文件
mybatis-config.xml
MyBatis 的配置文件包含了會深深影響 MyBatis 行為的設置和屬性信息。
- configuration(配置)
- properties(屬性)
- settings(設置)
- typeAliases(類型別名)
- typeHandlers(類型處理器)
- objectFactory(對象工廠)
- plugins(插件)
- venvironments(環(huán)境配置)
- environment(環(huán)境變量)
- transactionManager(事務管理器)
- dataSource(數(shù)據(jù)源)
- databaseIdProvider(數(shù)據(jù)庫廠商標識)
- mappers(映射器)
2.環(huán)境配置(environments)
- MyBatis 可以配置成適應多種環(huán)境
- 盡管可以配置多個環(huán)境,但每個 SqlSessionFactory 實例只能選擇一種環(huán)境。
- default可以修改默認環(huán)境
- Mybatis默認的事務管理器就是 JDBC , 連接池 :POOLED
3. 屬性(properties)
可以通過properties屬性來實現(xiàn)引用配置文件
這些屬性都是可外部配置且可動態(tài)替換的,既可以在典型的 Java 屬性文件中配置,亦可通過 properties 元素的子元素來傳遞。【db.properties】
編寫一個配置文件
db.properties
在xml中所有標簽都必須按照順序
在核心配置文件中引入db.properties
- 可以直接引入外部文件
- 可以在其中增加一些屬性配置
- 如果兩個文件有同一個字段,優(yōu)先使用外部配置文件的字段!
4. 設置(settings)
設置的官方文檔
https://mybatis.org/mybatis-3/zh/configuration.html#settings
MyBatis 中極為重要的調(diào)整設置,它們會改變 MyBatis 的運行時行為。
還有兩個經(jīng)常用的
5. 其他配置
- typeHandlers(類型處理器)
- objectFactory(對象工廠)
- plugins插件
- mybatis-generator-core
- mybatis-plus
- 通用mapper
6. 映射器(mappers)
MapperRegistry:注冊綁定Mapper文件;
方式一:推薦使用
方式二:使用class文件綁定注冊
<mappers><mapper class="com.zh.dao.UserMapper"/> </mappers>方式三:掃描包綁定注冊
<mappers><package name="com.zh.dao"/> </mappers>方式二和方式三的注意點:
- 接口和他的Mapper配置文件必須同名!
- 接口和他的Mapper配置文件必須在同一個包下!
7. 生命周期和作用域
生命周期,和作用域,是至關重要的,因為錯誤的使用會導致非常嚴重的并發(fā)問題。
SqlSessionFactoryBuilder:
- 一旦創(chuàng)建了 SqlSessionFactory,就不再需要它了
- 局部變量
SqlSessionFactory:
- 說白了就是可以想象為 :數(shù)據(jù)庫連接池
- SqlSessionFactory 一旦被創(chuàng)建就應該在應用的運行期間一直存在,沒有任何理由丟棄它或重新創(chuàng)建另一個實例。
- 因此 SqlSessionFactory 的最佳作用域是應用作用域。
- 最簡單的就是使用單例模式或者靜態(tài)單例模式。
SqlSession
- 連接到連接池的一個請求!
- SqlSession 的實例不是線程安全的,因此是不能被共享的,所以它的最佳的作用域是請求或方法作用域。
- 用完之后需要趕緊關閉,否則資源被占用!
生命周期,和作用域,是至關重要的,因為錯誤的使用會導致非常嚴重的并發(fā)問題。
每一個Mapper,就代表一個具體的業(yè)務!
總結
以上是生活随笔為你收集整理的(Mybatis)XML配置解析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (Mybatis)增删改查实现
- 下一篇: (数据结构与算法)使用栈来实现综合计算器