MyBatis Plus扩展功能

news/2025/2/24 15:53:39

一、代码生成器

二、逻辑删除

三、枚举处理器

状态字段我们一般会定义一个枚举,做业务判断的时候就可以直接基于枚举做比较。但是我们数据库采用的是int类型,对应的PO也是Integer。因此业务操作时必须手动把枚举与Integer转换,非常麻烦。

因此,MybatisPlus提供了一个处理枚举的类型转换器,可以帮我们把枚举类型与数据库类型自动转换。如果要使用此处理器,需添加配置:

mybatis-plus:
  configuration:
    default-enum-type-handler: com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler

例:

package com.itheima.mp.enums;

import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;

@Getter
public enum UserStatus {
    NORMAL(1, "正常"),
    FREEZE(2, "冻结")
    ;
    private final int value;
    private final String desc;

    UserStatus(int value, String desc) {
        this.value = value;
        this.desc = desc;
    }
}

注意 :

MybatisPlus提供了@EnumValue注解来标记枚举属性,@JsonValue注解标记JSON序列化时展示的字段

四、JSON类型处理器

MybatisPlus提供了很多特殊类型字段的类型处理器,解决特殊字段类型与数据库类型转换的问题。例如处理JSON就可以使用JacksonTypeHandler处理器。

如何使用?

1.定义实体

package com.itheima.mp.domain.po;

import lombok.Data;

@Data
public class UserInfo {
    private Integer age;
    private String intro;
    private String gender;
}

2.使用类型处理器

五、插件功能

1.分页插件

首先,要在配置类中注册MyBatisPlus的核心插件,同时添加分页插件:

例:

@GetMapping("/page")
    public R<Page> page(int page,int pageSize,String name)
    {
        log.info("page = {},pageSize = {},name = {}",page,pageSize,name);
        //构造分页构造器
        Page pageInfo = new Page(page,pageSize);
        //构造条件构造器
        LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper();
        //添加过滤条件
        queryWrapper.like(StringUtils.isNotEmpty(name),Employee::getName,name);
        //添加排序条件
        queryWrapper.orderByDesc(Employee::getUpdateTime);
        //执行查询
        employeeService.page(pageInfo,queryWrapper);

        return R.success(pageInfo);
    }


http://www.niftyadmin.cn/n/5864555.html

相关文章

低功耗设计:(3)架构级优化

在上一期文章中&#xff0c;介绍了系统级低功耗设计的方法&#xff0c;如软硬件协同设计、功耗管理机制等。 本期将深入探讨架构级低功耗设计的核心技术&#xff0c;包括多电压设计&#xff08;Multi-VDD&#xff09;、动态电压频率调节&#xff08;DVFS&#xff09;、系统时钟…

通过C语言实现“数据结构”课程中的链表,数据,数,图

链表 链表是一种线性数据结构&#xff0c;其中元素不是存储在连续的内存位置&#xff0c;而是通过指针链接在一起。每个元素称为一个节点&#xff0c;包含数据部分和指向下一个节点的指针。 单向链表示例&#xff1a; 假设有一个链表包含三个节点&#xff1a;1 -> 2 ->…

maven模块化管理

将一个大项目拆分成若干个子模块&#xff0c;方便项目管理维护、扩展&#xff0c;也方便模块间的相互引用&#xff0c;资源共享 具体步骤 先创建一个空项目&#xff08;父项目&#xff09;即下图的sky-take-out,然后打开项目结构的模块&#xff0c;选中父模块&#xff0c;再点…

支持向量机(SVM)在 NLP 中的使用场景

支持向量机(Support Vector Machine, SVM)是一种强大的监督学习算法,广泛应用于分类任务中。由于其出色的分类性能和高效的计算特点,SVM 已经成为自然语言处理(NLP)领域中的一种经典模型。SVM 在 NLP 中的应用非常广泛,尤其在文本分类任务中,表现出色。 本文将探讨 SV…

深度解析:大模型在多显卡服务器下的通信机制与分布式训练——以DeepSeek、Ollama和vLLM为例

一、引言&#xff1a;大模型与多显卡的必然结合 随着大模型参数规模突破千亿级&#xff08;如GPT-4、DeepSeek&#xff09;&#xff0c;单显卡的显存容量与算力已无法满足需求。多显卡并行计算成为训练与推理的核心技术&#xff0c;其核心挑战在于高效通信与负载均衡。本文以国…

《论多源数据集成及应用》审题技巧 - 系统架构设计师

论多源数据集成及应用写作框架 一、考点概述 本论题“论多源数据集成及应用”主要考察的是计算机软件测试工程师在数据管理和集成方面的专业知识与实践能力。论题聚焦于信息爆炸时代企业、组织和个人所面临的数据挑战&#xff0c;特别是如何有效地收集、整理和清洗来自不同渠…

Spring Security+JWT+Redis实现项目级前后端分离认证授权

1. 整体概述 权限管理包括用户身份认证和授权两部分&#xff0c;简称认证授权。对于需要访问控制到资源&#xff0c;用户首先经过身份认证&#xff0c;认证通过后用户具有该资源的访问权限方可访问。 1.1 认证概述 认证是确认用户身份的过程&#xff0c;确保用户是谁。 1.1.1 …

【STM32 基于PID的闭环电机控制系统】

STM32 基于PID的闭环电机控制系统 目录 STM32 基于PID的闭环电机控制系统一、PID算法在STM32F103C8T6中的实现思路二、代码实现与解释三、PID算法的调试与优化四、总结 一、PID算法在STM32F103C8T6中的实现思路 基本概念 • 目标 &#xff1a;通过PID算法调节电机的转速&#…