基于Spring Boot的高校汉服租赁网站设计与实现

近年来,汉服文化逐渐受到年轻人的喜爱,越来越多的高校都在积极推广汉服相关活动。为了方便学生租赁汉服,本文将设计一个基于Spring Boot的高校汉服租赁网站,实现租赁管理、用户管理和订单管理等功能。

1. 技术栈

本项目主要采用以下技术栈: - 后端:Spring Boot、Spring Data JPA、Hibernate - 前端:Thymeleaf、Bootstrap - 数据库:MySQL - 开发工具:IntelliJ IDEA

2. 数据库设计

我们首先设计数据库,其中包含以下主要表:

  1. user表:用户信息表
  2. costume表:汉服信息表
  3. order表:租赁订单表

用户表结构

CREATE TABLE `user` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `username` VARCHAR(50) NOT NULL,
  `password` VARCHAR(100) NOT NULL,
  `email` VARCHAR(100),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

汉服表结构

CREATE TABLE `costume` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(100) NOT NULL,
  `description` TEXT,
  `price` DECIMAL(10,2) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

订单表结构

CREATE TABLE `order` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `user_id` INT(11) NOT NULL,
  `costume_id` INT(11) NOT NULL,
  `rent_date` DATETIME NOT NULL,
  `return_date` DATETIME NOT NULL,
  PRIMARY KEY (`id`),
  FOREIGN KEY (`user_id`) REFERENCES `user`(`id`),
  FOREIGN KEY (`costume_id`) REFERENCES `costume`(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

3. 后端实现

3.1 项目结构

src/main/java/com/example/hanfu
 ├── controller
 ├── entity
 ├── repository
 └── service

3.2 实体类

User实体类

package com.example.hanfu.entity;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String username;
    private String password;
    private String email;

    // Getters and Setters
}

Costume实体类

package com.example.hanfu.entity;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Costume {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String description;
    private BigDecimal price;

    // Getters and Setters
}

3.3 控制器

package com.example.hanfu.controller;

import com.example.hanfu.entity.Costume;
import com.example.hanfu.service.CostumeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

import java.util.List;

@Controller
public class CostumeController {

    @Autowired
    private CostumeService costumeService;

    @GetMapping("/costumes")
    public String listCostumes(Model model) {
        List<Costume> costumes = costumeService.findAll();
        model.addAttribute("costumes", costumes);
        return "costume_list";
    }
}

3.4 服务层与数据访问层

package com.example.hanfu.service;

import com.example.hanfu.entity.Costume;
import com.example.hanfu.repository.CostumeRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class CostumeService {

    @Autowired
    private CostumeRepository costumeRepository;

    public List<Costume> findAll() {
        return costumeRepository.findAll();
    }
}

4. 前端实现

前端可以使用Thymeleaf结合Bootstrap来实现页面的展示和样式。

汉服列表页面 (costume_list.html)

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>汉服租赁</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
<div class="container">
    <h1>汉服列表</h1>
    <table class="table">
        <thead>
            <tr>
                <th>汉服名称</th>
                <th>描述</th>
                <th>价格</th>
            </tr>
        </thead>
        <tbody>
            <tr th:each="costume : ${costumes}">
                <td th:text="${costume.name}"></td>
                <td th:text="${costume.description}"></td>
                <td th:text="${costume.price}"></td>
            </tr>
        </tbody>
    </table>
</div>
</body>
</html>

5. 总结

本文展示了一个基于Spring Boot的高校汉服租赁网站的设计与实现过程,包括数据库设计、后端业务逻辑和前端页面的实现。这一系统不仅可以帮助学生租赁汉服,还可以推动汉服文化在校园的传播。未来还可以增加更多的功能,比如用户注册、在线支付等,以此提升用户体验。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部