真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

使用MyBatis如何實(shí)現(xiàn)一級(jí)緩存與二級(jí)緩存-創(chuàng)新互聯(lián)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)使用MyBatis如何實(shí)現(xiàn)一級(jí)緩存與二級(jí)緩存,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供廣河網(wǎng)站建設(shè)、廣河做網(wǎng)站、廣河網(wǎng)站設(shè)計(jì)、廣河網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、廣河企業(yè)網(wǎng)站模板建站服務(wù),10多年廣河做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

MyBatis緩存

我們知道,頻繁的數(shù)據(jù)庫(kù)操作是非常耗費(fèi)性能的(主要是因?yàn)閷?duì)于DB而言,數(shù)據(jù)是持久化在磁盤中的,因此查詢操作需要通過IO,IO操作速度相比內(nèi)存操作速度慢了好幾個(gè)量級(jí)),尤其是對(duì)于一些相同的查詢語(yǔ)句,完全可以把查詢結(jié)果存儲(chǔ)起來(lái),下次查詢同樣的內(nèi)容的時(shí)候直接從內(nèi)存中獲取數(shù)據(jù)即可,這樣在某些場(chǎng)景下可以大大提升查詢效率。

MyBatis的緩存分為兩種:

一級(jí)緩存,一級(jí)緩存是SqlSession級(jí)別的緩存,對(duì)于相同的查詢,會(huì)從緩存中返回結(jié)果而不是查詢數(shù)據(jù)庫(kù)

二級(jí)緩存,二級(jí)緩存是Mapper級(jí)別的緩存,定義在Mapper文件的標(biāo)簽中并需要開啟此緩存,多個(gè)Mapper文件可以共用一個(gè)緩存,依賴標(biāo)簽配置

下面來(lái)詳細(xì)看一下MyBatis的一二級(jí)緩存。

MyBatis一級(jí)緩存工作流程

接著看一下MyBatis一級(jí)緩存工作流程。前面說了,MyBatis的一級(jí)緩存是SqlSession級(jí)別的緩存,當(dāng)openSession()的方法運(yùn)行完畢或者主動(dòng)調(diào)用了SqlSession的close方法,SqlSession就被回收了,一級(jí)緩存與此同時(shí)也一起被回收掉了。前面的文章有說過,在MyBatis中,無(wú)論selectOne還是selectList方法,最終都被轉(zhuǎn)換為了selectList方法來(lái)執(zhí)行,那么看一下SqlSession的selectList方法的實(shí)現(xiàn):

public  List selectList(String statement, Object parameter, RowBounds rowBounds) {
  try {
   MappedStatement ms = configuration.getMappedStatement(statement);
   return executor.query(ms, wrapCollection(parameter), rowBounds, Executor.NO_RESULT_HANDLER);
  } catch (Exception e) {
   throw ExceptionFactory.wrapException("Error querying database. Cause: " + e, e);
  } finally {
   ErrorContext.instance().reset();
  }
}

分享題目:使用MyBatis如何實(shí)現(xiàn)一級(jí)緩存與二級(jí)緩存-創(chuàng)新互聯(lián)
分享URL:http://weahome.cn/article/dsphgh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部