正文
在com.baomidou.mybatisplus.extension包的Model类中,
有这样一行注释
也就说明,使用Mybatis plus的前提,必须得让原Mapper继承baseMapper才有使用的可能,所以先加上吧
在其中有大量类似sqlSession.insert(sqlStatement(SqlMethod.INSERT_ONE),this)的方法
点进SqlMethod.INSERT_ONE方法中,
可以看到大量写好的,SQL语句,那么也就是说,Mybatis Plus一开始就写好了通用的CRUD方法,当你调用Service或者BaseMapper中的CRUD方法时,其实也就是调用了底层写好的CRUD语句,那么它具体是怎么做的呐? 有待深究
将ApiErrorCode定义枚举类,并通过一个for循环获取也成了通常的做法
有个类:
SQL解析处理器,hhh,突然感觉到它是实现Mybatis Plus CRUD的关键
详细看其中的方法:
它通过,大体意思是,通过mybatis获取到源StatementHandler处理器,通过插件工具类获取到源SQL然后调用sqlParser.parser方法解析sql语句并执行,应该是这样的
那么也就是说,当你调用Service或者BaseMapper中的CRUD方法时,mybatis plus通过拦截器去拦截原本要映射到mybatis 原生mapper接口中的方法,然后通过SQL解析器,映射到mybatis plus底层写好的CRUD语句,真是官网所言的,对mybatis的增强,太厉害了!