MybatisPlus学习

MybatisPlus学习

  • 一、MybatisPlus简介
    • 1.1、入门案例(springboot整合MP)
      • 1.1.1、创建数据库及表
      • 1.1.2、创建springboot工程
      • 1.1.3、添加配置
      • 1.1.4、创建实体类
      • 1.1.5、创建dao接口
      • 1.1.6、编写测试类
      • 1.1.7总结
    • 1.2、mybatisPlus简介
  • 二、标准数据层开发
    • 2.1、新增
    • 2.2、删除
    • 2.3、修改
    • 2.4、根据id查询
    • 2.5、查询所有
    • 2.6、Lombok
      • 2.6.1、包含之前方法也可使用
    • 2.7、分页功能
      • 2.7.1、调用方法传入参数获取返回值
      • 2.7.2、设置分页拦截器
      • 2.7.3、日志功能
  • 三、DQL(数据查询query语言)编程控制
    • 3.1、条件查询
      • 3.1.1、条件查询的类
      • 3.1.2、环境构建
        • 处理日志
      • 3.1.3、构建条件查询
      • 3.1.4、多条件构建
      • 3.1.5、null判定
    • 3.2、查询投影
      • 3.2.1、查询指定字段
      • 3.2.2、聚合查询
      • 3.2.3、分组查询
      • 3.2.4、注意点
    • 3.3、查询条件
      • 3.3.1、等值查询
      • 3.3.2、范围查询
      • 3.3.3、模糊查询
      • 3.3.4、排序查询
    • 3.4、映射匹配兼容性
      • 3.4.1、问题一:表列名与模型类的属性名不一致
      • 3.4.2、问题二:模块类中多了数据库中未定义的字段
      • 3.4.3、问题三:限制字段默认不要进行查询
      • 3.4.4、问题四:表的名称和模型类的名称不一致
  • 四、DML(数据库操作语言)编程控制
    • 4.1、id生成策略控制(insert)
      • 4.1.1、环境构建
      • 4.1.2、auto策略
      • 4.1.3、input策略(用户手工输入id)
      • 4.1.4、assin_id策略(生成的id是个long类型的数据,64bit)
      • 4.1.5、assin_uuid策略(生成32位字符串)
      • 4.1.6、id生成策略对比
    • 4.2、简化配置
      • 4.2.1、模型类主键策略设置
      • 4.2.2、数据库表和模型类的映射关系
    • 4.3、多记录操作
      • 4.3.1、批量删除
      • 4.3.2、批量查询
    • 4.3、逻辑删除
      • 4.3.1、修改数据库添加deleted列
      • 4.3.2、实体类添加属性
      • 4.3.3、运行删除方法
      • 4.3.4、逻辑删除后对查询的影响
      • 4.3.5、总结
    • 4.4、乐观锁
      • 4.4.1、概念
      • 4.4.2、实现思路
      • 4.4.3、实现步骤
  • 五、快速开发
    • 5.1、代码生成器的原理分析
    • 5.2、代码生成器的实现
    • 5.3、MP中Service的CRUD

一、MybatisPlus简介

1.1、入门案例(springboot整合MP)

简称MP,和springboot简化spring开发一样,MP简化Mybatis程序的开发,提高开发效率。

1.1.1、创建数据库及表

MybatisPlus学习_第1张图片

1.1.2、创建springboot工程

MybatisPlus学习_第2张图片
MybatisPlus学习_第3张图片
MybatisPlus学习_第4张图片

1.1.3、添加配置

MybatisPlus学习_第5张图片

1.1.4、创建实体类

MybatisPlus学习_第6张图片

1.1.5、创建dao接口

MybatisPlus学习_第7张图片

1.1.6、编写测试类

MybatisPlus学习_第8张图片
MybatisPlus学习_第9张图片

1.1.7总结

和boot整合mybatis相比,改变的地方:

  • 依赖不同
  • dao接口中不需要编写方法和sql语句,只需要继承BaseMapper接口即可。

1.2、mybatisPlus简介

MybatisPlus学习_第10张图片

二、标准数据层开发

MybatisPlus学习_第11张图片

2.1、新增

MybatisPlus学习_第12张图片
MybatisPlus学习_第13张图片
MybatisPlus学习_第14张图片

2.2、删除

MybatisPlus学习_第15张图片
MybatisPlus学习_第16张图片
MybatisPlus学习_第17张图片

2.3、修改

MybatisPlus学习_第18张图片
MybatisPlus学习_第19张图片

