MyBatis核心配置文件深入分析
MyBatis 的核心配置文件是 mybatis-config.xml。注意配置文件中節(jié)點的順序有要求,必須按照下面的順序填寫節(jié)點信息:
(properties,settings,typeAliases,typeHandlers,objectFactory,objectWrapperFactory,reflectorFactory,plugins,environments,databaseIdProvider,mappers)
<configuration>
<properties></properties>
<settings></settings>
<typeAliases></typeAliases>
<typeHandlers></typeHandlers>
<objectFactory></objectFactory>
<objectWrapperFactory></objectWrapperFactory>
<reflectorFactory></reflectorFactory>
<plugins></plugins>
<environments></environments>
<databaseIdProvider></databaseIdProvider>
<mappers></mappers>
</configuration>環(huán)境配置與 mappers 映射器
基本的 MyBatis 配置:
<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</dataSource>
</environment>
</environments>
<!--每個mapper.xml都需要在mybatis配置文件中進(jìn)行配置-->
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>在上面這段配置中配置了運行環(huán)境以及 mappers 映射器。
配置 environment 時,通過 transactionManager 指定事務(wù)管理器,通過 dataSource 指定數(shù)據(jù)庫的引擎類型、連接方式、用戶名、密碼。
mappers 映射器用來和代碼中寫的 mapper 一一對應(yīng),在代碼中寫一個 mapper 接口和 mapper.xml 文件,就需要在 mappers 映射器中增加一個 mapper 節(jié)點。
屬性(properties)
在寫 mybatis-config.xml 環(huán)境配置的時候,將數(shù)據(jù)庫的連接信息直接寫在了 mybatis-config.xml 配置文件中,不方便后續(xù)的更改,因此可以使用屬性(properties)的能力。
在 resources 目錄下新建一個 db.properties:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8
username=root
password=123
接著在 mybatis-config.xml 的 configuration 中添加 properties 節(jié)點,注意這個節(jié)點的位置必須放在首位。
<properties resource="db.properties"> </properties>
接著就可以用 properties 中的屬性去代替 xml 中的屬性
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
設(shè)置(settings)
配置文件中的 settings 是 MyBatis 中極為重要的調(diào)整設(shè)置,它們會改變 MyBatis 的運行時行為。
常用的設(shè)置有以下幾種:

設(shè)置的配置方式如下:
<settings>
<setting name="cacheEnabled" value="true"/>
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="mapUnderscoreToCamelCase" value="false"/>
<setting name="logImpl" value="NO_LOGGING"/>
</settings>類型別名(typeAliases)
類型別名可為 Java 類型設(shè)置一個縮寫名字。 它僅用于 XML 配置,意在降低冗余的全限定類名書寫。
類型別名有兩種方式,第一種是對類取別名,第二種是指定一個包名
<mapper namespace="com.cn.mapper.UserMapper">
<select id="getUserList" resultType="com.cn.pojo.User">
select * from user;
</select>
</mapper>
第一種方式是對類取別名,這里的 resultType 寫的是類的全限定名,我們可以在 mybatis-config.xml 中使用類型別名來簡化。typeAliases 在配置文件中的位置需要放在 setting 后面
<typeAliases>
<typeAlias type="com.cn.pojo.User" alias="user"/>
</typeAliases>
這樣設(shè)置之后就可以在 resultType 中直接使用 user
<mapper namespace="com.cn.mapper.UserMapper">
<select id="getUserList" resultType="user">
select * from user;
</select>
</mapper>
第二種方式是指定一個包名,MyBatis 會在指定的包名路徑下搜索需要的 JavaBean。修改配置文件,使用包名來指定
<typeAliases>
<package name="com.cn.pojo"/>
</typeAliases>
每一個在包 com.lanqiaoyun.pojo 中的 Java Bean,在沒有注解的情況下,會使用 Bean 的首字母小寫的非限定類名來作為它的別名。 比如 com.lanqiaoyun.pojo.User 的別名為 user;若有注解,則別名為其注解值
@Alias("user")
public class User {
...
}
上方所示完整配置文件如下:
<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="db.properties">
</properties>
<settings>
<setting name="cacheEnabled" value="true"/>
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="mapUnderscoreToCamelCase" value="false"/>
<setting name="logImpl" value="NO_LOGGING"/>
</settings>
<typeAliases>
<package name="com.cn.pojo"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<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>
<!--每個mapper.xml都需要在mybatis配置文件中進(jìn)行配置-->
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>到此這篇關(guān)于MyBatis核心配置文件深入分析的文章就介紹到這了,更多相關(guān)MyBatis配置文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java學(xué)習(xí)筆記_關(guān)于字符串概述
下面小編就為大家?guī)硪黄猨ava學(xué)習(xí)筆記_關(guān)于字符串概述。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05
mybatis-plus?Wrapper條件構(gòu)造器updateForSet更新方式
這篇文章主要介紹了mybatis-plus?Wrapper條件構(gòu)造器updateForSet更新方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
springboot項目連接多種數(shù)據(jù)庫該如何操作詳析
在Spring Boot應(yīng)用中連接多個數(shù)據(jù)庫或數(shù)據(jù)源可以使用多種方式,下面這篇文章主要給大家介紹了關(guān)于springboot項目連接多種數(shù)據(jù)庫該如何操作的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08
Spring?Boot?3.1中整合Spring?Security和Keycloak的方法
本文介紹在最新的SpringBoot3.1版本之下,如何將Keycloak和Spring?Security一起跑起來,文中結(jié)合實例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2023-06-06
mybatis-parameterType傳入map條件方式
這篇文章主要介紹了mybatis-parameterType傳入map條件方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
IDEA創(chuàng)建Maven項目后報錯不出現(xiàn)src文件夾的情況解決
最近剛開始學(xué)習(xí)maven,正準(zhǔn)備使用idea創(chuàng)建一個maven項目練手,卻發(fā)現(xiàn)自己創(chuàng)建的maven項目始終沒有src目錄,下面這篇文章主要給大家介紹了關(guān)于IDEA創(chuàng)建Maven項目后報錯不出現(xiàn)src文件夾的情況解決,需要的朋友可以參考下2023-05-05
Java實現(xiàn)FIFO任務(wù)調(diào)度隊列策略
在工作中,很多高并發(fā)的場景中,我們會用到隊列來實現(xiàn)大量的任務(wù)請求。當(dāng)任務(wù)需要某些特殊資源的時候,我們還需要合理的分配資源,讓隊列中的任務(wù)高效且有序完成任務(wù)。本文將為大家介紹通過java實現(xiàn)FIFO任務(wù)調(diào)度,需要的可以參考一下2021-12-12
java實用小技巧之判斷l(xiāng)ist是否有重復(fù)項簡單例子
這篇文章主要給大家介紹了關(guān)于java實用小技巧之判斷l(xiāng)ist是否有重復(fù)項的相關(guān)資料,在開發(fā)工作中我們有時需要去判斷List集合中是否含有重復(fù)的元素,需要的朋友可以參考下2023-10-10

