当前位置: 首页 > news >正文

MybatisPlus-扩展功能

逻辑删除+乐观锁

MyBatisPlus从入门到精通-3(含mp代码生成器)

Db静态工具类

Spring依赖循环问题

代码生成器

MybatisPlus代码生成器

枚举处理器

我们这里用int来存储状态
需要注解,很不灵活
希望用枚举类来代替这个Integer
在这里插入图片描述
这样的话我们进行service操作就可以直接看到信息
在这里插入图片描述
但是枚举类型和数据库中表的字段不匹配,怎么实现这个数据类型的转换呢?
在这里插入图片描述
mp实现了好用的枚举处理器和json处理器供我们使用
在这里插入图片描述

具体操作

创建注解和替换类型就不说了
1.enum中加@EnumValue注解
枚举类那个对应表的字段一定要包含数据库对应字段所以可能出现的情况
因为他是enum类型如果你查出个3他也没法创建啊,枚举类不给set,且构造方法是私有的
在这里插入图片描述
2.在配置文件写一个配置
在这里插入图片描述
这样写逻辑时候代码可读性就变的好一点
在这里插入图片描述
这样返回的是对象名啊,如果想设置别的作为返回的json数据的话,用@JsonValue标注
在这里插入图片描述

在这里插入图片描述

小声哔哔

我感觉常量类定义一下也可以这样
定义几个变量,就是要用英文标识呗,感觉用处不大

JSON处理器

我们查User表里面有个Userinfo的json属性
我们就用对象接收UserJson,需要json处理器
要不然只能有String 接收 info 自己处理
这时只需要加上@TableField(typeHandler = JacksonTypeHandler)注释
就是标定json处理器
我们json处理器不像枚举一样有全局配置,所以需要我们一个一个写注解喽
然后还要在@Tablename(autoResultMap = true)
开启resultmap映射
在这里插入图片描述

分页插件

分页插件最常用
这个是mp里面的功能哈
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

举例

封装VO返回就不看了
看一些怎么分页查吧
在这里插入图片描述
分页查询实体(所有业务分页查询都可以用它)
在这里插入图片描述
User扩展分页查询参数继承PageQuery
在这里插入图片描述
在这里插入图片描述

优化

其实上面的构建page
和封装VO的过程是每个分页查询都会做的
所以其实我们可以提取成工具方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
写完后改造之前业务逻辑
非常简洁
在这里插入图片描述

相关文章:

MybatisPlus-扩展功能

逻辑删除乐观锁 MyBatisPlus从入门到精通-3(含mp代码生成器) Db静态工具类 Spring依赖循环问题 代码生成器 MybatisPlus代码生成器 枚举处理器 我们这里用int来存储状态 需要注解,很不灵活 希望用枚举类来代替这个Integer 这样的话我…...

《计算机视觉》——角点检测和特征提取sift

角点检测 角点的定义: 从直观上理解,角点是图像中两条或多条边缘的交点,在图像中表现为局部区域内的灰度变化较为剧烈的点。在数学和计算机视觉中,角点可以被定义为在两个或多个方向上具有显著变化的点。比如在一幅建筑物的图像…...

DeepSeek模型快速部署教程-搭建自己的DeepSeek

前言:在人工智能技术飞速发展的今天,深度学习模型已成为推动各行各业智能化转型的核心驱动力。DeepSeek 作为一款领先的 AI 模型,凭借其高效的性能和灵活的部署方式,受到了广泛关注。无论是自然语言处理、图像识别,还是…...

Swift CChar元祖转String

