SqlSessionFactoryBuilder

这个类可以被实例化、使用和丢弃,一旦创建了 SqlSessionFactory,就不再需要它了。

SqlSessionFactory

SqlSessionFactory 一旦被创建就应该在应用的运行期间一直存在,没有任何理由丢弃它或重新创建另一个实例。

SqlSession

每个线程都应该有它自己的 SqlSession 实例。SqlSession 的实例不是线程安全的,因此是不能被共享的,所以它的最佳的作用域是请求或方法作用域。

映射器实例(BlogMapper mapper

映射器是一些由你创建的、绑定你映射的语句的接口。映射器接口的实例是从 SqlSession 中获得的。

因此从技术层面讲,任何映射器实例的最大作用域是和请求它们的 SqlSession 相同的。

try (SqlSession session = sqlSessionFactory.openSession()) {

  BlogMapper mapper = session.getMapper(BlogMapper.class);

  // 你的应用逻辑代码

}

1.   当调用dao层的这条具体语句时  userDao.selectUserListCount(query);  它会生成一个Mapper的动态代理类 MapperProxy ,

然后在MapperProxy 代理类中执行查询操作。如下截图:

// Java的动态代理就必须得实现InvocationHandler接口

MyBatis 学习笔记一

1. myBatis获取数据

MyBatis 学习笔记一

2. MapperMethod 查询数据

MyBatis 学习笔记一

 

相关文章:

  • 2021-12-19
  • 2021-07-14
  • 2021-05-06
  • 2021-05-06
  • 2021-08-29
  • 2022-12-23
  • 2018-08-22
猜你喜欢
  • 2021-07-22
  • 2021-12-01
  • 2021-07-27
  • 2021-05-02
  • 2021-07-26
相关资源
相似解决方案