Mybatis学习笔记(四)生命周期

作用域

必背

  • SqlSessionFactoryBuilder:一旦创建了 SqlSessionFactory,就不再需要它了,因此它应该是局部方法遍历
  • SqlSessionFactory:一旦被创建就应该在应用的运行期间一直存在,它不需要创建多个,因此它应该使用静态单例模式
  • SqlSession:每个线程都应该有它自己的 SqlSession 实例,SqlSession 的实例不是线程安全的,因此是不能被共享的。因此它应该是请求方法作用域,关闭的操作很重要,因为它占用着数据库的连接。
  • mapper映射:映射器实例应该在调用它们的方法中被获取,使用完毕之后即可丢弃。并且把它作为局部方法遍历使用

生命周期

主要知识点我觉得是Executor

    • Mybatis的数据库执行器。Mybatis提供了一共四中Executor.这里严格意义上应该说是三种 BatchExecutor、ReuseExecutor、SimpleExecutor。还有一个CachingExecutor。这里为什么不把他算上了。因为这个是一个全局的开关。在settings标签的cacheEnabled设置的。说道这个标签大家都知道这个就是二级缓存的开关。所以这里CachingExecutor就不做介绍了。
    • SimpleExecutor是一种常规执行器,每次执行都会创建一个statement,用完后关闭。
    • ReuseExecutor是可重用执行器,将statement存入map中,操作map中的statement而不会重复创建statement。
    • BatchExecutor是批处理型执行器,doUpdate预处理存储过程或批处理操作,doQuery提交并执行过程。
    • 关于Executor的选取也是在settings标签控制的。defaultExecutorType。 默认是simple

 

posted @ 2021-02-02 15:06  王者之剑KO  阅读(103)  评论(0)    收藏  举报