6.29(上午)笔记6

vo:

view Object 传递给客户端的对象,客户端用于显示的数据对象。
高可用vo:同意返回格式

类型含义
数字状态的值
字符串对这个状态码的文字描述
数据对象需要携带数据

web接口

不要太散也不要太集中

  • 太散:修改商品名7主图地址、价格、库存,四个合并成一个接口。
  • 不要太集中:一个接口中不要包含太多条件(又能查询、排序、还能支撑搜索)

数据库的索引,表中的主键默认带索引

设计原则:需要什么返回什么,需解决问题:

  1. 详情数据在列表里不需要显示:
  2. 时间可有可无,时间格式不对
  3. 商品状态
1、不需要的数据:

在mapper中传入时就不要。
写查询不要包含使用不到的列(会增加数据库压力)
完全按照规约来开发会有一个好的执行效果,但是对于开发会增加代码量。

写代码时需要考虑如何改变

2、值的转化

数据库存储和实际页面显示不一致涉及到转化,谁转?
后端转(后端是linux、前端是浏览器。)

  1. 后端更接近数据库
  2. 后端资源更好
  3. java优于js一些

转化:

  1. 单独设置VO类
  2. 对象拷贝:拷贝原则是属性名类型相同
  3. pageHelper的问题,PageInfo的of方法只能能放入原始数据,不能是转换后的数据
3、商品状态
  1. 注意拷贝原则:(拷贝原则是属性名类型相同),因此,不可以在productVO里面直接改变成String
  2. 注意Integer的比较不能用==,得用equals
if (product.getStatus().equals(1)){
	//Integer必须用equals比较
	productVO.setStatus("在售");
}else if (product.getStatus().equals(2)){
	productVO.setStatus("下架");
}
  1. 在处理数据库于页面不一致最好的方式是枚举:枚举类型
枚举
  • 构造方式
    ON_SALES(1,"在售"),
    OFF_THE_SHELF(2,"下架");
    ProductStatusEnum(Integer statusCode,String statusMsg){
        this.statusCode=statusCode;
        this.statusMsg=statusMsg;
    }
  • 自带遍历方法:values()
for (ProductStatusEnum value:values()){
	if (value.getStatusCode().equals(code)){
    	return value;
	}
}

若要显示形式部署枚举名而是枚举中的其他类型的话需要在枚举头部加上这样一句话:

@JsonFormat(shape = JsonFormat.Shape.OBJECT)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值