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

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.xdnf.cn/news/2801.html

相关文章:

  • __VUE_PROD_HYDRAION_MISMATCH_DETAILS__在vue.config.js怎么配置
  • 外部存储器接口:EMIF总线
  • Jetson Xavier NX EMMC版本刷机
  • 机器人--相机
  • 【MCP Node.js SDK 全栈进阶指南】高级篇(4):自定义传输层开发
  • 前端在平常的开发中高度还原ui图的思考规范
  • 阿里开源Qwen3:大语言模型的新突破
  • AI驱动软件工程:SoftEngine 方法论与 Lynx 平台实践分析
  • 「Mac畅玩AIGC与多模态08」开发篇04 - 基于 OpenAPI Schema 开发专用 Agent 插件
  • MySQL 8.4.4 安全升级指南:从漏洞修复到版本升级全流程解析
  • Spring MVC中自定义日期类型格式转换器
  • 单片机-89C51部分:8、定时器
  • 6.3 数据分析与决策支持:数据洞察生成与决策辅助系统
  • 机器学习实操 第一部分 机器学习基础 第6章 决策树
  • jmeter-Beashell获取http请求体json
  • 在K8S迁移节点kubelet数据存储目录
  • 道德经解读分析
  • Android 进阶开发:深入掌握 ProgressBar 的使用与高级技巧
  • 文献阅读(三)基于干旱强度和恢复时间的生态系统恢复力评估|《Agricultural and Forest Meteorology》
  • 在 Ubuntu 上离线安装 ClickHouse
  • 【数据结构】图论存储结构深度解析:邻接多重表如何实现无向图O(1)删边?邻接矩阵/链表/十字链对比
  • 无锡哲讯科技:SAP财务系统——赋能企业智慧财务管理
  • 开发iOS App时,我常用的一款性能监控小工具分享
  • 数据库中DDL、DML、DCL的区别是什么?
  • Webug4.0通关笔记04- 第6关宽字节注入
  • 洛谷P12238 [蓝桥杯 2023 国 Java A] 单词分类
  • 从车道检测项目入门open cv
  • 【图片识别成表格】批量图片识别成excel表格,批量识别图片区域文字保存到excel表格,基于WPF和腾讯OCR的识别方案
  • MyBatis 使用 POJO 参数动态查询教程
  • leetcode继续c++10/100