什么是Mybatis-Plus
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生(提供了快速使用mybatis的方式)。
1、数据库环境准备
2、创建SpringBoot工程,引入MyBatisPlus场景依赖
3、在yml中编写DataSource相关配置
4、编写mapper
使用mp定义Mapper,需要让Mapper接口继承 BaseMapper接口。
5、测试
雪花算法了解
生成ID的过程让时间戳、数据库服务器标识、序列化号等参与运算,保证分布式环境下ID的唯一性,避免主键冲突
MP主键生成策略-@TableId
注解@TableId介绍
@TableId注解作用:
1.标识实体类中主键对应属性;
2.定义主键生成策略;
@TableId使用:
添加在实体类的主键对应的成员属性上即可;
主键生成策略介绍
主键生成策略:
是指为数据库生成主键的方式,我们前面学的数据库主键自增也是一种生成主键的策略,当然除了数据库服务端帮助我们维护主键之外,客户端也可以对主键值进行生成维护。
使用示例
IdType.INPUT 不自动生成,自己指定ID
普通列注解-@TableField
1.通过@TableField(“表列名”) 指定映射关系
以下情况可以省略:
- 名称一样
- 数据库字段使用_分割,实体类属性名使用驼峰名称(MP自动开启驼峰映射)
2.忽略某个字段的 增 删 查 操作 @TableField(exist = false)
BaseMaper定义的常用删除方法
实现更新操作
只更新实体类中存在的数据,如果对应的属性为null
实现分页查询
1.配置分页拦截器
2.查询
QueryWrapper实现基础查询
eq( ) : 等于 =
ne( ) : 不等于 <>
gt( ) : 大于 >
ge( ) : 大于等于 >=
lt( ) : 小于 <
le( ) : 小于等于 <=
between ( ) : BETWEEN 值1 AND 值2
notBetween ( ) : NOT BETWEEN 值1 AND 值2
in( ) : in
notIn( ) :not in
1.先new QueryWrapper<>();
2.组装查询条件
wrapper.like().eq().in()….
3.调用mapper对象的 selectlist(wrapper)方法
4.遍历打印
users.foreach(system.out::println);
加 .or() 是或,不加默认是 and
.select(“字段1”,”字段2”) //查询结果仅显示部分字段
LambdaQueryWrapper查询

常用方法
MP实现Service封装
MybatisPlus为了开发更加快捷,对业务层也进行了封装,直接提供了相关的接口和实现类;
我们在进行业务层开发时,可以继承它提供的接口和实现类,使得编码更加高效;
实现流程
1.定义一个服务扩展接口,该接口继承公共接口 IService;
2.定义一个服务实现类,该类继承ServiceImpl
注意事项:
1.ServiceImpl父类已经注入了UserMapper对象,名称叫做baseMapper,所以当前实现类直接可以使用baseMapper完成操作
2.因为ServiceImpl已经实现了IService下的方法,所以当前服务类没有必要再次实现
思想:共性的业务代码交给框架封装维护,非共性的业务,在接口UserService定义,然后在当前的服务类下实现
06-MP代码生成器
针对目前开发的现状,MP的代码生成器就可以一展身手了;
通过MP代码生成器可以生成模板性的代码,减少手工操作的繁琐,使开发人员聚焦于业务开发之上,提升开发效率;
AutoGenerator 类是MyBatis-Plus 的核心代码生成器类,通过 AutoGenerator 可以快速生成 Mapper接口、Entity实体类、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。
先在本工程生成,然后就可以把代码拷贝到对应的项目目录中使用了;
07-MybatisX插件
MybatisX 是一款基于 IDEA 的快速开发插件,为效率而生。
安装方法:打开 IDEA,进入 File -> Settings -> Plugins -> Browse Repositories,输入 mybatisx 搜索并安装
功能:
- Java 与 XML 调回跳转
- Mapper 方法自动生成 XML
