springboot中有关数据库信息转换的处理

现代项目一般都是前后端分离的,前端只负责展示数据,不负责对数据处理,所以所有数据处理工作都由后端进行

比如在仿京东中的status,审核信息展示,数据库中是以0/1显示,但是前端需要以"审核/未审核"展示,这就需要后端处理完传递给前端。

1.因为实体类中不可能改变原字段类型,所以就要加一个方法,返回类型为String,方法名为getXXXXX(),判断status的值,后返回"审核/未审核"字符串

注*方法名一定要为get开头,因为pringboot将对象转json就是依据getter方法转换的,不叫getXXX()最后转为json给前端是不会有这个变量的。

2.在返回值这里为了方便管理,使用枚举,判断status值后返回枚举的值即可

/*
* 信息审核状态枚举
* */
@Getter
@ToString
public enum StatusEnum {STATUS_NO(0,"审核中"),STATUS_YES(1,"已审");private Integer code;private String msg;//枚举类中构造默认为private类型StatusEnum() {}StatusEnum(Integer code, String msg) {this.code = code;this.msg = msg;}
}

3.前端接收传递的实体类json对象时,该方法就会变为一个String变量形式供前端调用,相当于加了一个变量,但在后端是一个方法。

4.方法名一定为getXXXXX()的格式,因为spring进行json转换时是以getter方法进行转换的,方法名部位getXXX(),是不会将其转为json变量的。⭐⭐⭐⭐⭐

5.方法不能私有,方法必须是 public

  • 后端(Spring Boot)序列化对象到JSON时,只能访问到 public 的 getter 方法

  • 如果你把 方法 设成 privateprotected,Jackson(默认的 JSON 转换器)就不会识别和序列化这个方法,前端拿到的数据里也不会有 这个字段。

