zoukankan      html  css  js  c++  java
  • Mybatis 1.原理流程图

    仅用来做个人笔记记录。

    总流程:

    1. 根据配置文件(全局配置文件和sql映射文件)初始化configuration对象。
    2. 创建一个defaultSqlSession对象,包含Configuration及Executor(根据全局配置文件中defaultExecutorType创建对应的Executor)
    3. DefaultSqlSession.getMapper拿到Mapper接口对应的MapperProxy

    4.  MapperProxy里有DefaultSqlSession

    5. 执行增删改查

                 1、调用DefaultSqlSession增删改查

                 2、创建StatementHandler

                     (同时创建ParameterHandler,ResultSetHandler)

                 3、调用StatementHandler预编译参数以及设置参数值

                       使用ParameterHandler给sql设置参数

                 4、调用StatementHandler增删改查

                 5、ResultSetHandler封装结果  
                         

    mybatis 四大对象:

    executor、parameterHandler、ResultSetHandler、StatementHandler

                       

     步骤详解:

    1. 获取SqlSession:
      解析文件的信息保存到Configuration中,返回Configuraation的DefaultSqlSession对象;【mappedStatement】代表一个增删改查的详细信息


      无论是我们自定义的还是第三方预先定义的,只要是我们使用的每条sql语句都会生成一个mappedStatements
    2.  获取SqlSession

       

    3. 获取接口代理对象MapperProxy
                
    4. 执行增删改查
               
      从ms(mappedStatements)中获取Configuration。StatementHandler 与编译参数以及设置参数值。简单说就是生成要执行的sql语句。

      设置参数,执行sql语句。

       execute点进去后执行的方法。把替代的参数打印出来。根据方式,执行jdbc的增删改查(设计到数据库连接池)。
      再往后对查询到的结果进行映射 resultSetHandler.handleCursorResultSets(ps)

  • 相关阅读:
    终于有人把MYSQL索引讲清楚了
    计算机基础知识总结与操作系统 PDF 下载
    java电子书python电子书等PDF下载方式
    redis布隆过滤器
    IntelliJ IDEA 2020.1 激活教程,亲测可用
    Another Redis DeskTop Manager一款稳定全新的redis连接工具
    一文吃透redis持久化,妈妈再也不担心我面试过不了!
    ES6 运算符
    If-Else的5种方法从入门到高级示例
    ES6中 的类(class)
  • 原文地址:https://www.cnblogs.com/xiaoeyu/p/11592537.html
Copyright © 2011-2022 走看看