一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 深入理解Mybatis一級緩存

深入理解Mybatis一級緩存

2020-07-16 11:51我要這鐵棒有何用 Java教程

客戶端向數據庫服務器發送同樣的sql查詢語句,如果每次都去訪問數據庫,會導致性能的降低,那么怎么提高呢?下面小編給大家分享下mybatis為我們提供了一級緩存的策略

客戶端向數據庫服務器發送同樣的sql查詢語句,如果每次都去訪問數據庫,會導致性能的降低。

那么怎么提高呢?

mybatis為我們提供了一級緩存的策略

在一個sqlSession開啟和關閉之間,sqlSession對象內部(其實是Executor)會維護一個緩存的對象,當查詢數據時候,先從緩存中尋找是否存在該條數據,存在就直接取出來,不存在,向數據庫發送sql查詢, 然后將查詢后的數據存入緩存,和返回給程序。

這樣會存在一個問題:

如果在第一次和第二次查詢期間,有程序更改了要查訊的數據庫的數據,就會引起讀取的數據是錯誤的,也就是

臟讀,其實是mybatis在sqlSession執行commit()方法后會清空這個緩存。第二次去查詢,依然會從數據庫中查詢.

也可以手動調用sqlSession的clearCache()方法清除緩存

小例子:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Test
  public void testCacheLever1() throws Exception{
    SqlSession session = factory.openSession();
    UserMapper mapper = session.getMapper(UserMapper.class);
    //第一次請求,查詢id為1的用戶
    User user = mapper.findUserById(1);
    System.out.println(user);
    //更改數據,會清空緩存
    user.setUsername("yyyy");
    mapper.updateUser(user);
    session.commit();
    //第二次查詢會從緩存中找
    User user2 = mapper.findUserById(1);
    System.out.println(user2);
    session.close();
  }

問題:

如果sqlSession關閉了,緩存也就清空了。這怎么使用緩存來提高效率呢?

好了,下篇文章給大家介紹mybatis二級緩存

以上所述是小編給大家介紹的Mybatis一級緩存,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:http://blog.csdn.net/i_jack/article/details/53764496

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 特级www | 亚洲欧美激情日韩在线 | 草草影院免费 | 亚洲精品电影天堂网 | 欧美色综合高清免费 | 爸爸的宝贝小说全文在线阅读 | 久久无码人妻中文国产 | 青久久| www.亚洲视频 | 操男孩| 日本人欧美xx | 国产成人精品第一区二区 | 超级乱淫变态伦短篇小说全集 | 深夜在线影院 | 男同gay作爰视频网站 | 韩国悲惨事件30无删减在线 | 欧美综合在线 | 亚洲精品福利一区二区在线观看 | 激情视频激情小说 | 国内精品久久久久小说网 | 97理伦| 日本漫画大全之工之口 | bbbbbbaaaaaa毛片 | 精品国产乱码久久久久久人妻 | 青柠在线完整高清观看免费 | 亚洲精品视频在线免费 | 大乳奶水bbw | 福利入口在线观看 | 午夜视频网站 | 亚洲H成年动漫在线观看不卡 | 国产区成人综合色在线 | 热99在线视频 | 大又大又粗又爽女人毛片 | 太紧太深了受不了黑人 | 国产成人综合网 | 美女林柏欣21p人体之仓之梦 | 久久精品123 | 久久er国产免费精品 | 九九精品视频在线观看九九 | 美女岳肉太深了使劲 | 欧美亚洲一区二区三区在线 |