6.get方法中的status判断先进行判空操作,否者容易空指针

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Shop {private Integer id;private Integer cateId;private String name;private Integer sales;private String msg;private Integer expresslimit;private BigDecimal expressprice;private String imgurl;private Integer hot;private Integer status;public String getStatusText(){//这里需要判空否者空指针if(this.status!=null){if(this.status==0){return StatusEnum.STATUS_NO.getMsg();}else {return StatusEnum.STATUS_YES.getMsg();}}else{return "";}}public String getHotText(){//这里需要判空否者空指针if(this.hot!=null){if(this.hot==0){return HotEnum.HOT_NO.getMsg();}else {return HotEnum.HOT_YES.getMsg();}}else{return "";}}
}

其他类型数据的转换也是按照这个方式处理~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/79440.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

提示词版本化管理:AI开发中被忽视的关键环节

当我的提示词"消失"在团队协作中 上周五下午,我经历了一场小型"灾难"。作为一名AI产品经理,我花了整整三天精心打磨的客服机器人提示词,在周末更新后突然"失效"了。机器人不再能够准确识别用户意图&#xff0…

Centos Ubuntu RedOS系统类型下查看系统信息

文章目录 一、项目背景二、页面三、说明四、代码1.SysInfo2.EmsSysConfig3.HostInformationController4.HostInfo 一、项目背景 公司项目想展示当前部署系统的:操作系统,软件版本、IP、主机名。 二、页面 三、说明 说明点1:查询系统类型及…

阿里云自动备份网站,阿里云自动备份网站的方法

阿里云提供了多种自动备份网站的方法,适用于不同场景和需求,用户可根据自身技术能力和业务要求选择合适的方案。以下是几种主流的自动备份方法及操作要点: 一、基于云服务器ECS的自动快照备份 适用场景:适用于基于ECS部署的网站…

输入输出(python)

open()需要和close()配合使用 with open () as 不需要用close()函数 在python3.0中的一些变动: eval 是编程语言中用于动态执行字符串形式代码的内置函数 ,名称源于英文 “evaluate”…

Arduino逻辑控制详细解答,一点自己的想法记录

一、逻辑控制的基础概念与核心语法 1.1 逻辑控制的基本原理 逻辑控制是嵌入式系统中最常见的功能之一,其核心在于通过条件判断(if-else)、循环(for/while)和布尔运算(&&/||)实现对硬件的精确控制。例如,通过按键状态切换LED亮度、根据传感器数据调整电机转速…

字符串的相关方法

1. equals方法的作用 方法介绍 public boolean equals(String s) 比较两个字符串内容是否相同、区分大小写 示例代码 public class StringDemo02 {public static void main(String[] args) {//构造方法的方式得到对象char[] chs {a, b, c};String s1 new String(chs);…

JAVA基础:Collections 工具类实战指南-从排序到线程安全

在 Java 开发中,集合类几乎贯穿每一个项目,而Collections工具类提供了一系列强大的方法,用于操作和增强集合的功能。无论是排序、查找还是线程安全的封装,Collections工具类都是提升代码效率和质量的重要工具。 一、Collections …

ReLU函数及其Python实现

ReLU函数及其Python实现 文章目录 ReLU函数及其Python实现1. ReLU函数定义2. Python实现3. 在深度学习中的应用总结 1. ReLU函数定义 ReLU(Rectified Linear Unit,修正线性单元)函数是深度学习中常用的激活函数之一。它的定义非常简单&#…

2505ahk,wmi学习

检索每个服务的状态和启动类型 wbemServices : ComObjGet("winmgmts:\\.") //.代表本地计算机. wbemObjectSet : wbemServices.InstancesOf("Win32_Service")For wbemObject In wbemObjectSetMsgBox, % "Display Name: " wbemObject.DisplayNam…

大语言模型能力评定探讨

有标准答案的评估(选择题) 评估语言模型能力的基本思路是准备输入和标准答案,比较不同模型对相同输入的输出 由于AI答题有各种各样答案,因此现在是利用选择题考察。 有一个知名的选择题的基准叫做Massive Multitask Language Und…

数字智慧方案5874丨智慧交通收费稽核管理体系的构建与思考(44页PPT)(文末有下载方式)

资料解读:智慧交通收费稽核管理体系的构建与思考 详细资料请看本解读文章的最后内容。 随着高速公路收费系统的不断升级,特别是撤站后的新形势,收费稽核管理体系的构建显得尤为重要。本文将对辽宁省在联网收费新形势下的收费稽核管理体系进…

3.Java转义字符

Java转义字符 转义字符以\开头,常见的转义字符: 转义字符作用\t 🌟水平制表符(Tab)\r 🌟“回车(Carriage Return)”\n换行(New Line)\\输出一个反斜杠 \\&q…

【凑修电脑的小记录】vscode打不开

想把vscode的数据和环境从c盘移到d盘 大概操作和这篇里差不多 修改『Visual Studio Code(VS Code)』插件默认安装路径的方法 - 且行且思 - 博客园 在原地址保留了个指向新地址的链接文件。 重新安装vscode后双击 管理员身份运行均无法打开&#xff0…

MSP430G2553驱动0.96英寸OLED(硬件iic)

1.前言 最近需要用MSP430单片机做一个大作业,需要用到OLED模块,在这里记录一下 本篇文章主要讲解MSP430硬件iic的配置和OLED函数的调用,不会详细讲解OLED显示原理(其实就是江科大的OLED模块如何移植到msp430上).OLED显示原理以及底层函数讲解请参考其他…

SEO长尾词精准优化实战

内容概要 在搜索引擎优化领域,长尾关键词的精准挖掘与优化已成为突破流量瓶颈的核心策略。相较于通用词汇,长尾词具备更强的用户意图指向性与竞争分散特征,能够有效触达细分需求场景下的高价值受众。本部分将从长尾词的核心价值出发&#xf…

计算机组成原理实验(6) 微程序控制单元实验

实验六 微程序控制单元实验 一、实验目的 1、熟悉微程序控制器的原理 2、掌握微程序编制、写入并观察运行状态 二、实验要求 按照实验步骤完成实验项目,掌握设置微地址、微指令输出的方法 三、实验说明 3.1 微程序控制单元的构成:(…

ECMAScript 2(ES2):标准化的微调与巩固

1. 版本背景与发布 发布时间:1998 年 6 月,由 ECMA International 正式发布,标准编号为 ECMA-262 Edition 2。核心定位:作为 ECMAScript 标准的第二次修订版,ES2 的核心目标是修正 ES1 中的错误、完善规范定义&#x…

基于蒙特卡洛模拟的电路容差分析与设计优化

蒙特卡洛模拟在电路设计中的应用 背景知识: 蒙特卡洛模拟是一种通过随机抽样来解决问题的数值方法。在电路设计中,它通过在元件参数的公差范围内随机生成大量样本值,模拟电路在不同参数组合下的行为,从而评估和优化电路设计&…

node.js 实战——mongoDB

MongoDB MongoDB 简介 MongoDB 是一种基于文档型 (document-oriented) 的 NoSQL 数据库,使用类 JSON 的 BSON 格式存储数据,自然支持复杂数据结构。它特别适合需要快速变化、大量数据处理和高应用扩展性的场景。 MongoDB 特性: 无法表、无…

如何掌握 Lustre/Scade 同步数据流语言

从 KPN 的萌芽开始,到 Lustre/Scade 的发展,再到 Velus/Zelus/Swan 在形式化编译、连续时间建模、MBD 平权等各方面的边界拓展,同步数据流语言已经历许多。现在,我们讨论如何掌握 Lustre/Scade 这类法式技术,从语言基础…