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语句以及相应的参数信息
  • 相关阅读:
    hdu4846 最大子正方形(dp)
    hdu4847 水题
    hdu4847 水题
    hdu4848 DFS 暴搜+ 强剪枝
    hdu4848 DFS 暴搜+ 强剪枝
    洛谷 P4999 烦人的数学作业(数位DP)
    洛谷 P4317 花神的数论题(数位DP || 快速幂)
    洛谷 P2657 [SCOI2009]windy数(数位DP)
    洛谷 P2602 [ZJOI2010]数字计数(数位DP)
    HDU 2089 不要62(数位DP)
  • 原文地址:https://www.cnblogs.com/xy-c/p/14312199.html
Copyright © 2011-2022 走看看