SpringCloud启动——MybatisPlus(MP)
目录
MybatisPlus
快速入门
前置步骤
代码演示
常用注解
常见配置
核心功能
条件构造器
自定义SQL
IService接口
基本用法
基本业务
复杂业务
IService接口中的Lambda方法
IService批量新增
扩展功能
代码生成
静态工具
逻辑删除
枚举处理器
JSON处理器
插件功能
分页插件
通用分页实体
b站上黑马程序员的课程笔记
MybatisPlus
对Mybatis框架的一个升级。但是它并不是来替代Mybatis这个技术的,而是互相搭配来干活的。
项目引入MybatisPlus不会对现有的工程产生影响,原来基于Mybatis的代码依然可以照常运行。
快速入门
之前我们已经学习过了Mybatis,不管是XML映射文件也好,还是自己在对应的方法上面用注解来写sql语句也好,它都需要我们自己写Sql语句,而使用MybatisPlus这些语句就完全可以不用自己写了。
前置步骤
使用MybatisPlus就要引入它的依赖:

BaseMapper<泛型:要操作的实体类的类型>接口中有很多方法,如下,很简单,看见名字就能知道他的用法。

代码演示
引入了MybatisPlus之后,UserMapper里面就可以什么都不用写,如下:(可以直接在Service中调用BaseMapper接口中的方法就能完成增删改查的操作)

MP是怎么实现增删改查的,我们还什么都没写,他怎么知道我们要访问哪张表呢?又是怎么知道表中有哪些信息呢?
常用注解
首先不用配置,但是要遵守约定:(命名要严格按照数据库中的字段名以及表明来命名,这样MybatisPlus才能识别)

如果不遵守约定:(如下注解,可以解决这个问题,变量前面有java底层会把is自动去掉,数据库关键字冲突(如order by))(IdType的类型:Auto自增长是数据库自动增长,Input是自己指定id,ASSIGN_ID是java来自动分配id;如果不指定类型,那么就默认是ASSIGN_ID雪花算法来得到id,所以必须指定id)

常见配置
第一个:作用是将来在定义mapper.xml里面的语句的时候,如果需要定义实体类的类型,那么他就不需要写全路径名了,直接写类的简化名就可以了。
第二个:指定xml文件地址,因为mp更擅长单表的查询,要是涉及到了多表查询,我们还是需要自己编写sql语句。
id_type:注解优先级大于这个全局配置的优先级。

目录:

核心功能
条件构造器
AbstractWrapper这个类提供了where后面的方法(比如等于、模糊匹配like等等),UpdateWrapper是更新,QueryWrapper是查询。

在测试类中,示例代码:(查询名字中带有o的,并且存款大于等于1000元的)

两个更新(1、把用户名为jack的人的存款改为2000。(用new了查询QueryWrapper类,因为没有用到updateWrapper类中的方法,只更新了一个)2、把id为1,2和4的人的存款减200)

除了这些,还有上面的图片中的,AbstractLamdaWrapper,LamdaUpdateWrapper以及LamdaQueryWrapper其实和这些类的方法以及用法都差不多,只不过我们刚才演示的这些代码属于硬编码。
代码示例


自定义SQL
前面条件构造器的写法,没有在mapper中获得数据,是在测试类中演示,等于说是在业务层service中来获得这个数据的。但是在有的企业开发中是不允许的,获取数据只能在mapper中,这时该怎么办呢?(如下where语句都很复杂,但是用mp自动生成就很简单一个或者两个方法就完成了,还有就是查询COUNT(id) AS total查询数量并且起别名mp就做不到了)这就需要自定义SQL来完成了。

代码示例:
