MyBatis 中 SqlMapConfig 配置文件詳解
0x00:文件介紹
在 WEB 工程中,對于 MyBatis 最核心的全局配置文件是 SqlMapConfig.xml 文件,其中包含了數(shù)據(jù)庫的連接配置信息、Mapper 映射文件的加載路徑、全局參數(shù)、類型別名等。
0x01:配置項詳解
configuration:包裹所有配置標(biāo)簽,是整個配置文件的頂級標(biāo)簽。
properties:屬性,該標(biāo)簽可以引入外部配置的屬性,也可以自己配置。該配置標(biāo)簽所在的同一個配置文件中的其他配置均可引用此配置中的屬性。
setting:全局配置參數(shù),用來配置一些改變運行時行為的信息,例如是否使用緩存機(jī)制,是否使用延遲加載,是否使用錯誤處理機(jī)制等。并且可以設(shè)置最大并發(fā)請求數(shù)量、最大并發(fā)事務(wù)數(shù)量,以及是否啟用命令空間等。
typeAliases:類型別名,用來設(shè)置一些別名來代替 Java 的長類型聲明,如 java.lang.int 變?yōu)?int,減少配置編碼的冗余。
typeHandlers:類型處理器,將 sql 中返回的數(shù)據(jù)庫類型轉(zhuǎn)換為相應(yīng) Java 類型的處理器配置。
objectFactory:對象工廠,實例化目標(biāo)類的工廠類配置。
plugins:插件,可以通過插件修改 MyBatis 的核心行為,例如對語句執(zhí)行的某一點進(jìn)行攔截調(diào)用。
environments:環(huán)境集合屬性對象,數(shù)據(jù)庫環(huán)境信息的集合。在一個配置文件中,可以有多種數(shù)據(jù)庫環(huán)境集合,這樣使 MyBatis 將 sql 同時映射至多個數(shù)據(jù)庫。
environment:環(huán)境子屬性對象,數(shù)據(jù)庫環(huán)境配置的詳細(xì)配置。
transactionManager:事務(wù)管理,指定 MyBatis 的事務(wù)管理器。
dataSource:數(shù)據(jù)源,使其中的 type 指定數(shù)據(jù)源的連接類型,在標(biāo)簽對中可以使用 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>
<!-- 一個簡單類型轉(zhuǎn)換器 -->
<typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers>
<!-- 5.對象工廠 -->
<objectFactory type="org.mybatis.example.ExampleObjectFactory">
<!-- 對象工廠注入的參數(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é)
對于 MyBatis 的核心配置文件,有些不常用的標(biāo)簽也可以不用死記硬背,了解常用的即可,不常用的需要用時可查看幫助文檔。
到此這篇關(guān)于MyBatis 中 SqlMapConfig 配置文件詳解的文章就介紹到這了,更多相關(guān)MyBatis SqlMapConfig 配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java8的Stream()與ParallelStream()的區(qū)別說明
這篇文章主要介紹了Java8的Stream()與ParallelStream()的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07
SpringBoot基于Actuator遠(yuǎn)程關(guān)閉服務(wù)
這篇文章主要介紹了SpringBoot基于Actuator遠(yuǎn)程關(guān)閉服務(wù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11
springboot+thymeleaf+shiro標(biāo)簽的實例
這篇文章主要介紹了springboot+thymeleaf+shiro標(biāo)簽的實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
Java之使用POI教你玩轉(zhuǎn)Excel導(dǎo)入與導(dǎo)出
這篇文章主要介紹了Java之使用POI教你玩轉(zhuǎn)Excel導(dǎo)入與導(dǎo)出,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10
SpringBoot?+?Disruptor實現(xiàn)特快高并發(fā)處理及使用Disruptor高速實現(xiàn)隊列的過程
Disruptor是一個開源的Java框架,它被設(shè)計用于在生產(chǎn)者—消費者(producer-consumer problem,簡稱PCP)問題上獲得盡量高的吞吐量(TPS)和盡量低的延遲,這篇文章主要介紹了SpringBoot?+?Disruptor?實現(xiàn)特快高并發(fā)處理,使用Disruptor高速實現(xiàn)隊列,需要的朋友可以參考下2023-11-11

