MyabtisPlus(9):主要对象描述

241 阅读1分钟

Mybatis的几大对象?它们之间的关系?

  • DefaultSqlSessionFactory 创建sqlSession的类

    • configuration 数据库配置信息
  • MybatisConfigConfiguration 数据库配置信息

    • mybatisMapperRegistry
      • knownMappers 已加载的mapper文件(.xml与.java)
    • globalConfig
      • dbConfig
        • dbType 数据库类型
      • sqlInjector sql注入器,单表数据库的CURD就是靠它生成的
      • superMapperClass 最顶级的mapper反射类
      • sqlSessionFactory 封装了configuration
    • environment
      • dataSource 读取的数据源
      • transactionFactory 事务工厂,负责管理事务
    • interceptorChain 拦截器链
    • mappedStatements key是方法名,value是MappedStatement对象
      • resource 方法所在路径(com/entity/huxin/TreeMapper.java)
      • id 路径名+方法名(com.entity.huxin.TreeMapper.select)
      • statementType 语句类型,默认为PREPARED
      • sqlSource 数据源类型
      • sqlCommandType CURD中的一种
      • keyGenerator 主键生成器类型,对应IdType
      • keyProperties,keyColumns 主键字段与主键数据库字段
      • resultMaps 返回结果映射
    • loadedResources 记录.xml文件位置与mapper.java位置
  • SqlSessionTemplate

    • sqlSessionFactory记录着数据库的连接配置
    • executorType是执行器类型
    • sqlSessionProxy是sqlSession的代理
    • exceptionTranslator记载数据源信息
  • DefaultSqlSession 实际调用的是它下面executor的CURD方法

    • configuration
    • executor 执行器,如果是动态代理的话返回Plugin类,根据不同的插件返回不同的interceptor
  • Plugin 插件类

    • target 代理的执行器类
    • interceptor 最终的拦截器
    • signatureMap key是拦截器接口反射类,value是拦截的方法
  • TypeHandlerRegistry 主要是数据库中的字段类型与Java中的对象类型的映射