zoukankan      html  css  js  c++  java
  • java# 认识mybatis# 原理篇# 架构组件

    架构图

    架构流程图


    说明:

    • mybatis配置文件:
      • SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息
      • Mapper.xml,此文件作为mybatis的sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在 SqlMapConfig.xml中加载。
    • sqlSessionFactory: sqlSession会话工厂,通过mybatis环境等配置信息构造SqlSessionFactory。
    • sqlSession:通过会话工厂创建sqlSession即会话,程序员通过sqlsession会话接口对数据库进行增删改查操作。
    • Executor执行器:mybatis底层自定义了Executor执行器接口来具体操作数据库,Executor接口有两个实现,一个是基本执行器 (默认)、一个是缓存执行器,sqlsession底层是通过executor接口操作数据库的。
    • Mapped Statement:它也是mybatis一个底层封装对象,它包装了mybatis配置信息及sql映射信息等。mapper.xml文件中一个 selectinsertupdatedelete标签对应一个Mapped Statement对象,selectinsertupdatedelete 标签的id即是Mapped statement的id。
      • Mapped Statement对sql执行输入参数进行定义,包括HashMap、基本类型、pojo,Executor通过Mapped Statement在执行sql前将输入的java对象映射至sql中,输入参数映射就是jdbc编程中对
        preparedStatement设置参数。
      • Mapped Statement对sql执行输出结果进行定义,包括HashMap、基本类型、pojo,Executor通过Mapped Statement在执行sql后将输出结果映射至java对象中,输出结果映射过程相当于jdbc编程中对结果的解析处理过程。

    调用流程图

    说明:

    • executor:mybatis 执行器,是mybatis调度的核心,负责sql语句的生成与查询缓存维护。
    • StatementHandler: 封装了JDBC Statement操作,负责对JDBC statement 的操作,如设置参数、将Statement结果集转换成List集合
    • ParameterHandler: 负责对用户传递的参数转换成JDBC Statement 所需要的参数
    • ResultSetHandler: 负责将JDBC返回的ResultSet结果集对象转换成List类型的集合
    • TypeHandler: 负责java数据类型和jdbc数据类型之间的映射和转换
    • SqlSource: 负责根据用户传递的parameterObject,动态地生成SQL语句,将信息封装到BoundSql对象中,并返回BoundSql表 示动态生成的SQL语句以及相应的参数信息
  • 相关阅读:
    sfs2x 连接 mongodb
    java websocket
    webstorm 4.0 注册码
    解决 sfs2 admin tool 找不到扩展
    window 注册表五大类
    opengl 学习第二日
    java google Protobuf
    扩展 java sencha touch PhonegapPlugin
    sencha touch2 kryonet socket phonegap 通信 作者:围城
    sencha touch2 layout 笔记
  • 原文地址:https://www.cnblogs.com/xy-c/p/14312199.html
Copyright © 2011-2022 走看看