Java实战项目之校园跑腿管理系统的实现

Java实战项目之校园跑腿管理系统的实现攻略

一、项目简介

本项目是一款基于Java语言的校园跑腿管理系统,实现了用户端和管理员端的功能,其中用户端包括下单、支付、查看订单等功能,管理员端包括订单管理、用户管理、商品管理等功能。本项目旨在帮助校园内的学生更便利地完成各种跑腿任务。

二、技术栈

  • Spring Boot
  • MyBatis
  • MySQL
  • Spring Security
  • Thymeleaf

三、项目流程

1. 数据库设计

本项目中使用的数据库是MySQL,下面是数据库的表格设计:

users表

字段名 类型 说明
id int 主键,用户ID
username varchar(50) 用户名
password varchar(128) 密码
phone varchar(20) 手机号码
email varchar(50) 电子邮箱

goods表

字段名 类型 说明
id int 主键,商品ID
name varchar(50) 商品名称
description varchar(500) 商品描述
price float 商品价格

orders表

字段名 类型 说明
id int 主键,订单ID
user_id int 外键,用户ID
goods_id int 外键,商品ID
order_time datetime 下单时间
status int 订单状态,0表示未完成,1表示已完成

2. Web层

用户端

用户端的首页,可以选择跑腿类型和商品类型后进行下单:

<form method="post" action="/order/add">
    <select name="type">
        <option value="1">快递跑腿</option>
        <option value="2">取快递</option>
        <option value="3">代购</option>
        <option value="4">其他</option>
    </select>
    <select name="goods_id">
        <option th:each="g : ${goods}" th:value="${g.id}" th:text="${g.name}">商品1</option>
    </select>
    <input type="text" name="description" placeholder="请填写具体描述">
    <button type="submit">下单</button>
</form>

下单后可以查看自己的订单:

<table>
    <thead>
        <tr>
            <th>订单号</th>
            <th>商品名称</th>
            <th>跑腿类型</th>
            <th>商品描述</th>
            <th>订单状态</th>
        </tr>
    </thead>
    <tbody>
        <tr th:each="o : ${orders}">
            <td th:text="${o.id}">订单1</td>
            <td th:text="${o.goods.name}">商品1</td>
            <td th:if="${o.type == 1}">快递跑腿</td>
            <td th:if="${o.type == 2}">取快递</td>
            <td th:if="${o.type == 3}">代购</td>
            <td th:if="${o.type == 4}">其他</td>
            <td th:text="${o.description}">无</td>
            <td th:if="${o.status == 0}">未完成</td>
            <td th:if="${o.status == 1}">已完成</td>
        </tr>
    </tbody>
</table>

管理员端

管理员可以查看所有的订单:

<table>
    <thead>
        <tr>
            <th>订单号</th>
            <th>商品名称</th>
            <th>跑腿类型</th>
            <th>商品描述</th>
            <th>下单时间</th>
            <th>订单状态</th>
            <th>操作</th>
        </tr>
    </thead>
    <tbody>
        <tr th:each="o : ${orders}">
            <td th:text="${o.id}">订单1</td>
            <td th:text="${o.goods.name}">商品1</td>
            <td th:if="${o.type == 1}">快递跑腿</td>
            <td th:if="${o.type == 2}">取快递</td>
            <td th:if="${o.type == 3}">代购</td>
            <td th:if="${o.type == 4}">其他</td>
            <td th:text="${o.description}">无</td>
            <td th:text="${o.orderTime}">2022-05-01 12:00:00</td>
            <td th:if="${o.status == 0}">未完成</td>
            <td th:if="${o.status == 1}">已完成</td>
            <td>
                <button th:if="${o.status == 0}" th:href="@{/order/finish/{id}(id=${o.id})}" type="button">完成订单</button>
            </td>
        </tr>
    </tbody>
</table>

3. 安全框架

使用Spring Security实现安全管理,下面是配置文件的内容:

# security
spring.security.user.name=admin
spring.security.user.password=123456

# session
server.servlet.session.timeout=1800

配置文件中配置了登录账号和密码,以及session的过期时间。

四、总结

