溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mybatis讀取mapper文件有哪幾種方式

發(fā)布時間:2021-12-30 09:49:08 來源:億速云 閱讀:301 作者:小新 欄目:大數(shù)據(jù)

這篇文章給大家分享的是有關(guān)mybatis讀取mapper文件有哪幾種方式的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

mybatis讀取mapper文件有哪幾種方式?優(yōu)先級如何?

<!-- 使用相對于類路徑的資源引用 --><mappers>
  <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  <mapper resource="org/mybatis/builder/PostMapper.xml"/></mappers>
<!-- 使用完全限定資源定位符(URL) --><mappers>
  <mapper url="file:///var/mappers/AuthorMapper.xml"/>
  <mapper url="file:///var/mappers/BlogMapper.xml"/>
  <mapper url="file:///var/mappers/PostMapper.xml"/></mappers>
<!-- 使用映射器接口實現(xiàn)類的完全限定類名 --><mappers>
  <mapper class="org.mybatis.builder.AuthorMapper"/>
  <mapper class="org.mybatis.builder.BlogMapper"/>
  <mapper class="org.mybatis.builder.PostMapper"/></mappers>
<!-- 將包內(nèi)的映射器接口實現(xiàn)全部注冊為映射器 --><mappers>
  <package name="org.mybatis.builder"/></mappers>

優(yōu)先級: package>resource>url>class

mubatis的exectuor有幾種方式

SimpleExecutor: 簡單執(zhí)行器,是MyBatis中默認(rèn)使用的執(zhí)行器,每執(zhí)行一次update或select,就開啟一個Statement對象,用完就直接關(guān)閉Statement對象(可以是Statement或者是PreparedStatment對象)

ReuseExecutor: 可重用執(zhí)行器,這里的重用指的是重復(fù)使用Statement,它會在內(nèi)部使用一個Map把創(chuàng)建的Statement都緩存起來,每次執(zhí)行SQL命令的時候,都會去判斷是否存在基于該SQL的Statement對象,如果存在Statement對象并且對應(yīng)的connection還沒有關(guān)閉的情況下就繼續(xù)使用之前的Statement對象,并將其緩存起來。因為每一個SqlSession都有一個新的Executor對象,所以我們緩存在ReuseExecutor上的Statement作用域是同一個SqlSession。

BatchExecutor: 批處理執(zhí)行器,用于將多個SQL一次性輸出到數(shù)據(jù)庫

CachingExecutor: 緩存執(zhí)行器,先從緩存中查詢結(jié)果,如果存在,就返回;如果不存在,再委托給Executor delegate 去數(shù)據(jù)庫中取,delegate可以是上面任何一個執(zhí)行器

mybatis的一級緩存是默認(rèn)開啟的嗎?開啟的話是怎么使用的?

mybatis讀取mapper文件有哪幾種方式

mybatis讀取mapper文件有哪幾種方式

因為cacheEnabled 所以一級緩存是默認(rèn)開啟的 。通過id  offset limit sql 四個屬性來生成緩存的key

 一級緩存通過 HashMap 實現(xiàn),它的鍵對象根據(jù)SQL的ID,參數(shù),SQL本身,分頁參數(shù)以及JDBC的參數(shù)信息構(gòu)成。

 二級緩存mapper級別的緩存,多個SqlSession去操作同一個Mapper的sql語句,多個SqlSession去操作數(shù)據(jù)庫得到數(shù)據(jù)會存在二級緩存區(qū)域,多個SqlSession可以共用二級緩存,二級緩存是跨SqlSession的。

 二級緩存是多個SqlSession共享的,其作用域是mapper的同一個namespace,第一次執(zhí)行完畢會將數(shù)據(jù)庫中查詢的數(shù)據(jù)寫到緩存(內(nèi)存),第二次會從緩存中獲取數(shù)據(jù)將不再從數(shù)據(jù)庫查詢,從而提高查詢效率。

Mybatis默認(rèn)沒有開啟二級緩存需要在setting全局參數(shù)中配置開啟二級緩存。  

如果緩存中有數(shù)據(jù)就不用從數(shù)據(jù)庫中獲取,大大提高系統(tǒng)性能。

不建議使用二級緩存 不同的namespace操作同一個表的話 會出現(xiàn)數(shù)據(jù)混亂

阿里面試題:A系統(tǒng)傳B系統(tǒng)一條sql如何判斷sql是正確是sql  ???

什么是orm框架? 用于實現(xiàn)面向?qū)ο缶幊陶Z言里不同類型系統(tǒng)的數(shù)據(jù)之間的轉(zhuǎn)換

mybatis讀取mapper文件有哪幾種方式

感謝各位的閱讀!關(guān)于“mybatis讀取mapper文件有哪幾種方式”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI