抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

一、快速入门

1.1、使用

1、引入依赖

注意:引入了MP的依赖,就不用引Mybatis的依赖了,这个依赖已经包含了Mybatis的

1
2
3
4
5
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.4</version>
</dependency>

2、定义Mapper

自定义的Mapper继承MybatisPlus提供的BaseMapper接口(要制定实体类的类型)

3、在实体类上添加注解声明表信息

4、在application.yml中根据需要添加配置

1.2、常见注解

MyBatisPlus通过扫描实体类,并基于反射获取实体类信息作为数据库表信息

约定:

  • 类名驼峰转下划线作为表名
  • 名为id的字段作为主键
  • 变量名驼峰转下划线作为表的字段名

如果实体和表的对应关系不符合以上约定,就要用注解来配置了

  1. @TableName:用来指定表名
  2. @TableId:用来指定表中的主键字段信息
  3. @TableField:用来指定表中的普通字段信息

Mp

对于@TableId,IdType枚举可选类型有以下:

  • AUTO:数据库自增长
  • INPUT:通过set方法自行输入
  • ASSIGN_ID:分配ID,接口ldentifierGenerator的方法nextld来生成id,默认实现类为雪花算法。这种方式由mp自动生成id

使用@TableField的常见场景:

  • 成员变量名与数据库字段名不一致(如上图name)
  • 成员变量名以is开头,且是布尔值(如上图isMarried)
  • 成员变量名与数据库关键字冲突(如上图order)
  • 成员变量不是数据库字段(如上图address)

二、核心功能

2.1、条件构造器

MyBatisPlus支持各种复杂的where条件,可以满足日常开发的所有需求。

第一步:构建查询条件

第二步:操作(查询更新等)

推荐还是用lambda的模式

  • QueryWrapper和LambdaQueryWrapper通常用来构建select、delete、update的where条件部分

  • UpdateWrapper和LambdaUpdateWrapper通常只有在set语句比较特殊才使用

  • 尽量使用LambdaQueryWrapper和LambdaUpdateWrapper来避免硬编码

2.2、自定义SQL

MP擅长where条件的构建,因此我们可以利用MyBatisPlus的Wrapper来构建复杂的Where条件,然后自己定义SQL语句中剩下的部分。

  1. 基于Wrapper构建where条件
  2. 在mapper方法参数中用Param注解声明wrapper变量名称,必须是ew
  3. 自定义SQL,并使用Wrapper条件

2.3、Service接口

2.3.1、IService接口的基本使用

MP的Service接口使用流程是怎样的?

  1. 自定义Service接口继承IService接口
  2. 自定义Service实现类,实现自定义接口并继承Servicelmpl类

评论