2.4、根据id查询

MybatisPlus学习_第20张图片
MybatisPlus学习_第21张图片

2.5、查询所有

MybatisPlus学习_第22张图片
MybatisPlus学习_第23张图片

2.6、Lombok

每次写实体类都需要构建setter,getter,tostring等方法。Lombok是一个jar包、java类库,提供一组注解,简化pojo实体类开发。
MybatisPlus学习_第24张图片
MybatisPlus学习_第25张图片
@Slf4j:记录日志方便调试
MybatisPlus学习_第26张图片

2.6.1、包含之前方法也可使用

MybatisPlus学习_第27张图片

2.7、分页功能

MybatisPlus学习_第28张图片
MybatisPlus学习_第29张图片

2.7.1、调用方法传入参数获取返回值

MybatisPlus学习_第30张图片
MybatisPlus学习_第31张图片

2.7.2、设置分页拦截器

必须要设置拦截器,分页查询的方法才能正常使用。原因时sql语句中有limit的语句,需要设置拦截器MP才能在sql语句上添加limit条件。
MybatisPlus学习_第32张图片
MybatisPlus学习_第33张图片

2.7.3、日志功能

MybatisPlus学习_第34张图片
MybatisPlus学习_第35张图片

三、DQL(数据查询query语言)编程控制

3.1、条件查询

3.1.1、条件查询的类

MP将书写复杂SQL查询条件进行了封装,使用编程的形式完成查询条件的组合。Wrapper类就是用来构建查询条件的。
MybatisPlus学习_第36张图片

3.1.2、环境构建

  • 创建springboot工程
  • pom.xml中添加依赖
<dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.16</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
  • 编写UserDao接口
  • 创建实体类
  • 添加配置
    MybatisPlus学习_第37张图片
  • 编写测试类
    MybatisPlus学习_第38张图片

处理日志

MybatisPlus学习_第39张图片
MybatisPlus学习_第40张图片
MybatisPlus学习_第41张图片
MybatisPlus学习_第42张图片

3.1.3、构建条件查询

MybatisPlus学习_第43张图片
MybatisPlus学习_第44张图片
MybatisPlus学习_第45张图片
在这里插入图片描述
MybatisPlus学习_第46张图片

  • 推荐使用方式三:且进行动态条件拼装
    在这里插入图片描述

3.1.4、多条件构建

在这里插入图片描述
MybatisPlus学习_第47张图片
MybatisPlus学习_第48张图片
MybatisPlus学习_第49张图片

MybatisPlus学习_第50张图片

3.1.5、null判定

MybatisPlus学习_第51张图片
MybatisPlus学习_第52张图片
在这里插入图片描述
MybatisPlus学习_第53张图片

  • 实现需求:
    MybatisPlus学习_第54张图片
    在这里插入图片描述
    MybatisPlus学习_第55张图片
    MybatisPlus学习_第56张图片
    MybatisPlus学习_第57张图片

3.2、查询投影

3.2.1、查询指定字段

MybatisPlus学习_第58张图片
在这里插入图片描述
MybatisPlus学习_第59张图片

3.2.2、聚合查询

聚合函数查询,完成count、max、min、avg、sum的使用
MybatisPlus学习_第60张图片
MybatisPlus学习_第61张图片

3.2.3、分组查询

MybatisPlus学习_第62张图片
在这里插入图片描述

3.2.4、注意点

在这里插入图片描述

3.3、查询条件

MybatisPlus学习_第63张图片

3.3.1、等值查询

MybatisPlus学习_第64张图片
MybatisPlus学习_第65张图片

3.3.2、范围查询

MybatisPlus学习_第66张图片
MybatisPlus学习_第67张图片

3.3.3、模糊查询

MybatisPlus学习_第68张图片
在这里插入图片描述

3.3.4、排序查询

MybatisPlus学习_第69张图片
MybatisPlus学习_第70张图片
MybatisPlus学习_第71张图片
在这里插入图片描述

3.4、映射匹配兼容性

数据能够从表中获取并封装到模型对象中,原因是表的字段列名和模型类的属性名一样。

3.4.1、问题一:表列名与模型类的属性名不一致

MybatisPlus学习_第72张图片

3.4.2、问题二:模块类中多了数据库中未定义的字段

MybatisPlus学习_第73张图片
MybatisPlus学习_第74张图片

3.4.3、问题三:限制字段默认不要进行查询

