变态重口极致另类在线-波多久久夜色精品国产-波多野结衣在线观看一区-波多野结衣在线观看一区二区-污污的网站免费阅读-污污视频网址

當前位置:首頁文章首頁 IT學院 IT技術

為了噴mybatis我下載了mybatis源碼

作者:  來源:  發布時間:2011-12-10 12:14:09  點擊:

久聞mybatis/ibatis大名今天終于爆發了,找了一堆mybatis的討論。。。這部分大多是關乎sql寫在xml之類的

 

看了下mybatis的高速緩存的討論。。。這部分無不例外的在分享緩存的配置。。。包括緩存實現。。。緩存過期策略。。。

 

LRU。。。FIFO。。。

 

如果說在xml里面寫sql。。并且在上一堆dtd描述。。并且聲稱這樣便于dba維護sql。。可以直接把寫好的sql copy到xml里面去。。可以統一管理。 好吧,這些都屬于個人習慣,無所謂。

只不過我在想把這些sql變成方法,例如最簡單的一個:

 

  1. <select id=”getUserList” resultMap="UserResult" cacheModel=”user-cache”>  
  2.     select * from USER  
  3. </select> 
  4. 變成:
  5. public UserResult getUserList(){
  6. return baseDao.find("select * from USER");
  7. }

 

 

我了解的太少,還沒能看出這樣有什么分別。關于這個,我只是有點點疑惑。(當然,你可以把這些寫在一個類里面,便于你們的DBA維護)

 

。。。。。。。。。

作為一個ORM框架,除了面向對象查詢 如JPA之類的,還有一個不得不提的東西:緩存。

 

在我為緩存頭痛的時候,我努力的尋找mybatis緩存的做法。畢竟這么多人使用的框架一定可以學習一下緩存的實現。

 

在我輸入關鍵詞:ibatis 緩存/mybatis 緩存 看過基本上找到并且有時間去看的文章之后,我心里產生了一個疑問:為什么這些人來來去去都是講的LRU、FIFO這些東西,或者貼出了這么一段精妙絕倫的代碼:

 

 

Java代碼  
  1. public List query(MappedStatement ms, Object parameterObject, RowBounds rowBounds, ResultHandler resultHandler) throws SQLException {  
  2.   if (ms != null) {  
  3.     Cache cache = ms.getCache();  
  4.     if (cache != null) {  
  5.       flushCacheIfRequired(ms);  
  6.       cache.getReadWriteLock().readLock().lock();  
  7.       try {  
  8.         if (ms.isUseCache() && resultHandler == null) {  
  9.           CacheKey key = createCacheKey(ms, parameterObject, rowBounds);  
  10.           final List cachedList = (List) cache.getObject(key);  
  11.           if (cachedList != null) {  
  12.             return cachedList;  
  13.           } else {  
  14.             List list = delegate.query(ms, parameterObject, rowBounds, resultHandler);  
  15.             tcm.putObject(cache, key, list);  
  16.             return list;  
  17.           }  
  18.         } else {  
  19.           return delegate.query(ms, parameterObject, rowBounds, resultHandler);  
  20.         }  
  21.       } finally {  
  22.         cache.getReadWriteLock().readLock().unlock();  
  23.       }  
  24.     }  
  25.   }  
  26.   return delegate.query(ms, parameterObject, rowBounds, resultHandler);  
  27. }  

 

 當然,還有不少人畫了一些UML例圖來給苦難大眾講解 CachingExecutor是如何工作的。

首頁 上一頁 [1] [2] [3]  下一頁 尾頁

文章評論

軟件按字母排列: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
主站蜘蛛池模板: 第一福利官方导航大全 | 国产成人亚洲综合小说区 | 成人国产一区二区 | 欧美精品videossex变态 | 天天摸天天看天天爽 | 黄色影片在线免费观看 | 中文字幕国产日韩 | 国产亚洲第一伦理第一区 | 国内精品久久久久不卡 | 国产欧美视频一区二区三区 | 嗯啊在线观看免费影院 | 亚洲欧美日韩中文综合在线不卡 | 亚洲成人18 | 51短视频版在线观看www免费 | 国产精品二区三区免费播放心 | 免费无遮挡嘿嘿嘿视频动态 | 亚洲大成色www永久网 | 一级国产精品一级国产精品片 | 免费1级片 | 午夜日韩 | 久久天天躁狠狠躁夜夜不卡 | 亚洲欧美日本在线观看 | 黄色一级大片 | 天堂资源地址在线 | 影音先锋2021色资源网站 | 青青青视频自偷自拍视频1 青青青视频免费一区二区 青青青久热国产精品视频 青青青国产在线 | 国产成人精品日本亚洲专区6 | 狠狠干人人干 | 狠狠色噜噜狠狠色综合久 | 国产成人h片视频在线观看 国产成人lu在线视频 | 最近的中文字幕免费视频1 最近的中文字幕大全免费版 | 又黄又免费的网站 | freexxxx高清中国hd | 一级国产a级a毛片无卡 | 1024国产精品视频观看 | 污91视频 | 成人欧美精品大91在线 | 99九九视频高清在线 | 亚洲性人人天天夜夜摸 | 热综合一本伊人久久精品 | 日本国产最新一区二区三区 |