Mybatis中的config.xml配置文件詳細(xì)解析
經(jīng)過(guò)前面的文章,我覺(jué)得對(duì)Mybatis的正題理解已經(jīng)足夠了,但是對(duì)Mybatis的使用,我覺(jué)得還是會(huì)有一點(diǎn)的模糊,就我個(gè)人而言,我覺(jué)得掌握好Mybatis框架,主要要明白三個(gè)文件,第一個(gè)就是等下要談?wù)摰腗ybatis-comfig.xml文件,還有就是**Mapper.xml,以及我們所定義的Mapper類,理解了這三個(gè)東西,然后有sql的基礎(chǔ),還有java的基礎(chǔ)的話,后面不論是使用基于xml的方法,還是基于java-based Configuration的方法,都會(huì)簡(jiǎn)單的多。
廢話不多說(shuō),現(xiàn)在就一起來(lái)理解一下第一個(gè)重要的文件:Mybatis-config.xml文件。
首先我們來(lái)看一下,一個(gè)空白的完整的Mybatis-config.xml文件(這個(gè)名字可以自由操作,必須要記住這個(gè)是Mybatis配置文件就行)
可以直接創(chuàng)建一個(gè)空白的xml文件,然后上去官網(wǎng)復(fù)制一份頭文件,粘貼進(jìn)來(lái)
<?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> </configuration
上面這個(gè)就是基本的Mybatis-config.xml文件,我們?cè)陂_(kāi)發(fā)中需要添加我們需要的配置,下面就給出一個(gè)加上了基本的配置文件,通過(guò)這個(gè)來(lái)說(shuō):
<?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> <typeAliases> <typeAlias alias="Student" type="com.mybatis3.domain.Student" /> </typeAliases> <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/test" /> <property name="username" value="root" /> <property name="password" value="admin" /> </dataSource> </environment> </environments> <mappers> <mapper resource="com/mybatis3/mappers/StudentMapper.xml" /> </mappers> </configuration>
從上面的內(nèi)容里面我們可以看見(jiàn)的標(biāo)簽有下面這些,但是這些是什么意思呢?
<configuration>:聲明在標(biāo)簽里面的信息是配置信息
<typeAliases>:聲明在該標(biāo)簽里面的信息是一個(gè)個(gè)的別名
<typealias>:聲明要使用別名的對(duì)象(全路徑)用java注解的話可以使用@Alias注解聲明
<environments>:聲明在該標(biāo)簽內(nèi)的環(huán)境變量,default表示默認(rèn)的環(huán)境變量,一個(gè)environment表示一個(gè)jdbc連接數(shù)據(jù)庫(kù),如果有很多數(shù)據(jù)庫(kù)的話我們要用到不同的環(huán)境變量
<environment>:聲明環(huán)境變量
<transactionManager>:聲明事務(wù)管理器 它的類型(type)有:JDBC(基于jdbc的事務(wù)) 還有 MANAGED(托管的事務(wù))
<dataSource>:聲明數(shù)據(jù)源,數(shù)據(jù)源的類型有NOPOOLED ,POOLED ,還有JIDN,在數(shù)據(jù)量少的話用ONPOOLED,測(cè)試和開(kāi)發(fā)過(guò)程一般用POOLED,實(shí)際運(yùn)行使用JIDN
<property>:jdbc連接的一些屬性
<mappers>:聲明我們定義的一個(gè)個(gè)Mapper類,或者說(shuō)是關(guān)聯(lián)
<mapper>:聲明Mapper的路徑
上面說(shuō)到的都是在使用Mybatis要使用到的基本標(biāo)簽,必須要掌握,可能不明白上面那個(gè)environments的使用,怎么去獲取一個(gè)environment,下面看看一個(gè)例子來(lái):
InputStream in = Resource.getResourceAsInputSteam("mybatis.config"); //定義默認(rèn)environment defaultSqlSessionFactory = new SqlSessionFactoryBuilder().build(in); //其他的environment otherSqlSessionFactory = new SqlSessionFactoryBuilder().build(in, "environment的ID");
上面的defaultSqlSessionFactory要自己聲明(注意)
那么除了上面的標(biāo)簽之外還有哪些標(biāo)簽?zāi)??下面在一個(gè)看看比較常用的其他標(biāo)簽
<Settings>:聲明一些全局變量的
<properties>:聲明屬性文件的key和value,但是如果使用了.properties文件將會(huì)被覆蓋。
<typeHandlers>:自定義我們的傳入?yún)?shù)類型處理器,需要extends BaseTypeHandler<自定義響應(yīng)的類型>
最后再來(lái)看看Mybatis默認(rèn)的setting配置:
<setting name="cacheEnabled" value="true" />//是否使用緩存 <setting name="lazyLoadingEnabled" value="true" />//是否是懶記載 <setting name="multipleResultSetsEnabled" value="true" /> <setting name="useColumnLabel" value="true" /> <setting name="useGeneratedKeys" value="false" /> <setting name="autoMappingBehavior" value="PARTIAL" /> <setting name="defaultExecutorType" value="SIMPLE" /> <setting name="defaultStatementTimeout" value="25000" /> <setting name="safeRowBoundsEnabled" value="false" /> <setting name="mapUnderscoreToCamelCase" value="false" /> [java] view plain copy <setting name="localCacheScope" value="SESSION" /> <setting name="jdbcTypeForNull" value="OTHER" /> <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode ,toString" />
總結(jié)
以上所述是小編給大家介紹的Mybatis中的config.xml配置文件詳細(xì)解析,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Reactor定制一個(gè)生產(chǎn)的WebClient實(shí)現(xiàn)示例
這篇文章主要為大家介紹了Reactor定制一個(gè)生產(chǎn)的WebClient實(shí)現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08Java設(shè)計(jì)模式之工廠模式分析【簡(jiǎn)單工廠、工廠方法、抽象工廠】
這篇文章主要介紹了Java設(shè)計(jì)模式之工廠模式,結(jié)合實(shí)例形式分析了簡(jiǎn)單工廠、工廠方法、抽象工廠等相關(guān)功能、實(shí)現(xiàn)與使用方法,需要的朋友可以參考下2018-04-04Java實(shí)現(xiàn)ZooKeeper的zNode監(jiān)控
這篇文章主要介紹了Java實(shí)現(xiàn)ZooKeeper的zNode監(jiān)控問(wèn)題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-08-08SpringBoot遇到的坑@Qualifier報(bào)紅的解決
這篇文章主要介紹了SpringBoot遇到的坑@Qualifier報(bào)紅的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11JAVA實(shí)現(xiàn)多線程的兩種方法實(shí)例分享
這篇文章介紹了JAVA實(shí)現(xiàn)多線程的兩種方法實(shí)例分享,有需要的朋友可以參考一下2013-08-08SpringBoot深入分析講解監(jiān)聽(tīng)器模式下
監(jiān)聽(tīng)器模式,大家應(yīng)該并不陌生,主要的組成要素包括了事件、監(jiān)聽(tīng)器以及廣播器;當(dāng)事件發(fā)生時(shí),廣播器負(fù)責(zé)將事件傳遞給所有已知的監(jiān)聽(tīng)器,而監(jiān)聽(tīng)器會(huì)對(duì)自己感興趣的事件進(jìn)行處理2022-07-07Sleuth(Micrometer)+ZipKin分布式鏈路問(wèn)題小結(jié)
在微服務(wù)架構(gòu)中,分布式鏈路追蹤技術(shù)成為了解決系統(tǒng)復(fù)雜調(diào)用問(wèn)題的關(guān)鍵,本文介紹了其他鏈路追蹤方案,如Cat、Pinpoint和Skywalking,展示了分布式鏈路追蹤技術(shù)的多樣化,感興趣的朋友一起看看吧2024-10-10javaSystem.out.println()輸出byte[]、char[]異常的問(wèn)題詳析
這篇文章主要給大家介紹了關(guān)于javaSystem.out.println()輸出byte[]、char[]異常問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看啊2019-01-01