zoukankan      html  css  js  c++  java
  • mybatis工作原理

    引导层------>框架支撑层----->数据处理------->接口层

    1、创建sqlSessionFactoryBuilder对象

    2、build(inputStream)

    3、创建解析器parser

    4、解析每一个标签把详细信息保存在Configuration中

    5、解析mapper.xml

    mapper.xml中每一个元素信息,解析并保存在全局配置文件中,将增删改查标签的每一个标签每一个属性都解析出来封装成一个mapperstatement,一个mapperstatement代表增删改查的详细信息,

    config对象所有配置文件中的详细信息(封装)

    总结:把配置文件的信息解析并保存在configuration中,返回DefaultSqlSession对象

    1、获取sqlSessionFactory对象 :解析文件的每一个信息保存在configuration中返回包含configuration的defaultsessionfactory(马批评而statement代表一个增删改查的详细信息)

    2、获取sqlSession对象:返回sqlSession的实现类DefaultsqlSession对象,里面包含了Executer的configuration,executor被创建

    3、获取接口的代理对象:getMapper,使用MapperProxyFactory创建一个mapperProxy

    4、执行增删改查方法

    总结:1、根据配置文件(全局文件)映射初始化出configuration对象

    2、创建一个DefaultsqlSession对象(configuration以及Executor根据全局配置文件的defaultExecutorType)创建出对应的Executor

    3、DefaultSqlSession.getMapper():拿到Mapper接口对应的mapperProxy

    4、MapperProxy里面有(DefaultSqlSession)

    5、执行增删改查方法

                1、调用DefaultSqlSession的增删改查Executor

                 2、会创建一个statementHandler对象同时也会创建ParameterHandler

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

                 4、调用statementHandler的增删改查方法

                 5、ResultSetHandler对象

  • 相关阅读:
    linux环境下MongoDB的部署及应用
    Memcache,Redis,MongoDB三种非关系型数据库的对比
    什么是事务
    umount卸载目录的时候,提示正忙
    Maven私服Nexus3.x环境部署应用
    执行yum提示error: rpmdb: BDB0113 Thread/process 9060/139773561796608 failed: BDB1507 Thread died in Berkeley DB library
    vim 常用
    nginx的部署和配置
    linux系统异常关机导致报文件系统只读Read-only file system的解决方法
    js拖拽
  • 原文地址:https://www.cnblogs.com/cye9971-/p/11164549.html
Copyright © 2011-2022 走看看