一、分步骤分析

1.根据配置文件创建SqlSessionFactory:

  解析文件的每一个信息保存在Configuration中,返回包含Configuration的DefaultSqlSession;
  注意:【MappedStatement】:代表一个增删改查的详细信息

2、获取sqlSession对象,返回SqlSession的实现类DefaultSqlSession

  返回一个DefaultSQlSession对象,包含Executor和Configuration;

  这一步会创建Executor对象;

3.获取接口的代理对象(MapperProxy)

  getMapper,使用MapperProxyFactory创建一个MapperProxy的代理对象
  代理对象里面包含了,DefaultSqlSession(Executor)

4、执行增删改查方法

5.查询流程简洁版

二、总结:

  1、根据配置文件(全局,sql映射)初始化出Configuration对象
  2、创建一个DefaultSqlSession对象,他里面包含Configuration以及Executor(根据全局配置文件中的defaultExecutorType创建出对应的Executor)
  3、DefaultSqlSession.getMapper():拿到Mapper接口对应的MapperProxy;
  4、MapperProxy里面有(DefaultSqlSession);
  5、执行增删改查方法:
    1)、调用DefaultSqlSession的增删改查(Executor);
    2)、会创建一个StatementHandler对象。(同时也会创建出ParameterHandler和ResultSetHandler)
    3)、调用StatementHandler预编译参数以及设置参数值;使用ParameterHandler来给sql设置参数
    4)、调用StatementHandler的增删改查方法;
    5)、ResultSetHandler封装结果
  注意:
    四大对象每个创建的时候都有一个interceptorChain.pluginAll(parameterHandler);

最新文章

  1. grape动态PHP结构(三)——API接口
  2. python高级之装饰器
  3. 结合nodejs开发aspnet5项目
  4. 根据url地址单个或批量下载图片
  5. MVC, MVP, MVVM比较以及区别
  6. javascript设计模式之单体模式
  7. hdu 1272 小希的迷宫
  8. 隐藏NavigationBar时的一个坑
  9. Bootstrap_标签
  10. cocos2d 如何优化内存使用
  11. Windows-002-U盘启动盘制作
  12. vs克隆新建团队项目
  13. 【转】Nginx系列(四)--工作原理
  14. Python基础知识学习_Day3
  15. Hibernate框架进阶(上篇)
  16. redis的持久化方式RDB和AOF的区别
  17. Android 图片高级绘图效果---高斯模糊
  18. Android--Loaders
  19. windows配置tomcat https访问
  20. mongodb认识

热门文章

  1. springAop注解式Demo
  2. 巴黎游戏周: PS4独占游戏《重力少女2》
  3. 虚拟机安装精简版centos7过程
  4. VCenter6.0.0的安装过程
  5. Python 入门级报错处理
  6. Spring Boot - AOP(面向切面)
  7. C语言字符串定义(数组&指针)
  8. ORA-00984: 列在此处不允许 SQL parse error location
  9. webRTC中音频相关的netEQ(四):控制命令决策
  10. json2.js JSON解析程序