【107期】面试官问,java实现区块链完整教程

本文深入剖析了MybatisPlus如何在MybatisConfiguration中通过MybatisMapperRegistry和MybatisMapperAnnotationBuilder实现动态SQL的注册和构建。详细讲解了MP加载SQL的顺序,以及在MybatisMapperAnnotationBuilder类中的关键方法,展示了如何注入和构造自定义的SQL语句。
摘要由CSDN通过智能技术生成

这里我们重点剖析MybatisConfiguration类,在MybatisConfiguration中,MP初始化了其自身的MybatisMapperRegistry,而MybatisMapperRegistry是MP加载自定义的SQL方法的注册器。

MybatisConfiguration中很多方法是使用MybatisMapperRegistry进行重写实现

其中有3个重载方法addMapper实现了注册MP动态脚本的功能。

public class MybatisConfiguration extends Configuration {

/**

* Mapper 注册

*/

protected final MybatisMapperRegistry mybatisMapperRegistry = new MybatisMapperRegistry(this);

// …

/**

* 初始化调用

*/

public MybatisConfiguration() {

super();

this.mapUnderscoreToCamelCase = true;

languageRegistry.setDefaultDriverClass(MybatisXMLLanguageDriver.class);

}

/**

  • MybatisPlus 加载 SQL 顺序:

 1、加载 XML中的 SQL 

 2、加载 SqlProvider 中的 SQL 

 3、XmlSql 与 SqlProvider不能包含相同的 SQL 

调整后的 SQL优先级:XmlSql > sqlProvider > CurdSql

*/

@Override

public void addMappedStatement(MappedStatement ms) {

// …

}

// … 省略若干行

/**

* 使用自己的 MybatisMapperRegistry

*/

@Override

public  void addMapper(Class type) {

mybatisMapperRegistry.add

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值