本项目涉及到了Spring Boot、MyBatis、MySQL、Spring Security以及Thymeleaf等技术,通过本项目的实战开发,相信大家已经掌握了这些技术的基本使用方式。此外,我们还介绍了一些常见的Web开发技术,例如下单、查看订单以及管理员的订单管理等功能,这些都是开发Web应用必不可少的内容。希望大家通过本项目的实战练习,不仅能够掌握这些技术的应用,同时也能够提升自己的Web应用开发能力。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实战项目之校园跑腿管理系统的实现 - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • 详解用JWT对SpringCloud进行认证和鉴权

    详解用JWT对SpringCloud进行认证和鉴权 什么是JWT JWT (JSON Web Token) 是一种开放标准 (RFC 7519),它定义了一种简洁的、自包含的方式,用于在不同的系统之间传递安全信息。JWT 通常由 3 部分组成:头部 (header)、载荷 (payload)、签名 (signature)。其中,头部用于描述 JWT 的元数据…

    Java 2023年5月20日
    00
  • RestTemplate添加HTTPS证书全过程解析

    首先我们来介绍一下RestTemplate,它是Spring Framework的一个类,可以简化HTTP客户端的编程工作。通俗地说,它可以让我们轻松使用Java代码发送HTTP请求,接收响应等操作。但是如果要使用HTTPS协议,则需要添加证书。下面就为大家详细介绍一下添加HTTPS证书的全过程。 第一步:获取证书文件 首先,我们需要获取HTTPS证书的文件…

    Java 2023年5月19日
    00
  • 详解Spring依赖注入的三种方式使用及优缺点

    以下是详解Spring依赖注入的三种方式使用及优缺点的完整攻略: 1. Spring依赖注入的三种方式 Spring提供了三种方式来实现依赖注入: 1.1 构造器注入 构造器注入是在对象创建的时候使用构造函数来进行注入。在XML配置文件中,我们可以使用标签对构造函数中需要的参数进行赋值。使用构造器注入的优点是在对象创建时就可以将所有的依赖注入,避免了后期在运…

    Java 2023年5月19日
    00
  • 使用JSP实现简单的用户登录注册页面示例代码解析

    一、JSP实现用户登录注册页面示例代码说明 1.创建一个JSP文件,命名为login.jsp,实现用户的登录页面代码。 <!DOCTYPE html> <html> <head> <title>Login Page</title> </head> <body> <h1&…

    Java 2023年6月15日
    00
  • 详解Java基础篇–面向对象1(构造方法,static、this关键字)

    详解Java基础篇–面向对象1 构造方法 什么是构造方法 构造方法是一种特殊的方法,它用来初始化对象。当创建一个对象时,构造方法会被调用,用于初始化实例变量。 构造方法的特点 构造方法名必须与类名相同 没有返回值,包括void 可以有多个构造方法,我们称之为构造方法的重载 构造方法在使用new关键字创建对象时自动调用 构造方法的使用示例 public cl…

    Java 2023年5月26日
    00
  • Java日期时间格式化操作DateUtils 的整理

    Java日期时间格式化操作DateUtils 的整理 前言 在 Java 开发中,我们经常会用到日期时间的处理。DateUtils 是一款用于日期时间格式化的工具类,它封装了许多日期时间格式化的常用操作。本文将对 DateUtils 的使用方法进行整理介绍,帮助大家更好地处理日期时间格式化问题。 导入 DateUtils 要使用 DateUtils,我们首先…

    Java 2023年5月20日
    00
  • 详解SpringMVC 自动封装枚举类的方法

    以下是关于“详解SpringMVC 自动封装枚举类的方法”的完整攻略,其中包含两个示例。 详解SpringMVC 自动封装枚举类的方法 在SpringMVC中,我们可以使用自动封装枚举类的方法来简化代码。在本文中,我们将讲解如何使用自动封装枚举类的方法来简化SpringMVC代码。 自动封装枚举类的方法 在SpringMVC中,我们可以使用自动封装枚举类的方…

    Java 2023年5月17日
    00
  • Java仿Windows记事本源代码分享

    当我们想要学习一个新的知识点或技能时,最好的方法就是阅读和理解已经存在的代码,在此基础上进行修改和调试。 本篇攻略将带领大家深入了解Java仿Windows记事本的源代码,为大家提供具体的实例说明,帮助大家更好地理解和使用该代码。 1.前置环境要求 要打开并使用这个记事本仿真代码,你需要在你的计算机上预先安装Java环境。你可以从Java官网上下载合适的Ja…

    Java 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部