MybatisPlus学习_第75张图片

3.4.4、问题四:表的名称和模型类的名称不一致

在这里插入图片描述
MybatisPlus学习_第76张图片

四、DML(数据库操作语言)编程控制

4.1、id生成策略控制(insert)

MybatisPlus学习_第77张图片
MybatisPlus学习_第78张图片

4.1.1、环境构建

  • 创建springboot项目
  • pom.xml中添加对应的依赖
  • 编写UserDao接口
  • 编写模型类
    MybatisPlus学习_第79张图片
  • 编写配置文件
  • 编写测试类
    MybatisPlus学习_第80张图片
    MybatisPlus学习_第81张图片

4.1.2、auto策略

MybatisPlus学习_第82张图片
MybatisPlus学习_第83张图片
MybatisPlus学习_第84张图片

4.1.3、input策略(用户手工输入id)

MybatisPlus学习_第85张图片
MybatisPlus学习_第86张图片
MybatisPlus学习_第87张图片

4.1.4、assin_id策略(生成的id是个long类型的数据,64bit)

MybatisPlus学习_第88张图片
MybatisPlus学习_第89张图片

4.1.5、assin_uuid策略(生成32位字符串)

在这里插入图片描述
在这里插入图片描述
MybatisPlus学习_第90张图片
MybatisPlus学习_第91张图片

4.1.6、id生成策略对比

MybatisPlus学习_第92张图片
MybatisPlus学习_第93张图片

4.2、简化配置

4.2.1、模型类主键策略设置

MybatisPlus学习_第94张图片
MybatisPlus学习_第95张图片

4.2.2、数据库表和模型类的映射关系

MybatisPlus学习_第96张图片
MybatisPlus学习_第97张图片

4.3、多记录操作

4.3.1、批量删除

MybatisPlus学习_第98张图片
MybatisPlus学习_第99张图片
MybatisPlus学习_第100张图片

4.3.2、批量查询

MybatisPlus学习_第101张图片
MybatisPlus学习_第102张图片
MybatisPlus学习_第103张图片

4.3、逻辑删除

实质上是update而不是delete
MybatisPlus学习_第104张图片
在这里插入图片描述
MybatisPlus学习_第105张图片

4.3.1、修改数据库添加deleted列

MybatisPlus学习_第106张图片

4.3.2、实体类添加属性

MybatisPlus学习_第107张图片

4.3.3、运行删除方法

MybatisPlus学习_第108张图片

4.3.4、逻辑删除后对查询的影响

MybatisPlus学习_第109张图片
MybatisPlus学习_第110张图片
在这里插入图片描述
MybatisPlus学习_第111张图片
MybatisPlus学习_第112张图片

4.3.5、总结

MybatisPlus学习_第113张图片

4.4、乐观锁

4.4.1、概念

更新一条记录时,希望这条记录没有被别人更新。
在这里插入图片描述

4.4.2、实现思路

MybatisPlus学习_第114张图片
MybatisPlus学习_第115张图片

4.4.3、实现步骤

MybatisPlus学习_第116张图片
MybatisPlus学习_第117张图片
在这里插入图片描述
MybatisPlus学习_第118张图片
在这里插入图片描述
MybatisPlus学习_第119张图片
MybatisPlus学习_第120张图片
MybatisPlus学习_第121张图片
MybatisPlus学习_第122张图片
MybatisPlus学习_第123张图片
MybatisPlus学习_第124张图片
MybatisPlus学习_第125张图片

五、快速开发

5.1、代码生成器的原理分析

自动生成代码模板
MybatisPlus学习_第126张图片
在这里插入图片描述
MybatisPlus学习_第127张图片
MybatisPlus学习_第128张图片

5.2、代码生成器的实现

  • 创建项目
  • 导入jar包
    MybatisPlus学习_第129张图片
    MybatisPlus学习_第130张图片
    MybatisPlus学习_第131张图片
    在这里插入图片描述
    MybatisPlus学习_第132张图片
  • 创建代码生成类
    MybatisPlus学习_第133张图片
    MybatisPlus学习_第134张图片
    MybatisPlus学习_第135张图片
    在这里插入图片描述
  • 配置文件
  • 运行程序
    MybatisPlus学习_第136张图片

5.3、MP中Service的CRUD

MybatisPlus学习_第137张图片
在这里插入图片描述
MybatisPlus学习_第138张图片
MybatisPlus学习_第139张图片

你可能感兴趣的:(学习,mybatis,java)