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

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 "";}}
}

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

相关文章:

  • Opencv中图像深度(Depth)和通道数(Channels)区别
  • MySQL事务隔离级别的实现原理MVCC
  • 51c自动驾驶~合集37
  • 「国产嵌入式仿真平台:高精度虚实融合如何终结Proteus时代?」——从教学实验到低空经济,揭秘新一代AI赋能的产业级教学工具
  • 夜族觉醒 服务搭建 异地联机 保姆教程 流畅不卡顿
  • 【linux网络】网络基础概念
  • 流量守门员:接口限流艺术
  • 软件设计师-软考知识复习(2)
  • vue3+flex动态的绘制蛇形时间轴
  • Python小程序:上班该做点摸鱼的事情
  • vue3+Nest.js项目 部署阿里云
  • 字节跳动社招面经 —— BSP驱动工程师(4)
  • vue.js中的一些事件修饰符【前端】
  • uni-app 中封装全局音频播放器
  • 深入蜂窝物联网 第四章 Cat-1 与 5G RedCap:带宽、低时延与未来趋势
  • 五、UI自动化测试05--PyTest框架
  • 【SpringBoot】基于MybatisPlus的博客管理系统(1)
  • 【Unity】使用Socket建立客户端和服务端并进行通信的例子
  • 东土科技NewPre系列智能控制器的创新之旅
  • VMware安装 银河麒麟操作系统桌面版 V10 SP1 2403
  • 北京银行一季度净赚超76亿降逾2%,不良贷款率微降
  • 力箭二号火箭成功进行满载起竖试验,计划今年首飞发射轻舟飞船
  • 现场聆听总书记讲话,“00后”博士和大模型CEO都“热血沸腾”
  • 卡尼领导的加拿大自由党在联邦众议院选举中获胜
  • 三位成功女性,如何应对失败
  • 十四届全国人大常委会第十五次会议继续审议民营经济促进法草案