Mybatis plus源码浅谈--com.baomidou.mybatisplus.extension包

正文

在这里插入图片描述

在com.baomidou.mybatisplus.extension包的Model类中,

有这样一行注释
Mybatis plus源码浅谈--com.baomidou.mybatisplus.extension包_第1张图片

也就说明,使用Mybatis plus的前提,必须得让原Mapper继承baseMapper才有使用的可能,所以先加上吧

Mybatis plus源码浅谈--com.baomidou.mybatisplus.extension包_第2张图片

在其中有大量类似sqlSession.insert(sqlStatement(SqlMethod.INSERT_ONE),this)的方法

点进SqlMethod.INSERT_ONE方法中,
Mybatis plus源码浅谈--com.baomidou.mybatisplus.extension包_第3张图片

可以看到大量写好的,SQL语句,那么也就是说,Mybatis Plus一开始就写好了通用的CRUD方法,当你调用Service或者BaseMapper中的CRUD方法时,其实也就是调用了底层写好的CRUD语句,那么它具体是怎么做的呐? 有待深究

将ApiErrorCode定义枚举类,并通过一个for循环获取也成了通常的做法

Mybatis plus源码浅谈--com.baomidou.mybatisplus.extension包_第4张图片
有个类:
Mybatis plus源码浅谈--com.baomidou.mybatisplus.extension包_第5张图片
SQL解析处理器,hhh,突然感觉到它是实现Mybatis Plus CRUD的关键

详细看其中的方法:
Mybatis plus源码浅谈--com.baomidou.mybatisplus.extension包_第6张图片

它通过,大体意思是,通过mybatis获取到源StatementHandler处理器,通过插件工具类获取到源SQL然后调用sqlParser.parser方法解析sql语句并执行,应该是这样的

那么也就是说,当你调用Service或者BaseMapper中的CRUD方法时,mybatis plus通过拦截器去拦截原本要映射到mybatis 原生mapper接口中的方法,然后通过SQL解析器,映射到mybatis plus底层写好的CRUD语句,真是官网所言的,对mybatis的增强,太厉害了!

你可能感兴趣的:(mybatis-plus)