MyBatis-Plus简介和原理解析
简介:
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。
特性:
支持数据库:
框架结构:
Mybatis-Plus的SQL语句组拼原理:
版本:
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.2</version>
首先在test类中selectById()方法下打个断点
在断点显示的值栏找到相关的SQL
发现SQL语句在MappedStatement对象中,而sqlSource存的就是相关的sql语句
然后在MappedStatement这个对象打断点,看看到底是哪个对象对它进行了操作
发现是AbstractMethod创建了MappedStatement
在AbstractMethod对象找到与addSelectMappedStatementForTable相关的一个方法,打断点
进入sql的组拼过程
最后SQL全部完成组拼,存在集合对象中执行sql
小结:
Configuration: MyBatis 或者 MyBatisPlus全局配置对象。
MappedStatement:一个 MappedStatement 对象对应 Mapper 配置文件中的一个。 select/update/insert/delete 节点,主要描述的是一条 SQL 语句。
SqlMethod : 枚举对象 ,MyBatisPlus支持的 SQL 方法。
TableInfo:数据库表反射信息 ,可以获取到数据库表相关的信息。
SqlSource: SQL 语句处理对象。
MapperBuilderAssistant: 用于缓存、SQL 参数、查询方剂结果集处理等。通过 MapperBuilderAssistant 将每一个 mappedStatement 添加到onfiguration 中的 mappedstatements 中。