【全栈】SprintBoot+vue3迷你商城(2)

【全栈】SprintBoot+vue3迷你商城(2)

1.对象的创建

商城主要分为两种对象:用户与商品

用户

首先我们需要看看用户有哪些属性

主键id是必不可少的

其次就是用户名

由于用户又分为普通用户和商家,所以有用户类型

然后就是登录时所需要的密码

其次就是用户头像

而且用户有添加购物车的功能,所以有自己的购物车

然后就是一些其他的信息,比如说电话号码

然后就是数据库默认的createTime 和updateTime

所以可以很轻松的写出代码:

java 复制代码
package com.janium.minimallbe.pojo;

import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.time.LocalDateTime;

@Data
public class User {
    @NotNull
    private Integer id;
    private String username;
    private String userType;
    @JsonIgnore
    private String password;
    private String phoneNumber;
    private String userPic;
    private String cartIdList;
    private LocalDateTime createTime;
    private LocalDateTime updateTime;

}

商品

主键id必不可少

然后就是商品名称 ,商品图片 ,商品价格

而且,商品是商家发出的,所以有一个商家ID,这样既能让用户可以知道这个商品是哪个商家的,又能让商家知道自己发出了哪些商品

最后就是数据库默认的createTime 和updateTime

java 复制代码
package com.janium.minimallbe.pojo;

import lombok.Data;

import java.time.LocalDateTime;

@Data
public class Goods {
    private Integer id;
    private String goodsName;
    private String goodsImgUrl;
    private float goodsPrice;
    private Integer merchantId;
    private LocalDateTime createTime;
    private LocalDateTime updateTime;
}

按理来说创建完之后就可以写功能接口了

不过在那之前,我们还需要做一些准备工作

响应结果

我们访问一个网址、实现一个接口时,都会有响应结果。所以我们开发接口之前还需要定义一个响应接口的对象

响应结果无非就是两个:

成功与失败

  • 成功:返回成功的code:0,返回信息'操作成功',如果有一些数据需要返回那就返回一些数据
  • 失败:返回失败code:1,返回错误信息
java 复制代码
package com.janium.minimallbe.pojo;


import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Result<T> {
    private Integer code;
    private String message;
    private T data;
    public static <T> Result<T> success(T data) {
        return new Result<T>(0, "操作成功", data);
    }

    public static  Result success() {
        return new Result(0,"操作成功",null);
    }

    public static <T> Result<T> error(String message) {
        return new Result(1,message,null);
    }
}

2.数据库及表的创建

创建好了对象,就得创建对应的数据库

这里创建时需要注意商品表的merchantId字段要加一个外键约束,因为它是用户表里面的主键。

注意 :这里数据库使用的是MySQL

sql 复制代码
CREATE DATABASE mini_mall;

use mini_mall;
create table user(
  id int UNSIGNED PRIMARY KEY auto_increment,
  username varchar(20) not null,
  userType ENUM('普通用户','商家') not null DEFAULT('普通用户'),
  password VARCHAR(128) not null,
  phoneNumber varchar(11),
  userPic VARCHAR(128),
  cartIdList VARCHAR(600),
  create_time datetime not null,
  update_time datetime not null
);
CREATE table goods(
  id int UNSIGNED PRIMARY KEY auto_increment,
  goodsName VARCHAR(20) not null,
  goodsImgUrl VARCHAR(128) not null,
  goodsPrice FLOAT(10,2) not null,
  merchantId int UNSIGNED not null,
  create_time datetime not null,
  update_time datetime not null
  CONSTRAINT fk_goods_user FOREIGN KEY (merchantId) REFERENCES user(id)
);

3.总结

在创建好了这些对象之后,我们就可以开始写接口功能了。

我们先打算将前端接口都大致写出来再来开发前端界面。所以我们可以使用postman来对接口进行测试。

这些我们会在下一章来操作。

相关推荐
惊讶的猫7 分钟前
MCP-server
java
weixin_382395239 分钟前
本地部署 ERP 选型记录:从 Excel 到轻量系统的这几年
数据库·人工智能·数据挖掘
ZealSinger13 分钟前
Boot4升级PostConstruct不跑了
java·spring boot·spring·升级迁移
Code_Solitude28 分钟前
C语言:关于二维数组的作业总结
java·c语言·前端
Wang's Blog30 分钟前
Java 项目实战: 外卖平台优化-Nginx六种负载均衡策略对比与选型
java·nginx·负载均衡
2401_8914092636 分钟前
期货量化用得上的几类行情数据:逐笔、Level2、分钟线和五档tick
数据库
Wang's Blog42 分钟前
Java 项目实战: 外卖平台优化-YApi接口管理平台与文档导入导出
java·开发语言·yapi
专业程序开发源1 小时前
django新闻推荐系统70655-计算机课程设计、毕业设计
java·javascript·spring boot·后端·python·django·课程设计
vx_Biye_Design1 小时前
springboot一站式旅游管理平台81037-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·课程设计·express·旅游
写后端的胖头鱼1 小时前
时间复杂度 & 空间复杂度
java·数据结构·算法·时间复杂度·空间复杂度