SqlSessionFactoryBuilder


  • ​SqlSessionFactoryBuilder​​​ 用于创建​​SqlSessionFacoty​​。
  • ​SqlSessionFacoty​​​ 一旦创建完成就不需要​​SqlSessionFactoryBuilder​​ 了。
  • 因为​​SqlSession​​​ 是通过​​SqlSessionFactory​​ 创建的。
  • 所以可以将​​SqlSessionFactoryBuilder​​​ 当成一个工具类来进行使用,最佳使用范围是​​方法范围​​​ 即​​方法体内的局部变量​​。


SqlSessionFactory


  • 创建​​sqlSession​​ 的工厂,是一个接口。
  • 接口中定义了​​openSession​​ 的不同重载方法。
  • ​SqlSessionFactory​​​ 的最佳使用范围是​​整个应用运行期间​​​,一旦创建后可以重复使用,通常以单例模式管理​​SqlSessionFactory​​。


SqlSession


  • 连接到数据库的一个会话。
  • ​sqlSession​​ 中定义了数据库的一些操作方法。
  • 每个线程都应该有它自己的​​SqlSession​​ 实例。
  • ​SqlSession​​​ 的实例不能共享使用,它也是线程不安全的。因此最佳的使用范围是​​请求​​​ 或​​方法范围​​。
  • 绝对不能将​​SqlSession​​ 实例的引用放在一个类的静态字段或实例字段中。


MyBatis 的整体架构

MyBatis-核心Api_数据库