zoukankan      html  css  js  c++  java
  • 【mybatis源码学习】mybatis的反射模块

    一、重要的类和接口

    • org.apache.ibatis.reflection.MetaClass//对于javaBean的calss类进行反射操作的代理类(获取属性的类型,获取属性的get,set方法的Invoker对象等等)
    • org.apache.ibatis.reflection.MetaObject//对于javaBean对象进行反射操作的代理类(获取属性值,设置属性值,获取属性信息等)
    • org.apache.ibatis.reflection.Reflector//mybatis的需要进行反射操作的javaBean的反射信息的缓存类,相当于一个类的地图(属性的set,get方法,属性的calss类型)
    • org.apache.ibatis.reflection.invoker.Invoker //对于javaBean的方法和属性的操作
    • org.apache.ibatis.reflection.factory.ObjectFactory//对于class类型生成对象的工厂类
    • org.apache.ibatis.reflection.ReflectorFactory//对calss类生成和查找Reflector的工厂类

     

    二、在mybatis中的作用

    1、在mybatis框架的中的作用

    效率方面:缓存类的class信息,对反射相关的操作组件进行缓存,提高执行效率

    业务框架方面:对于javaBean到sql语句的映射,使用反射进行相关属性的获取和设置

    • javaBean转化成sql语句的参数的映射
    • sql语句执行结果转化为javaBean的结果集映射

    2、具体应用的地方

  • 相关阅读:
    Transaction 'IREG', Abend 'APCT', at '????'.
    CICS中设置是否具有可修改性
    常用命令总结
    常用语句总结
    _func_
    数组排序返回索引-python和c++的实现
    数组的并行求和-cuda实现
    Pytorch 多GPU训练-多计算节点并行-All you need
    Pytorch 多GPU训练-单运算节点-All you need
    Windows 编程中的问题
  • 原文地址:https://www.cnblogs.com/shangxiaofei/p/11408103.html
Copyright © 2011-2022 走看看