zoukankan      html  css  js  c++  java
  • Mybatis源码分析(一)

    1. 使用SqlSessionFactory获取SqlSession

    2. 通过JDK动态代理获取Mapper接口代理对象

    3. 解析mapper.xml保存,通过jdbc,statment,preparestament执行查询等操作

    4. 通过反射,构造函数构造对象,通过反射set方法设置对象各个字段

    通过JDK动态代理获取mapper接口代理对象

     

     

     

     

     

     拿到代理对象MapperProxy

     执行MapperMethod

    执行查询

     通过sqlsession接口查询

    通过Executor执行查询

     BoundSql保存有sql语句,接着往后走

     

     

     这里可以看到JDBC里面的PrepareStatment查询

    下面开始解析结果,反射生成对象,反射设置属性

     

     

     

     

     

     

     

     

     

     

     可以看到调用java反射创建新的对象。

    代码要回到之前的,填充对象的属性

    DefaultResultSetHandler.java
    getRowValue方法

     

     

     

     

     最后也是调了java反射,method.invoke设置对象属性

    Please call me JiangYouDang!
  • 相关阅读:
    c++中static的使用
    sublime3 ctl+b无效
    Maximum Subarray
    Find the Duplicate Number
    Reverse Linked List
    c++ primer 2 变量和基本类型
    Single Number II
    Roman to Integer & Integer to Roman
    Search Insert Position
    Unique Binary Search Trees II
  • 原文地址:https://www.cnblogs.com/luckygxf/p/14534666.html
Copyright © 2011-2022 走看看