MyBatis 中 SqlMapConfig 配置文件詳解
0x00:文件介紹
在 WEB 工程中,對(duì)于 MyBatis 最核心的全局配置文件是 SqlMapConfig.xml 文件,其中包含了數(shù)據(jù)庫的連接配置信息、Mapper 映射文件的加載路徑、全局參數(shù)、類型別名等。
0x01:配置項(xiàng)詳解
configuration:包裹所有配置標(biāo)簽,是整個(gè)配置文件的頂級(jí)標(biāo)簽。
properties:屬性,該標(biāo)簽可以引入外部配置的屬性,也可以自己配置。該配置標(biāo)簽所在的同一個(gè)配置文件中的其他配置均可引用此配置中的屬性。
setting:全局配置參數(shù),用來配置一些改變運(yùn)行時(shí)行為的信息,例如是否使用緩存機(jī)制,是否使用延遲加載,是否使用錯(cuò)誤處理機(jī)制等。并且可以設(shè)置最大并發(fā)請(qǐng)求數(shù)量、最大并發(fā)事務(wù)數(shù)量,以及是否啟用命令空間等。
typeAliases:類型別名,用來設(shè)置一些別名來代替 Java 的長類型聲明,如 java.lang.int 變?yōu)?int,減少配置編碼的冗余。
typeHandlers:類型處理器,將 sql 中返回的數(shù)據(jù)庫類型轉(zhuǎn)換為相應(yīng) Java 類型的處理器配置。
objectFactory:對(duì)象工廠,實(shí)例化目標(biāo)類的工廠類配置。
plugins:插件,可以通過插件修改 MyBatis 的核心行為,例如對(duì)語句執(zhí)行的某一點(diǎn)進(jìn)行攔截調(diào)用。
environments:環(huán)境集合屬性對(duì)象,數(shù)據(jù)庫環(huán)境信息的集合。在一個(gè)配置文件中,可以有多種數(shù)據(jù)庫環(huán)境集合,這樣使 MyBatis 將 sql 同時(shí)映射至多個(gè)數(shù)據(jù)庫。
environment:環(huán)境子屬性對(duì)象,數(shù)據(jù)庫環(huán)境配置的詳細(xì)配置。
transactionManager:事務(wù)管理,指定 MyBatis 的事務(wù)管理器。
dataSource:數(shù)據(jù)源,使其中的 type 指定數(shù)據(jù)源的連接類型,在標(biāo)簽對(duì)中可以使用 property 屬性指定數(shù)據(jù)庫連接池的其他信息。
mappers:映射器,配置 sql 映射文件的位置,告知 MyBatis 去哪里加載 sql 映射配置。
0x02:代碼示例
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 1.properties屬性引入外部配置文件 --> <properties resource="org/mybatis/example/config.properties"> <!-- property里面的屬性全局均可使用 --> <property name="username" value="root"/> <property name="password" value="root"/> </properties> <!-- 2.全局配置參數(shù) --> <settings> <!-- 設(shè)置是否啟用緩存 --> <setting name="cacheEnabled" value="true"/> <!-- 設(shè)置是否啟用懶加載 --> <setting name="lazyLoadingEnabled" value="true"/> </settings> <!-- 3.別名設(shè)置 --> <typeAliases> <typeAlias alias="student" type="cn.com.mybatis.student"/> <typeAlias alias="teacher" type="cn.com.mybatis.teacher"/> <typeAlias alias="integer" type="java.lang.Integer"/> </typeAliases> <!-- 4.類型轉(zhuǎn)換器 --> <typeHandlers> <!-- 一個(gè)簡單類型轉(zhuǎn)換器 --> <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/> </typeHandlers> <!-- 5.對(duì)象工廠 --> <objectFactory type="org.mybatis.example.ExampleObjectFactory"> <!-- 對(duì)象工廠注入的參數(shù) --> <property name="someProperty" value="100"/> </objectFactory> <!-- 6.插件 --> <plugins> <plugin interceptor="org.mybatis.example.ExamplePlugin"> <property name="someProperty" value="100"/> </plugin> </plugins> <!-- 7.environments數(shù)據(jù)庫環(huán)境配置 --> <!-- 和Spring整合后environments配置將被廢除 --> <environments default="development"> <environment id="development"> <!-- 使用JDBC事務(wù)管理 --> <transactionManager type="JDBC" /> <!-- 數(shù)據(jù)庫連接池 --> <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> <!-- 加載映射文件 --> <mappers> <mapper resource="sqlmap/UserMapper.xml"/> <mapper resource="sqlmap/OtherMapper,.xml"/> </mappers> </configuration>
0x03:總結(jié)
對(duì)于 MyBatis 的核心配置文件,有些不常用的標(biāo)簽也可以不用死記硬背,了解常用的即可,不常用的需要用時(shí)可查看幫助文檔。
到此這篇關(guān)于MyBatis 中 SqlMapConfig 配置文件詳解的文章就介紹到這了,更多相關(guān)MyBatis SqlMapConfig 配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解析Flink內(nèi)核原理與實(shí)現(xiàn)核心抽象
Flink API提供了開發(fā)的接口,此外,為了實(shí)現(xiàn)業(yè)務(wù)邏輯,還必須為開發(fā)者提供自定義業(yè)務(wù)邏輯的能力,下面為大家解析Flink內(nèi)核原理與實(shí)現(xiàn)核心抽象2021-08-08Java8的Stream()與ParallelStream()的區(qū)別說明
這篇文章主要介紹了Java8的Stream()與ParallelStream()的區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07SpringBoot基于Actuator遠(yuǎn)程關(guān)閉服務(wù)
這篇文章主要介紹了SpringBoot基于Actuator遠(yuǎn)程關(guān)閉服務(wù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11springboot+thymeleaf+shiro標(biāo)簽的實(shí)例
這篇文章主要介紹了springboot+thymeleaf+shiro標(biāo)簽的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01Java之使用POI教你玩轉(zhuǎn)Excel導(dǎo)入與導(dǎo)出
這篇文章主要介紹了Java之使用POI教你玩轉(zhuǎn)Excel導(dǎo)入與導(dǎo)出,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10實(shí)現(xiàn)一個(gè)簡單Dubbo完整過程詳解
這篇文章主要為大家介紹了實(shí)現(xiàn)一個(gè)簡單Dubbo完整過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07SpringBoot?+?Disruptor實(shí)現(xiàn)特快高并發(fā)處理及使用Disruptor高速實(shí)現(xiàn)隊(duì)列的過程
Disruptor是一個(gè)開源的Java框架,它被設(shè)計(jì)用于在生產(chǎn)者—消費(fèi)者(producer-consumer problem,簡稱PCP)問題上獲得盡量高的吞吐量(TPS)和盡量低的延遲,這篇文章主要介紹了SpringBoot?+?Disruptor?實(shí)現(xiàn)特快高并發(fā)處理,使用Disruptor高速實(shí)現(xiàn)隊(duì)列,需要的朋友可以參考下2023-11-11