onlyliuxin / coding2017

218 stars 643 forks source link

7.23因为Mybatis的一级缓存,而引起一系列的疑问 #525

Open Locker1995 opened 7 years ago

Locker1995 commented 7 years ago

问题描述:今天在研究Mybatis 的一级缓存与二级缓存的定义与测试 的时候引发了一系列的思考,我还是个大四软工,知识相对于各位大大来说比较浅薄,希望有大大可以解答。

  1. 问题1:当Spring与Mybatis 整合之后,如何理解一个Sqlsession的生命周期?

    ## 为什么我会这么问呢,因为我发现 MyBatis官方对自带的一级缓存的定义是

    • Mybatis一级缓存是指在内存中开辟一块区域,用来保存用户对数据库的操作信息(sql)和数据库返回的数据,如果下一次用户再执行相同的请求,那么直接从内存中读数数据而不是从数据库读取。
    • 而一级缓存的设计是每个sqlsession单独使用一个缓存空间,不同的sqlsession是不能互相访问数据的。当然,在sqlsession关闭后,其中数据自然被清空。

(后面的疑问再慢慢更新)