一、MyBatis-Plus简介
1.Mybatis-plus简介:Mybatis增强工具,只做增强,不作改变,简化开发,提高效率。
优点:通用CRUD操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求。
支持代码生成:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用(P.S. 比 Mybatis 官方的 Generator 更加强大!)。
支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )。
内置分页插件:基于Mybatis物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于写基本List查询。
内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,预防误操作。
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
通用版本

bean层注解:@data

dao层:@mapper,extends BaseMapper

service层:extend IService

Serviceimpl层,@Service,extends ServiceImpl<dao,entity> implements IEntityService

时间自动生成

在启动类中添加注解:

2.常用注解
1.数据库名不同,在类上增加@TableName(“mp_user”)
2.主键ID的驼峰一般无法识别,在主键属性上增加@TableId
3.属性与字段名不相同,在属性上增加@TableField(“name”)
@TableName(“数据库表名”):
使用场景实体类名称和数据表名不一致时,通过它指定表名,此时就可以使用mp的单表操作。
@TableId(“主键名”):
使用场景实体类属性名称和数据表主键不是id时,通过它声明该属性为主键,就可以采用雪花算法生成主键值操作。
@TableField(“字段名”):
使用场景实体类属性名称和数据表字段名不一致时,通过它指定数据表字段名称,就可以和实体类属性对应。
3、MyBatis-Plus查询方法
普通查询:1、T selectById(Serializable id):使用场景为通过主键查询,只要该主键类型实现了Serialzable接口即可。
2、List selectBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList):使用场景为通过主键的集合去批量查询,前提主键的类型实现了Serializable接口。
条件构造器查询
方式一:QueryWrapper queryWrapper=new QueryWrapper();
方式二:QueryWrapper query=Wrappers.query();
模糊条件构造器:like,小于条件构造器:lt,大于条件构造器: gt。
范围条件构造器:between,非空条件构造器:isNotNull。
升序条件构造器:orderAsc。
降序条件构造器:orderDesc。

lambda条件构造器

基本配置
可在查看官网地址:https://mybatis.plus/
mybatis-plus配置xml文件路径(springboot项目):

不过由于IDEA系列编辑器,XML文件是不能放在 java 文件夹中的,IDEA默认不会编译源码文件夹中的 XML文件,所以可以通过在pom.xml中加入
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
分页查询
配置mybatis-plus插件

BaseMapper提供了两个分页方法:


需要多表联查,可以在xml文件里编写多表联查的SQL,一样可以实现其功能

mybatis-plus更新
1.根据id更新


2.以条件构造器作为参数进行更新

mybatis-plus删除方法
根据id删除方法——deleteById(前提:实体类主键属性上有@TableId注解)


以条件构造器为参数删除方法