iOS有些API是调用C函数,Swift端获得的数据是CChar元祖,需要转成String方便使用,下面的代码以获取手机型号为例 方式一 var systemInfo utsname() uname(&systemInfo) let deviceModel withUnsafePointer(to: systemInfo.machine) { …...

【刷题】leetcode

题目 现有 s e r v e r N u m 台服务器,编号依次为 1 − s e r v e r...

WPF创建自定义类和控件及打包成dll引用

WPF创建自定义类和控件及打包成dll引用 一、前言二、创建自定义类和控件并生成dll文件2.1创建类库项目2.2创建自定义类和控件2.3生成dll文件 三、在其他项目中引用3.1添加dll文件引用3.2cs文件中引用命名空间3.3XAML文件中引用命名空间 一、前言 出于一些代码复用的需求&#…...

Zookeeper(54)如何使用Zookeeper的命令行工具?

使用 Zookeeper 的命令行工具可以方便地进行各种操作,如管理节点、查看状态、设置配置信息等。以下是详细的步骤和代码示例,涵盖如何使用 Zookeeper 的命令行工具。 1. 安装和配置 Zookeeper 首先确保已经安装并配置好 Zookeeper。可以在 Zookeeper 的…...

一周学会Flask3 Python Web开发-http响应状态码

锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 在Flask程序中,客户端发出的请求触发相应的视图函数,获取返回值会作为响应的主体,最后生成…...

【数据挖掘】

数据挖掘 目录:1. 数据转换2. 属性选择3. 独立于方案的选择4. 探索空间5. 具体方案的选择6. 离散化数值属性无监督离散化基于熵的离散化其他离散化方法 k-means算法原理算法步骤优缺点优点缺点 代码示例(使用Python和scikit-learn库)代码解释…...

位操作符 练习

一、异或(^) 参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。 即: 0^0 0,1^0 1, 0^1 1,1^1 0 按位异或的3个特点: (1) 0异…...

解决Python升级导致PySpark任务异常方案

背景 上一篇文章中写了 Linux 多Python版本统一和 PySpark 依赖 python 包方案,但是最近升级 Linux 服务器 上 Python 版本(3.6.8 -> 3.7.16,手动编译Python官方的二进制源码)之后,发现之前文章提到 python3 -m v…...

Linux中线程创建,线程退出,线程接合

线程的简单了解 之前我们了解过 task_struct 是用于描述进程的核心数据结构。它包含了一个进程的所有重要信息,并且在进程的生命周期内保持更新。我们想要获取进程相关信息往往从这里得到。 在Linux中,线程的实现方式与进程类似,每个线程都…...

机器视觉检测中,2D面阵相机和线扫相机的区别

2D面阵相机和线扫相机是工业视觉系统中常用的两种相机类型,各有其特点和应用场景。 2D面阵相机 特点: 成像方式:通过二维传感器一次性捕捉整个场景的图像。 分辨率:分辨率由传感器的像素数决定,常见的有百万像素到几千…...

LeetCode 热题 100_N 皇后 (62_51_困难_C++)(递归(回溯))

LeetCode 热题 100_N 皇后(62_51) 题目描述:输入输出样例:题解:解题思路:思路一(递归(回溯)): 代码实现代码实现(思路一(递…...

Winform(C#) 项目保存页面

上一张我们已经实现了TCP和串口页面的数据展示,和保存控件 我们这一章,实现如何去,控制保存。 一、控件展示 CheckBox TextBox Button label Name: checkSaveImage checkDelete txtSaveDays txtSaveImagePath btnSelectIm…...

【LeetCode: LCR 126. 斐波那契数 + 动态规划】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…...

OSPF(开放路径最短优先)

ospf优先级&#xff1a;内部优先级默认为10&#xff0c;外部优先级默认为150 1.ospf的三张表 &#xff08;1&#xff09;邻居表 <记录邻居状态和关系> &#xff08;2&#xff09;拓扑表 <链路状态数据库> &#xff08;3&#xff09;路由表 <对链路状态数据库进…...

JAVA EE初阶 - 预备知识(四)

一、API API 即应用程序编程接口&#xff08;Application Programming Interface&#xff09;&#xff0c;是一组定义、协议和工具&#xff0c;用于不同软件组件、应用程序或系统之间进行交互和通信。以下从多个方面详细介绍 API&#xff1a; 基本概念 接口规范&#xff1a;A…...

如何解决服务器端口被攻击:全面防护与快速响应

服务器端口被攻击是网络安全中常见的问题之一&#xff0c;尤其是当服务器暴露在公共网络上时&#xff0c;容易成为黑客的目标。攻击者可能通过扫描开放端口、利用漏洞或发动拒绝服务&#xff08;DoS/DDoS&#xff09;攻击来破坏服务器的正常运行。本文将详细介绍如何检测、防御…...

golang panic原理

数据结构与底层实现 Goroutine结构体 stack&#xff08;栈内存范围&#xff09; 结构体类型&#xff0c;包含 lo&#xff08;低地址&#xff09;和 hi&#xff08;高地址&#xff09;两个 uintptr 字段&#xff0c;描述 Goroutine 的栈内存区间 [lo, hi)。初始栈大小为 2KB&a…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1&#xff09;准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2&#xff09;服务端安装软件&#xff1a;bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...