MybatisPlus学习

MybatisPlus学习

一、MybatisPlus简介

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

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

1.1.1、创建数据库及表

在这里插入图片描述

1.1.2、创建springboot工程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.1.3、添加配置

在这里插入图片描述

1.1.4、创建实体类

在这里插入图片描述

1.1.5、创建dao接口

在这里插入图片描述

1.1.6、编写测试类

在这里插入图片描述
在这里插入图片描述

1.1.7总结

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

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

1.2、mybatisPlus简介

在这里插入图片描述

二、标准数据层开发

在这里插入图片描述

2.1、新增

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2、删除

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3、修改

在这里插入图片描述
在这里插入图片描述

2.4、根据id查询

在这里插入图片描述
在这里插入图片描述

2.5、查询所有

在这里插入图片描述
在这里插入图片描述

2.6、Lombok

每次写实体类都需要构建setter,getter,tostring等方法。Lombok是一个jar包、java类库,提供一组注解,简化pojo实体类开发。
在这里插入图片描述
在这里插入图片描述
@Slf4j:记录日志方便调试
在这里插入图片描述

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

在这里插入图片描述

2.7、分页功能

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

2.7.2、设置分页拦截器

必须要设置拦截器,分页查询的方法才能正常使用。原因时sql语句中有limit的语句,需要设置拦截器MP才能在sql语句上添加limit条件。
在这里插入图片描述
在这里插入图片描述

2.7.3、日志功能

在这里插入图片描述
在这里插入图片描述

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

3.1、条件查询

3.1.1、条件查询的类

MP将书写复杂SQL查询条件进行了封装,使用编程的形式完成查询条件的组合。Wrapper类就是用来构建查询条件的。
在这里插入图片描述

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接口
  • 创建实体类
  • 添加配置
    在这里插入图片描述
  • 编写测试类
    在这里插入图片描述
处理日志

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.1.3、构建条件查询

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

3.1.4、多条件构建

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.1.5、null判定

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 实现需求:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3.2、查询投影

3.2.1、查询指定字段

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2.2、聚合查询

聚合函数查询,完成count、max、min、avg、sum的使用
在这里插入图片描述
在这里插入图片描述

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、环境构建

  • 创建springboot项目
  • pom.xml中添加对应的依赖
  • 编写UserDao接口
  • 编写模型类
    在这里插入图片描述
  • 编写配置文件
  • 编写测试类
    在这里插入图片描述
    在这里插入图片描述

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、逻辑删除

实质上是update而不是delete
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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、代码生成器的实现

  • 创建项目
  • 导入jar包
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 创建代码生成类
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 配置文件
  • 运行程序
    在这里插入图片描述

5.3、MP中Service的CRUD

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 22
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值