Mybatis Plus实现动态SQL语句的原理,你知道吗?,看完这一篇就够了

@Override

public void addMappedStatement(MappedStatement ms) {

// …

}

// … 省略若干行

/**

* 使用自己的 MybatisMapperRegistry

*/

@Override

public  void addMapper(Class type) {

mybatisMapperRegistry.addMapper(type);

}

// … 省略若干行

}

在MybatisMapperRegistry中,MP将mybatis的MapperAnnotationBuilder替换为MP自己的MybatisMapperAnnotationBuilder

public class MybatisMapperRegistry extends MapperRegistry {

@Override

public  void addMapper(Class type) {

// … 省略若干行

MybatisMapperAnnotationBuilder parser = new MybatisMapperAnnotationBuilder(config, type);

parser.parse();

// … 省略若干行

}

}

在MybatisMapperRegistry类的addMapper方法中,真正进入到MP的核心类MybatisMapperAnnotationBuilder,MybatisMapperAnnotationBuilder这个类是MP实现动态脚本的关键类。

MybatisMapperAnnotationBuilder动态构造

在MP的核心类MybatisMapperAnnotationBuilder的parser方法中,MP逐一遍历要加载的Mapper类,加载的方法包括下面几个

public class MybatisMapperAnnotationBuilder extends MapperAnnotationBuilder {

@Override

public void parse() {

//… 省略若干行

fo

  • 24
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值