mybatis-plus的@TableLogic实现原理

mybatis-plus的@TableLogic实现原理

众所周知mybatis-plus提供逻辑删除的配置,只需要在数据表的org实体的对象中,对删除标记字段设置@TableLogic注解,并且在配置文件中,设置对应的字段名称即可。
在这里插入图片描述

在这里插入图片描述

但是如果想深究理解其逻辑,方便以后可以自行实现或者修改也是有一定帮助的。通过下载源码查找相关的源头,发现其实其逻辑就是,再生成动态的通用的sql时候判断实体对象中是否有@TableLogic, 然后进行判断是否把delete语句修改为update的语句,达到逻辑删除的效果。

第一步扫描表org实体对象的字段,进行初始化,并把分析的数据,封装成tableInfo对象
在这里插入图片描述

在这里插入图片描述
第二步, 根据tableInfo对象,分析的逻辑删除的字段信息,生成逻辑删除的sql,并解析成xml节点对象
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
第三步,把生成的xml可以解析的节点对象,加入到MappedStatement中,
这个是映射id与sql的对象。

在这里插入图片描述
在这里插入图片描述
大致实现逻辑就是这样。各位如果感兴趣可以自行断点查看, com.baomidou.mybatisplus.core.injector.AbstractMethod, 我查看的版本是mybatis-plus3.4.1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值