Mybatis框架执行流程

 

1. 加载配置并初始化:

       首先在MyBatis启动的时候我们要去解析配置文件,包括全局配置文件和映射器配置文件,全局配置文件里面包含了怎么控制MyBatis的行为,把他们解析成一个configuration对象。映射器配置文件包含了对数据下达的指令,也就是sql语句信息,然后一个sql节点会被解析成一个MapperdStatement对象存储在内存中,接下来就是操作数据库的接口,代表和数据库之间的一次连接,也就是SqlSession对象,想要获得SqlSession就需要一个SqlSessionFactory

2.接受调用的请求:

       接收sql的id和传入的参数对象

3.处理操作请求:

       根据SQL的Id查找对应的MappedStatement对象,根据传入的参数对象解析MappedStatement,得到最终的sql和执行传入参数,获取数据库连接,将已得到的sql和参数到数据库执行,并得到结果。根据mappedStatment对象中的结果映射配置,对得到的执行结果进行转换处理,并得到最终结果,释放资源

4.返回最终的处理结果

二.Mybatis架构

 三.Mybatis核心API

SqlSessionFactoryBuilder

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

SqlSessionFactory:

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

SqlSession

  • 连接到数据库的一个会话
  • sqlSession中定义了数据库操作方法。
  • 每个线程都应该有它自己的SqlSession实例
  • SqlSession的实例不能共享使用,它也是线程不安全的。因此最佳的范围是请求或方法范围
  • 绝对不能将SqlSession实例的引用放在一个类的静态字段或实例字段中。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值