超市管理系统(Springboot+Vue)后端搭建

大二在学习了Oracle后,在学期末进行了课程设计(基于Oracle数据库),完成了一个简单的超市管理系统。限于本人水平,只用作记录和学习,如有不足,还请批评指出。

功能框架如下:

请添加图片描述

操作系统:Windows10

开发工具:IDEA2021

项目搭建:

在这里插入图片描述
在这里插入图片描述
第一次搭建可能时间比较长。

下面进行相关依赖的导入

点击pom.xml文件进行依赖添加,在标签中添加如下几项,(如果已经有了就不用加了)

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>com.oracle.database.jdbc</groupId>
        <artifactId>ojdbc8</artifactId>
        <scope>runtime</scope>
        <version>21.1.0.0</version>
    </dependency>
    <dependency>
        <groupId>com.oracle.database.nls</groupId>
        <artifactId>orai18n</artifactId>
        <version>21.1.0.0</version>
    </dependency>
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.4.2</version>
    </dependency>
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-generator</artifactId>
        <version>3.3.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity</artifactId>
        <version>1.6.2</version>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

在这里插入图片描述

项目的配置设置

在下图位置创建application.yml文件进行配置,
在这里插入图片描述
spring:
datasource:
url: jdbc:oracle:thin:@127.0.0.1:1521:orcl
username: //自己数据库的用户名
password: //自己数据库密码
driver-class-name: oracle.jdbc.driver.OracleDriver
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mapper-locations: classpath:com/supermarket/mapper/xml/*.xml
server:
port: 8989//服务端口号
注意下方mapper-locations:写自己的相关路径
可以点击右上角DataBase,再点击加号,选择自己的数据库后进行连接,查看是否连接成功 ,进一步确定url的正确

配置结束开始实现

大家可以查阅了解一下springboot中各个层的定义和作用。这里以超市中的商品为例。
1.创建一个实体层(entity),在实体层内加入商品类。
在这里插入图片描述
package com.supermarket.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;

@Data//将实体交由lombok帮助简化
@EqualsAndHashCode(callSuper = false)
public class Commodity implements Serializable {
private static final long serialVersionUID=1L;
@TableId(value = “CID”,type= IdType.ID_WORKER_STR)//标识主键
private int cid;
private String cname;
private double price;
private int inventory;
private String sdate;
private int bdate;
private int pid;
}
商品类的属性要与数据库形成一一对应

2.然后将其他层先创建好,控制层(controller),业务层(service),持久层(mapper),然后分别在如下层中加入商品的控制类等;
在这里插入图片描述
注意有一些是接口以及接口和类的位置
3.这里以实现输出商品列表业务为例子进行编写,层次之间从顶到底为controller层=>service层=>mapper层,可以以这个顺序写,也可以从mapper层向controller层写,看个人习惯。接下来以从顶到底写为例。

控制层(commodityController)

package com.supermarket.controller;

import com.supermarket.entity.Commodity;
import com.supermarket.service.CommodityService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController//标注此为控制层
@RequestMapping("/Commodity")//建立一级路径
public class CommodityController {
@Autowired
private CommodityService commodityService;

@GetMapping("/list")//商品列表
public List<Commodity> list(){
    return this.commodityService.list();
}

}
除了GetMapping,还有其他类型,这与请求的方式有关,可先了解一下这些请求
这里是控制层通过业务层提供接口来实现商品列表,接下来我们编写业务层的接口

业务层接口(commodityService)

package com.supermarket.service;

import com.supermarket.entity.Commodity;
import java.util.List;

public interface CommodityService {
List list();
}
在这里我们只提供接口的方法,而接口中方法的实现则在业务层中的实现类

业务层实现类(commodityServiceImpl)

package com.supermarket.service.impl;

import com.supermarket.entity.Commodity;
import com.supermarket.mapper.CommodityMapper;
import com.supermarket.service.CommodityService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service//标明此为业务层
public class CommodityServiceImpl implements CommodityService {
//继承接口进行实现
@Autowired
private CommodityMapper commodityMapper;

@Override
public List<Commodity> list(){
    return this.commodityMapper.list();
}

}
这里要想得到商品的列表,需要从数据库中获取,所以我们需要与数据库相关的持久层为我们提供接口来实现,也就是说如果有一个业务不需要数据库操作,能在这里直接实现那么就不需要持久层的接口

mapper层接口(commodityMapper)

package com.supermarket.mapper;

import com.supermarket.entity.Commodity;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository//标注此为持久层
public interface CommodityMapper {
@Select(“SELECT * FROM COMMODITY ORDER BY CID”)
List list();
}
这里数据库操作具体实现本应该在commodityMapper.xml文件中实现,但我们可以通过@Select注解简化操作;commodityMapper.xml中代码如下
在这里插入图片描述
注意mapper namespace中的路径不要写错

这里一个业务就实现完成了,下面是几点注意事项

1.在主程序中加入@MapperScan(“com.supermarket.mapper”),注意写自己的路径,因为主程序可能扫描不到持久层
在这里插入图片描述
2.这里有所添加的依赖,如果在添加依赖的时候发现老是报错,可以在这里查看是否有这个依赖以及版本号是否正确,再通过Maven刷新
在这里插入图片描述
3.MySQL数据库,可以通过mybatis-plus自动生成增删改查代码,可在网上查询做法

运行并测试

1.点击运行,如出现下图,则运行成功,如有错误,可根据错误提示解决
在这里插入图片描述
2.测试,我们前端如果还没有搭建可以通过postman来进行测试,在postman中向我们设置好的路径发送请求得到数据,测试成功
在这里插入图片描述

结语

本人也只是能简单的应用,希望我们之后都能理解底层,共同进步。
后端源码:
链接:https://pan.baidu.com/s/1DBrMRzCxJ0P0hb7ZGUujVQ
提取码:1a2b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值