mybatis编程流程
创建 SqlSessionFactory 对象。
通过 SqlSessionFactory 获取 SqlSession 对象。
通过 SqlSession 获得 Mapper 代理对象。
通过 Mapper 代理对象,执行数据库操作。
执行成功,则使用 SqlSession 提交事务。
执行失败,则使用 SqlSession 回滚事务。
最终,关闭会话。
在没有配置的默认情况下,默认开启一级缓存
一级缓存只是相对于同一个SqlSession而言,mybatis提供了一级缓存,用来储存使用同一个SqlSession对象调用一个Mapper方法,这样的操作只执行一次,因为在SelSession第一次查询后,Mybatis就会将其存放于缓存中,下次查询直接去缓存中取
怎么判断某两次查询是完全相同的查询?
mybatis认为,对于两次查询,如果以下条件都完全一样,那么就认为它们是完全相同的两次查询。
二级缓存是Application级别的缓存
二级缓存开启后,同一个namespace下的所有操作语句,都影响着同一个Cache,即二级缓存被多个SqlSession共享,是一个全局的变量。
当开启缓存后,数据的查询执行的流程就是 二级缓存 -> 一级缓存 -> 数据库。
参考文章:https://tech.meituan.com/2018/01/19/mybatis-cache.html
本文地址:https://blog.csdn.net/yujing1314/article/details/107469235
如对本文有疑问, 点击进行留言回复!!
多个JAVA版本导致的JAVA_HOME is set to an invalid directory
ARouter简易ARouter+手动组件化跳转Module应用总结
【bug记录】android:Program type already present: android.support.v4.app.INotificationSideChannel
网友评论