Mybatis中的config.xml配置文件詳細(xì)解析
經(jīng)過前面的文章,我覺得對Mybatis的正題理解已經(jīng)足夠了,但是對Mybatis的使用,我覺得還是會有一點(diǎn)的模糊,就我個人而言,我覺得掌握好Mybatis框架,主要要明白三個文件,第一個就是等下要談?wù)摰腗ybatis-comfig.xml文件,還有就是**Mapper.xml,以及我們所定義的Mapper類,理解了這三個東西,然后有sql的基礎(chǔ),還有java的基礎(chǔ)的話,后面不論是使用基于xml的方法,還是基于java-based Configuration的方法,都會簡單的多。
廢話不多說,現(xiàn)在就一起來理解一下第一個重要的文件:Mybatis-config.xml文件。
首先我們來看一下,一個空白的完整的Mybatis-config.xml文件(這個名字可以自由操作,必須要記住這個是Mybatis配置文件就行)
可以直接創(chuàng)建一個空白的xml文件,然后上去官網(wǎng)復(fù)制一份頭文件,粘貼進(jìn)來
<?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
上面這個就是基本的Mybatis-config.xml文件,我們在開發(fā)中需要添加我們需要的配置,下面就給出一個加上了基本的配置文件,通過這個來說:
<?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)容里面我們可以看見的標(biāo)簽有下面這些,但是這些是什么意思呢?
<configuration>:聲明在標(biāo)簽里面的信息是配置信息
<typeAliases>:聲明在該標(biāo)簽里面的信息是一個個的別名
<typealias>:聲明要使用別名的對象(全路徑)用java注解的話可以使用@Alias注解聲明
<environments>:聲明在該標(biāo)簽內(nèi)的環(huán)境變量,default表示默認(rèn)的環(huán)境變量,一個environment表示一個jdbc連接數(shù)據(jù)庫,如果有很多數(shù)據(jù)庫的話我們要用到不同的環(huán)境變量
<environment>:聲明環(huán)境變量
<transactionManager>:聲明事務(wù)管理器 它的類型(type)有:JDBC(基于jdbc的事務(wù)) 還有 MANAGED(托管的事務(wù))
<dataSource>:聲明數(shù)據(jù)源,數(shù)據(jù)源的類型有NOPOOLED ,POOLED ,還有JIDN,在數(shù)據(jù)量少的話用ONPOOLED,測試和開發(fā)過程一般用POOLED,實際運(yùn)行使用JIDN
<property>:jdbc連接的一些屬性
<mappers>:聲明我們定義的一個個Mapper類,或者說是關(guān)聯(lián)
<mapper>:聲明Mapper的路徑
上面說到的都是在使用Mybatis要使用到的基本標(biāo)簽,必須要掌握,可能不明白上面那個environments的使用,怎么去獲取一個environment,下面看看一個例子來:
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)??下面在一個看看比較常用的其他標(biāo)簽
<Settings>:聲明一些全局變量的
<properties>:聲明屬性文件的key和value,但是如果使用了.properties文件將會被覆蓋。
<typeHandlers>:自定義我們的傳入?yún)?shù)類型處理器,需要extends BaseTypeHandler<自定義響應(yīng)的類型>
最后再來看看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ì)解析,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Reactor定制一個生產(chǎn)的WebClient實現(xiàn)示例
這篇文章主要為大家介紹了Reactor定制一個生產(chǎn)的WebClient實現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08Java設(shè)計模式之工廠模式分析【簡單工廠、工廠方法、抽象工廠】
這篇文章主要介紹了Java設(shè)計模式之工廠模式,結(jié)合實例形式分析了簡單工廠、工廠方法、抽象工廠等相關(guān)功能、實現(xiàn)與使用方法,需要的朋友可以參考下2018-04-04Java實現(xiàn)ZooKeeper的zNode監(jiān)控
這篇文章主要介紹了Java實現(xiàn)ZooKeeper的zNode監(jiān)控問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-08-08Sleuth(Micrometer)+ZipKin分布式鏈路問題小結(jié)
在微服務(wù)架構(gòu)中,分布式鏈路追蹤技術(shù)成為了解決系統(tǒng)復(fù)雜調(diào)用問題的關(guān)鍵,本文介紹了其他鏈路追蹤方案,如Cat、Pinpoint和Skywalking,展示了分布式鏈路追蹤技術(shù)的多樣化,感興趣的朋友一起看看吧2024-10-10javaSystem.out.println()輸出byte[]、char[]異常的問題詳析
這篇文章主要給大家介紹了關(guān)于javaSystem.out.println()輸出byte[]、char[]異常問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看啊2019-01-01