优雅处理枚举前端丢失大Long精度问题
1. 枚举-json处理(前端 <=> 后端 <=> 数据库)
前端传递 枚举code
后端响应 枚举code
表里存储 枚举code
内存处理 枚举对象
@Getter
@AllArgsConstructor
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum SexEnum {MALE(0, "男"),FEMALE(1, "女"),UNKNOWN(2, "未知");/*** 前端传递不存在的枚举code,报400错误(起到规范作用)*/@JsonValue // 告诉jackson 返回json时,使用这个属性@EnumValue // 告诉mybatis-plus 这个枚举在数据库中保存为这个字段的值private final int code;private final String desc;
}
/*** 用户性别(0男 1女 2未知)*/@TableField(value = "sex")private SexEnum sex; // 表里是int类型,实体类字段用枚举类型封装
yml:
mybatis-plus:type-enums-package: com.example.demo.guigu.enums
2. 枚举-mapper.xml
mapper.xml 中,直接使用 枚举对象.code 进行判断
List<SysUser> getEnumeData(@Param("se") SexEnum sexEnum);
<select id="getEnumeData" resultType="com.atguigu.admin.entity.SysUser">select * from sys_user where sex = #{se.code}
</select>
3. 前端丢失大Long精度问题
问题描述:表里的主键如果是大Long,后端用Long包装并返回给前端,前端收到的Long会丢失精度
解决办法:后端统一把Long转成String再返回给前端
// 统一将 Long 类型序列化为 String
@Configuration
public class JacksonConfiguration {@Beanpublic Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {return builder -> {// 把 Long 类型序列化为 Stringbuilder.serializerByType(Long.class, ToStringSerializer.instance);};}
}
@Component
public class LongToStringConverter extends JsonSerializer<Long> {@Overridepublic void serialize(Long aLong, JsonGenerator jsonGenerator,SerializerProvider serializerProvider) throws IOException {jsonGenerator.writeString(aLong.toString());}
}
如若此做,后端响应给前端的json里原本Long类型的字段全变成字符串
讲解视频:https://www.bilibili.com/video/BV1dE421P7y5
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
优雅处理枚举前端丢失大Long精度问题
1. 枚举-json处理(前端 <> 后端 <> 数据库) 前端传递 枚举code 后端响应 枚举code 表里存储 枚举code 内存处理 枚举对象 Getter AllArgsConstructor JsonFormat(shape JsonFormat.Shape.OBJECT) public enum SexEnum {MALE(0, "男&…...
![](https://www.ngui.cc/images/no-images.jpg)
【c/c++】 学习ector 容器笔记
c/c 学习ector 容器笔记 int 型的 vector 容器应该使用什么类型的索引? 对于 int 型的 vector 容器,应该使用 size_t 类型的索引。size_t 是一个无符号整数类型,它在标准库中广泛用于表示大小和索引。它足够大,可以表示任何标准…...
![](https://i-blog.csdnimg.cn/direct/ff2f6bac440b46d19c3d5ca0fa720038.png)
DN专业3D图形制作软件win/mac软件安装下载(附下载链接)
目录 一、软件概述 1.1 Adobe DN简介 1.2 Windows/Mac系统要求 Windows系统: Mac系统: 二、安装步骤 2.1 下载与解压 2.2 安装程序 2.3 启动软件 三、使用教程 3.1 界面介绍 3.2 创建和编辑3D内容 3.3 合成与渲染 四、高级技巧与注意事项 …...
![](https://www.ngui.cc/images/no-images.jpg)
VSCode搭建Hzero(SpringCloud架构)后端开发调试环境
正常情况下我们使用IDEA开发Hzero,但是有的公司是不允许破解或者使用IDEA的,此时可以使用eclipse来替代也是可以的,最近尝试使用VSCode来开发调试发现了一些问题其中最大的问题是Vscdoe在绝大多数情况下是不能直接运行Hzero,使用插…...
![](https://i-blog.csdnimg.cn/direct/a4beb6cf840b403db9e1ea0983899662.png)
【C++】OJ习题(初阶)
🚀个人主页:奋斗的小羊 🚀所属专栏:C 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 💥1、字符串💥1.1 字符串相加💥1.2 验证回文字符串💥1.3 反转…...
![](https://img-blog.csdnimg.cn/img_convert/761f7a8851182a51947690708fbc9e12.png)
6.4K+ Star!一个强大的本地知识库问答系统,支持多格式文件和跨语言检索,为企业提供高效、安全的数据洞察……
https://github.com/netease-youdao/QAnything 【阅读原文】跳转Github项目 转自AIGC创想者 项目简介 QAnything 是一个基于本地知识库的问答系统,它能够理解和回答基于任何类型文件的问题。 QAnything支持的文件格式非常广泛,包括PDF、Word、PPT、XL…...
![](https://www.ngui.cc/images/no-images.jpg)
mvn编译的时候出现Perhaps you are running on a JRE rather than a JDK 解决方法
目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 mvn编译的时候出现如下问题: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile (default-compile) on project yudao...
![](https://i-blog.csdnimg.cn/direct/43204a2ad2d0402a95c20d4ab2d455de.png)
React原理之Fiber详解
前置文章: React原理之 React 整体架构解读React原理之整体渲染流程 -----读懂这一篇需要对 React 整体架构和渲染流程有大致的概念 😊----- 在React原理之 React 整体架构解读中,简单介绍了 Fiber 架构,也了解了 Fiber 节点的…...
![](https://www.ngui.cc/images/no-images.jpg)
远离“优越感”陷阱,拥抱美好人生
在人生的漫长旅程中,我们不断地与他人相遇、相知、相交,在各种关系中寻找温暖、支持与成长。然而,并非所有的关系都如我们所愿,有些关系甚至可能成为我们前进道路上的阻碍。正如我们所知,唯利是图者不可交,但有一种关系比索要金钱更值得警惕,那就是找你索取满足感的关系…...
![](https://www.ngui.cc/images/no-images.jpg)
Redis的线程模型
Redis作为一种基于内存的高性能键值对数据库,其线程模型和IO模型是实现高性能的关键因素。以下将详细探讨Redis的线程与IO模型,内容不少于2000字。 一、Redis的线程模型 Redis的线程模型是理解其高性能的重要基础。在Redis的发展过程中,其线…...
![](https://i-blog.csdnimg.cn/direct/85eec2dad3f44f4a84c3b1016b7c1f3e.png)
ubuntu24.04安装nginx1.24
ubuntu安装nginx 更新包索引 sudo apt update安装nginx sudo apt install nginx确认安装成功并检查Nginx版本 nginx -v启动Nginx服务 sudo systemctl start nginx设置Nginx开机自启 sudo systemctl enable nginx在浏览器中访问 http://<your_server_IP> 来确认Nginx…...
![](https://i-blog.csdnimg.cn/direct/c6577608eca64b3d8b9ea22ff0b3c5b5.jpeg)
一款好看的WordPress REST API 主题
介绍: 主题特色: 使用Nuxtjs WordPress Rest Api 实现前后端分离,可完成多端部署; 主题支持自动切换黑夜模式。 使用说明: service 目录为wordpress主题文件,需要拷贝到wordpress主题目录下࿰…...
![](https://www.ngui.cc/images/no-images.jpg)
《5G 与区块链融合:智能城市服务质量的飞跃》
在科技飞速发展的时代,5G 技术的普及正以前所未有的速度改变着我们的生活,而区块链技术的兴起也为各领域带来了创新的解决方案。当这两种前沿技术相互结合,将为智能城市的发展注入强大动力,显著提升服务质量,开创更加便…...
![](https://img-blog.csdnimg.cn/img_convert/dc9f7168ce9a3476d8b025f38997c13e.png)
前后端分离开发:用 Apifox 高效管理 API
目录 1.前后台分离开发介绍 2.API 2.1 APIfox介绍 2.2 接口文档管理 1.前后台分离开发介绍 前端开发有2种方式:「前后台混合开发」和「前后台分离开发」。 前后台混合开发,顾名思义就是前台后台代码混在一起开发,如下图所示:…...
![](https://www.ngui.cc/images/no-images.jpg)
Go Channel 详解
概述 在 Go 语言中,channel 是一种用于在 goroutine 之间传递数据的机制。它提供了同步和通信的能力,使得并发编程变得更加简单和安全。Channel 在 Go 语言中的设计是类型安全的,并且支持发送和接收两种操作。 基本概念 创建通道 创建一个…...
![](https://i-blog.csdnimg.cn/direct/022283e36e6e4f5bab6c3447f2f22763.png)
使用FModel提取游戏资产
使用FModel提取游戏模型 前言FModel简介FModel安装FModel使用初次使用资产预览资产导出 附录dumperDumper-7生成usmap文件向游戏中注入dll 前言 这篇文章仅记录我作为初学者使用FModel工具提取某款游戏模型的过程。 FModel简介 FModel是一个开源软件,可以用于查看…...
![](https://www.ngui.cc/images/no-images.jpg)
Qt C++ 屏幕录制 保存mp4
在麒麟系统(基于 Linux)上优化 Qt C 的屏幕录制,主要针对捕获效率和编码速度。可以参考以下优化策略: 1. 使用更高效的屏幕捕获 API 麒麟系统作为 Linux 系统的一种,可以考虑直接使用 X11、Wayland、或 DRM/KMS API …...
![](https://i-blog.csdnimg.cn/direct/aeae8dfddb36457e8a1e8133d4a3ead9.png)
Adobe After Effects的插件--------CC Cylinder
CC Cylinder是柱体插件。它是AE内置的3D插件。 使用条件 该插件的作用是将2D图层转换为3D的柱体。所以使用该插件时要确保源图层为2D的。 我们以一张图片素材为例: 给图片图层添加CC Cylinder效果控件,然后新建一个摄像机(利用摄像机旋转、平移、推拉工具,方便在各个角度…...
![](https://www.ngui.cc/images/no-images.jpg)
Vue3项目开发——新闻发布管理系统(一)
文章目录 一、项目要实现的功能二、项目用到的技术栈三、项目创建1、pnpm安装2、创建项目3、项目启动四、项目配置1、ESLint2、Prettier3、ESLint + Prettier 进行配置代码风格3.1配置prettier3.2vue组件名称多单词组成 (忽略index.vue)3.3props解构(关闭)4、husky4.1husky…...
![](https://i-blog.csdnimg.cn/direct/06e43709728649b29373b88c8200b5fb.png)
前端调用后端,出现跨域报错怎么办
我前端是vue,后端是其他同事写的python,因为部署在不同的机器上,我前端如果直接调用他的python,axios请求就会出现跨域报错,如下 blocked by CORS policy 云云 怎么办呢,网上探索了一下午,才找…...
![](https://i-blog.csdnimg.cn/direct/62560508e14e49d385087494867761be.png)
使用Node-RED发送数据到巴法云
上一篇博文完成了Node-RED的安装,下面来尝试一下用Node-RED来发送数据到巴法云服务器。 我在教学用MQTT工具的思考-CSDN博客中说过,巴法云支持云云互联,可以连小米、百度,学生使用的兴趣高。所以今天先测试Node-RED和巴法云的连接…...
![](https://i-blog.csdnimg.cn/direct/6a0a6b6e9aa2473d9e036c42a1794fa7.png)
【今夕是何年】雅达利发布Atari 7800+游戏主机:配备无线手柄、HDMI接口
雅达利(Atari)发布了Atari 7800游戏主机,目前这款主机在其官方商城接受预定,售价129.99美元。Atari 7800游戏主机,作为Atari 7800系列的革新升级版本,搭载了高效的Rockchip 3128处理器,不仅确保…...
![](https://i-blog.csdnimg.cn/direct/451b0e18df094d73aa4b2bfcb59281dd.png)
APP支付宝授权获取code uniapp
1.点击使用plus.runtime跳转打开支付宝 //打开支付宝授权,在支付宝APP中授权后会在支付宝中跳转到你填写的h5地址//urls是授权地址可以后端拼接也可以前端写死 //以下是一个拼接示例,需修改app_id的值和redirect_uri的值即可 //app_id是商户的APPID&…...
![](https://www.ngui.cc/images/no-images.jpg)
在Linux系统下安装、配置ETCD
在Linux系统下安装、配置ETCD(一个分布式键值存储系统)涉及多个步骤,包括下载、安装、配置、启动以及使用ETCD的常用命令。以下是对这些步骤的详细讲解,内容不少于2000字。 一、ETCD简介 ETCD是一个高可用的键值存储系统&#x…...
![](https://www.ngui.cc/images/no-images.jpg)
lambda 表达式可以传递引用为什么需要引用捕获
当 lambda 表达式被传递或存储在其他地方时,通过引用捕获可以确保它始终访问正确的外部变量。—— 引用捕获可以精确地控制被捕获的引用变量的作用域。如果一个 lambda 表达式被存储在一个容器中,并且在不同的时间点被调用,引用捕获可以确保它…...
![](https://www.ngui.cc/images/no-images.jpg)
【Java】/* 双向链表 - 底层实现 */
【难点】:remove、removeAllKey 一、IList package bagfive;/*** Created with IntelliJ IDEA.* Description:* User: tangyuxiu* Date: 2024-08-21* Time: 20:30*/ public interface IList<E> {//头插法void addFirst(E data);//尾插法void addLast(E data…...
![](https://www.ngui.cc/images/no-images.jpg)
Go 语言协程管理精解
1.基础 协程切换需要操作寄存器,这些操作需要通过汇编辅助实现。另外,每一个协程都有一个协程栈,实际上协程栈也是有结构的。汇编程序和栈结构这些概念可能大部分开发者都不太了解,在介绍协程管理之间,先简要介绍。 1…...
![](https://i-blog.csdnimg.cn/direct/3d077edb53864018947b8e705c6d8556.png)
C库函数signal()信号处理
signal()是ANSI C信号处理函数,原型如下: #include <signal.h>typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler); signal()将信号signum的处置设置为handler,该handler为SIG_IGNÿ…...
![](https://www.ngui.cc/images/no-images.jpg)
007 SpringCloudAlibaba基础使用(nacos,gateway)
文章目录 cubemall-commoncubemall-productcubemall-gateway https://nacos.io/ https://github.com/alibaba/nacos/releases/tag/1.4.1 https://github.com/alibaba/spring-cloud-alibaba https://github.com/alibaba/Nacos https://developer.aliyun.com/mvn/guide https…...
![](https://www.ngui.cc/images/no-images.jpg)
编译环境揭秘
不同平台因为偏好差异,编译环境的准备会有差异。对于MSVC,微软提供简单的VS安装界面,比较省心。在Ubuntu发行版,gcc/make等程序可能不自带,当需要安装这些软件时就需要不少命令。当然比较麻烦,提供了统一的…...
![](https://img-blog.csdnimg.cn/20210205105129521.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzM4MDgyNzgz,size_16,color_FFFFFF,t_70)
重庆大型网络公司/优化工作流程
1.ipconfig /all 查询当前 IP 物理地址 打开网络与共享中心 控制面板 》网络和Internet 》网络和共享中心 》更改适配器配置 选择当前连接网络 选中当前连接的网络 》右键 》 属性 配置 修改网络地址的值 高级》 网络地址 》值【56QW84RE02RF】 》确定 注意:值的位数…...
![](/images/no-images.jpg)
创建网站公司 徐州/怎么样推广自己的公司
问题:向正在编辑的Word文档中插入图片时,会发现图片只显示了部分,其余部分被其上面的问题遮挡住 原因:可能是由于设置固定的行间距,导致图片被遮挡 解决方法: 选定插入的图片,在菜单栏中找到 “…...
![](/images/no-images.jpg)
重庆网站服务器建设推荐/提高关键词排名的软文案例
API Testing 入门基础系列 之 API Testing 7 - HTTP状态码 在前面文章中《API Testing 4 - Http方法-CRUD操作》有涉及几种简单的状态码,状态码对API 测试来说比较重要,在面试过程中也会经常被问到。 HTTP 状态码 当发起一个HTTP 请求时,服…...
![](https://img-blog.csdnimg.cn/2019030118575954.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTAxMTQ4Mg==,size_16,color_FFFFFF,t_70)
小程序开发和app开发差别/seo教学培训
B- 树 B-树又名B树,我们把所有的数据进行折半块查找,比如一共100条数据。在30和60的地方分一下,存放30和60的节点就是根节点。30和60就是该节点的关键字,100也就是分成了3份,这个节点自动创建三个指针。这三份就是根节…...
![](http://blog.chenlb.com/wp-content/uploads/2008/11/run-tomcat-600x442.jpg)
网址域名注册局/seo经典案例分析
分类: 工具 2014-04-23 14:41 1857人阅读 评论(1) 收藏 举报 目录(?)[] 项 目开发结束了,需要做一下压力测试,就使用apache自带的ab程序进行压力测试,300个并发20000个请求,压了4组,服务器端内存就疯长到了…...
![](https://img-blog.csdnimg.cn/img_convert/672c9a0c9140f199d59f317445efd722.png)
企业网站建设的原则包括/网站搭建流程
此文转载自:https://my.oschina.net/powertoolsteam/blog/4752887大咖揭秘Java人都栽在了哪?点击免费领取《大厂面试清单》,攻克面试难关~>>>本文由葡萄城技术团队原创并首发 转载请注明出处:葡萄城官网,葡萄…...