zoukankan      html  css  js  c++  java
  • MyBatis-Plus 通用CRUD启动注入SQL原理分析

      @Test
        public void getUser() {
            User user = userMapper.selectById(1);
            System.out.println("user:" + user);
        }

    A、userMapper的本质是org.apache.ibatis.binding.MapperProxy

    B、MapperProxy中有一个SqlSession,SqlSession中有一个SqlSessionFactroy

     

     C、SqlSessionFactroy中有一个 Configuration -->  MappedStatements

      每一个MappedStatement都表示mapper接口中的一个方法与mapper映射文件中的一个sql

      MP启动就会挨个分析xxxMapper中的方法,并且将对应的sql预计处理好,保存到Configuration 对象中的MappedStatements

     D、本质 addMappedStatement

    AutoSqlInjector中的addMappedStatement

    SqlMethed :枚举对象,MP支持的sql方法,sql的模板
    TableInfo :数据库的反射表信息,可以获取到数据库表相关的信息
    SqlSource :sql语句处理对象 存放处理完的sql语句
    MapperBuilderAssistant :用于缓存、sql参数、查询返回结果集处理,通过MapperBuilderAssistant将每一个MappedStatement添加到configuration中的MappedStatement中
  • 相关阅读:
    zookeeper集群搭建
    kafka集群安装与配置
    Spring Task 定时任务配置与使用
    6.Spark SQL 及其DataFrame的基本操作
    10 期末大作业
    09 spark连接mysql数据库
    08 学生课程分数的Spark SQL分析
    从RDD创建DataFrame 07
    RDD 编程5
    05 RDD练习:词频统计
  • 原文地址:https://www.cnblogs.com/lc0605/p/14149661.html
Copyright © 2011-2022 走看看