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

yizhihongxing

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日

相关文章

  • JDK动态代理之ProxyGenerator生成代理类的字节码文件解析

    关于“JDK动态代理之ProxyGenerator生成代理类的字节码文件解析”的攻略,我将分为以下几步进行讲解: 简介和背景知识 ProxyGenerator的介绍 通过实例了解ProxyGenerator的核心方法 示例1:使用ProxyGenerator生成代理类的字节码文件 示例2:通过反编译工具解析代理类的结构 总结 接下来,我将逐一进行讲解。 1.…

    Java 2023年5月26日
    00
  • 什么是类加载器委托机制?

    以下是关于类加载器委托机制的完整使用攻略: 什么是类加载器委托机制? 类加载器委托机制是Java虚拟机(JVM)用来加载类的一种机制。当J需要加载一个类时,它会先委托给父类加载器进行加载,如果父类加载器无法加载该类,则会委托给子类加载进行加载。这个过程会一直持续到顶层的父类加载器,如果顶层的父类加载器无法加载该类,则会抛ClassNotFoundExcept…

    Java 2023年5月12日
    00
  • Netty与Spring Boot的整合实现

    现在我将详细讲解“Netty与SpringBoot的整合实现”的完整攻略,以及其中涉及的两个示例。 概述 Netty和SpringBoot是目前广泛应用于Java开发的两个框架。Netty是一款基于NIO的客户端-服务端网络应用框架,可以快速开发各种网络应用,比如各种协议的服务器和客户端。而SpringBoot则是一种基于Spring框架的快速应用开发框架,…

    Java 2023年5月15日
    00
  • java二分查找插入法

    当需要在已排序数组中查找元素时,可以使用二分查找算法。如果需要向已排序数组中插入元素,可以使用二分查找插入法。 二分查找插入法的主要思路是通过二分查找找到需要插入的元素在数组中的位置,然后将该元素插入到该位置中。以下是具体的步骤: 首先,定义需要查询的元素 target 和已排序的数组 nums,同时记录数组的左右端点 left 和 right。 计算需要查…

    Java 2023年5月19日
    00
  • Java中的接口回调实例

    下面我将详细讲解Java中的接口回调实例,并提供两个示例说明。 接口回调实例 在Java中,接口回调是一种设计模式,常用于构建事件处理系统或异步任务处理机制。 接口回调指的是通过接口定义方法,并在其他地方实例化这个接口,然后在需要的时候调用这个方法。通过接口回调实现了部分函数的多态。 下面是接口回调的基本实现流程: 定义一个接口(Callback),这个接口…

    Java 2023年5月26日
    00
  • springboot用户数据修改的详细实现

    SpringBoot用户数据修改的详细实现 在SpringBoot中,我们可以使用Spring Data JPA来实现用户数据的修改。以下是一个详细的实现攻略: 1. 添加依赖 在pom.xml文件中添加以下依赖: <dependency> <groupId>org.springframework.boot</groupId&g…

    Java 2023年5月15日
    00
  • idea 与 maven 使用过程中遇到的问题及解决方案

    为了能够更好地回答这个问题,我先介绍一下Markdown格式,以便于后续回答过程中的展现。 一级标题 二级标题 三级标题 加粗 斜体 无序列表 无序列表 有序列表 有序列表 引用 代码块 //代码块(加入语言标识) public static void main(String[] args) { System.out.println("Hello,…

    Java 2023年6月2日
    00
  • Mybatis动态SQL实例详解

    Mybatis动态SQL实例详解 Mybatis支持使用动态SQL构建更加灵活的SQL语句,可以根据传入的参数自动生成SQL语句,从而支持更加复杂的业务场景。 if标签 if标签用于判断某个条件是否成立,如果成立则执行相应的语句。 示例代码: <select id="getUserById" parameterType="…

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