喜欢与改变

导航

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)

     

     

     

     

     

     

 

posted on 2019-09-26 16:21  喜欢与改变  阅读(721)  评论(0编辑  收藏  举报