目录

一:系统架构图

二:模块分析

三:项目介绍

四:项目结构

五:内容介绍

1.介绍:

2.数据库配置文件(application.yml)

3.实体类

4.功能实现

Service :

2.会员管理功能实现

Mapper :

Service :

MemberService接口:

Controller :

Mapper:

Service:

Controller:

六:数据库设计

1.admin 管理员表

2.member 会员表

3.employee 员工表

4.equipment 器材表

5. class_order 报名表

6.class_table 课程表

七:页面效果及功能展示图

1.登陆页面

2.主页:

3.会员管理界面:

4.员工管理界面:

5.器材管理界面:

6.课程管理界面:

7.会员课程管理界面:

八:总结:


一:系统架构图

二:模块分析

  • 该项目是一个基于SpringBoot 框架的健身房管理系统
  • 前端技术栈应用:bootstrap、JavaScript、HTML、CSS
  • 后端技术栈应用:SpringBoot+Mybatis

三:项目介绍

本项目主要开发管理员管理(Admin)、会员管理(Menber)、报名管理(ClassOrder)、课程表管理(ClassTable)、员工管理(Emplee)、设备管理(Equipment)以及退出系统等功能。

四:项目结构

五:内容介绍

1.介绍:

       1.前端介绍

主要应用Bootstrap、HTML/CSS 和JS 等相关技术去美化功能界面样式效果,在此不做过多展示效果。

 2.后端项目介绍

Pom.xml配置文件(jar包管理)

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.3</version><relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.milotnt</groupId>
<artifactId>gym-management-system</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>gym-management-system</name>
<description>gym-management-system</description>
<properties><java.version>1.8</java.version><mysql.version>8.0.25</mysql.version>
</properties>
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jdbc</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.0</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope>

2.数据库配置文件(application.yml)

spring:datasource:url: jdbc:mysql://localhost:3306/gmsusername: rootpassword: rootdriver-class-name: com.mysql.cj.jdbc.Driverthymeleaf:cache: falsemybatis:mapper-locations: classpath:mybatis/mapper/*.xmlconfiguration:map-underscore-to-camel-case: truetype-aliases-package: com.milotnt.pojo

3.实体类

1.管理员实体类(Admin)

public class Admin{private Integer adminAccount;
private String adminPassword;

2.会员实体类(Menber)

public class Member {private Integer memberAccount;private String memberPassword;private String memberName;private String memberGender;private Integer memberAge;private Integer memberHeight;private Integer memberWeight;private Long memberPhone;private String cardTime;private Integer cardClass;private Integer cardNextClass;

3.报名实体类(ClassOrder)

public class ClassOrder {private Integer classOrderId;private Integer classId;private String className;private String coach;private String memberName;private Integer memberAccount;
private String classBegin;

4.课程表实体类(ClassTable)

public class ClassTable {private Integer classId;private String className;private String classBegin;private String classTime;private String coach;

5.员工实体类(Employee)

public class Employee {private Integer employeeAccount;private String employeeName;private String employeeGender;private Integer employeeAge;private String entryTime;private String staff;
private String employeeMessage;

6.设备实体类(Equipment)

public class Equipment {private Integer equipmentId;private String equipmentName;private String equipmentLocation;private String equipmentStatus;private String equipmentMessage;

4.功能实现

1.管理员管理功能实现

 Mapper :

      AdminMapper 类:

@Mapper
public interface AdminMapper {Admin selectByAccountAndPassword(Admin admin);
}

AdminMapper.xml文件:

<mapper namespace="com.milotnt.mapper.AdminMapper"><select id="selectByAccountAndPassword" resultType="admin">SELECT *FROM adminWHERE admin_account = #{adminAccount}AND admin_password = #{adminPassword}</select>
</mapper>

Service :

 AdminService接口:

public interface AdminService {//管理员登录Admin adminLogin(Admin admin);}service 接口对应实现类(AdminServiceImpl)
@Service
public class AdminServiceImpl implements AdminService {@Autowiredprivate AdminMapper adminMapper;@Overridepublic Admin adminLogin(Admin admin) {return adminMapper.selectByAccountAndPassword(admin);}
}Controller
(LoginController):
@Controller
public class LoginController {@Autowiredprivate MemberService memberService;@Autowiredprivate AdminService adminService;@Autowiredprivate EmployeeService employeeService;@Autowiredprivate EquipmentService equipmentService;//主页、跳转管理员登录页面@RequestMapping("/")public String toAdminLogin() {return "adminLogin";}//跳转会员登录页面@RequestMapping("/toUserLogin")public String toUserLogin() {return "userLogin";}//管理员登录@RequestMapping("/adminLogin")public String adminLogin(Admin admin, Model model, HttpSession session) {Admin admin1 = adminService.adminLogin(admin);if (admin1 != null) {//会员人数Integer memberTotal = memberService.selectTotalCount();model.addAttribute("memberTotal", memberTotal);session.setAttribute("memberTotal", memberTotal);//员工人数Integer employeeTotal = employeeService.selectTotalCount();model.addAttribute("employeeTotal", employeeTotal);session.setAttribute("employeeTotal", employeeTotal);//健身房总人数Integer humanTotal = memberTotal + employeeTotal;model.addAttribute("humanTotal", humanTotal);session.setAttribute("humanTotal", humanTotal);//器材数Integer equipmentTotal = equipmentService.selectTotalCount();model.addAttribute("equipmentTotal", equipmentTotal);session.setAttribute("equipmentTotal", equipmentTotal);return "adminMain";}model.addAttribute("msg", "您输入的账号或密码有误,请重新输入!");return "adminLogin";}//会员登录@RequestMapping("/userLogin")public String userLogin(Member member, Model model, HttpSession session) {Member member1 = memberService.userLogin(member);if (member1 != null) {model.addAttribute("member", member1);session.setAttribute("user", member1);return "userMain";}model.addAttribute("msg", "您输入的账号或密码有误,请重新输入!");return "userLogin";}//跳转管理员主页@RequestMapping("/toAdminMain")public String toAdminMain(Model model, HttpSession session) {Integer memberTotal = (Integer) session.getAttribute("memberTotal");Integer employeeTotal = (Integer) session.getAttribute("employeeTotal");Integer humanTotal = (Integer) session.getAttribute("humanTotal");Integer equipmentTotal = (Integer) session.getAttribute("equipmentTotal");model.addAttribute("memberTotal", memberTotal);model.addAttribute("employeeTotal", employeeTotal);model.addAttribute("humanTotal", humanTotal);model.addAttribute("equipmentTotal", equipmentTotal);return "adminMain";}//跳转会员主页@RequestMapping("/toUserMain")public String toUserMain(Model model, HttpSession session) {Member member = (Member) session.getAttribute("user");model.addAttribute("member", member);return "userMain";}}

2.会员管理功能实现

Mapper :

        MemberMapper类

@Mapper
public interface MemberMapper {//查询会员信息List<Member> findAll();//新增会员信息Boolean insertMember(Member member);//根据会员账号修改会员信息Boolean updateMemberByMemberAccount(Member member);//查询会员账号密码Member selectByAccountAndPassword(Member member);//根据会员账号删除会员信息Boolean deleteByMemberAccount(Integer memberAccount);//查询会员数Integer selectTotalCount();//根据会员账号查询会员List<Member> selectByMemberAccount(Integer memberAccount);}MemberMapper.xml<mapper namespace="com.milotnt.mapper.MemberMapper"><select id="findAll" resultType="member">SELECT *FROM member</select><insert id="insertMember" parameterType="member">INSERT INTO member (member_account, member_name, member_gender, member_age, member_height,member_weight, member_phone, card_time, card_class,card_next_class)VALUES (#{memberAccount}, #{memberName}, #{memberGender}, #{memberAge}, #{memberHeight},#{memberWeight}, #{memberPhone}, #{cardTime}, #{cardClass}, #{cardNextClass})</insert><update id="updateMemberByMemberAccount" parameterType="member">UPDATE memberSET member_account  = #{memberAccount},member_password = #{memberPassword},member_name     = #{memberName},member_gender   = #{memberGender},member_age      = #{memberAge},member_height   = #{memberHeight},member_weight   = #{memberWeight},member_phone    = #{memberPhone},card_class      = #{cardClass},card_next_class = #{cardNextClass}WHERE member_account = #{memberAccount}</update><select id="selectByAccountAndPassword" resultType="member">SELECT *FROM memberWHERE member_account = #{memberAccount}AND member_password = #{memberPassword}</select><delete id="deleteByMemberAccount" parameterType="java.lang.Integer">DELETEFROM memberWHERE member_account = #{memberAccount}</delete><select id="selectTotalCount" resultType="java.lang.Integer">SELECT count(*)FROM member</select><select id="selectByMemberAccount" parameterType="java.lang.Integer" resultType="member">SELECT *FROM memberWHERE member_account = #{memberAccount}</select></mapper>

Service :

MemberService接口:

public interface MemberService {//查询会员信息List<Member> findAll();//新增会员信息Boolean insertMember(Member member);//根据会员账号修改会员信息Boolean updateMemberByMemberAccount(Member member);//查询会员账号密码(登录)Member userLogin(Member member);//Member selectByAccountAndPassword(Member member);//根据会员账号删除会员信息Boolean deleteByMemberAccount(Integer memberAccount);//查询会员数Integer selectTotalCount();//根据会员账号查询会员List<Member> selectByMemberAccount(Integer memberAccount);}service 接口对应实现类(MemberServiceImpl)
@Service
public class MemberServiceImpl implements MemberService {@Autowiredprivate MemberMapper memberMapper;@Overridepublic List<Member> findAll() {return memberMapper.findAll();}@Overridepublic Boolean insertMember(Member member) {return memberMapper.insertMember(member);}@Overridepublic Boolean updateMemberByMemberAccount(Member member) {return memberMapper.updateMemberByMemberAccount(member);}@Overridepublic Member userLogin(Member member) {return memberMapper.selectByAccountAndPassword(member);}@Overridepublic Boolean deleteByMemberAccount(Integer memberAccount) {return memberMapper.deleteByMemberAccount(memberAccount);}@Overridepublic Integer selectTotalCount() {return memberMapper.selectTotalCount();}@Overridepublic List<Member> selectByMemberAccount(Integer memberAccount) {return memberMapper.selectByMemberAccount(memberAccount);}
}

Controller :

@Controller
@RequestMapping("/member")
public class MemberController {@Autowiredprivate MemberService memberService;//查询会员@RequestMapping("/selMember")public String selectMember(Model model) {List<Member> memberList = memberService.findAll();model.addAttribute("memberList", memberList);return "selectMember";}//跳转新增会员页面@RequestMapping("/toAddMember")public String toAddMember() {return "addMember";}//新增会员@RequestMapping("/addMember")public String addMember(Member member) {//会员账号&卡号随机生成Random random = new Random();String account1 = "2021";for (int i = 0; i < 5; i++) {account1 += random.nextInt(10);}Integer account = Integer.parseInt(account1);//初始密码String password = "123456";//获取当前日期Date date = new Date();SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");String nowDay = simpleDateFormat.format(date);Integer nextClass = member.getCardClass();member.setMemberAccount(account);member.setMemberPassword(password);member.setCardTime(nowDay);member.setCardNextClass(nextClass);memberService.insertMember(member);return "redirect:selMember";}//删除会员@RequestMapping("/delMember")public String deleteMember(Integer memberAccount) {memberService.deleteByMemberAccount(memberAccount);return "redirect:selMember";}//跳转会员修改页面@RequestMapping("/toUpdateMember")public String toUpdateMember(Integer memberAccount, Model model) {List<Member> memberList = memberService.selectByMemberAccount(memberAccount);model.addAttribute("memberList", memberList);return "updateMember";}//修改会员信息@RequestMapping("/updateMember")public String updateMember(Member member) {memberService.updateMemberByMemberAccount(member);return "redirect:selMember";}//跳转会员卡查询页面@RequestMapping("/toSelByCard")public String toSelectByCardId() {return "selectByMemberAccount";}//根据会员卡号查询@RequestMapping("/selByCard")public String selectByCardId(Model model, Integer memberAccount) {List<Member> memberList = memberService.selectByMemberAccount(memberAccount);if (memberList != null) {model.addAttribute("memberList", memberList);} else {String message = "会员卡号不存在!";model.addAttribute("noMessage", message);}return "selectByMemberAccount";}}

Mapper:

ClassOrderMapper类:
@Mapper
public interface ClassOrderMapper {//查询所有报名表信息List<ClassOrder> findAll();//添加报名信息Boolean insertClassOrder(ClassOrder classOrder);//根据会员账号查询个人报名课表List<ClassOrder> selectClassOrderByMemberAccount(Integer memberAccount);//删除已预约的课程Boolean deleteByClassOrderId(Integer classOrderId);//查询会员是否报名该课程ClassOrder selectMemberByClassIdAndMemberAccount(Integer classId, Integer memberAccount);//根据课程id查询所有报名的会员List<ClassOrder> selectMemberOrderList(Integer classId);}ClassOrderMapper.xml文件:
<mapper namespace="com.milotnt.mapper.ClassOrderMapper"><select id="findAll" resultType="classOrder">SELECT *FROM class_order</select><insert id="insertClassOrder" parameterType="classOrder">INSERT INTO class_order(class_order_id, class_id, class_name, coach, member_name, member_account, class_begin)VALUES (#{classOrderId}, #{classId}, #{className}, #{coach}, #{memberName}, #{memberAccount}, #{classBegin})</insert><select id="selectClassOrderByMemberAccount" parameterType="java.lang.Integer" resultType="classOrder">SELECT *FROM class_orderWHERE member_account = #{memberAccount}</select><delete id="deleteByClassOrderId" parameterType="java.lang.Integer">DELETEFROM class_orderWHERE class_order_id = #{classOrderId}</delete><select id="selectMemberByClassIdAndMemberAccount" parameterType="java.lang.Integer" resultType="classOrder">SELECT *FROM class_orderWHERE class_id = #{classId}AND member_account = #{memberAccount}</select><select id="selectMemberOrderList" parameterType="java.lang.Integer" resultType="classOrder">SELECT *FROM class_orderWHERE class_id = #{classId}</select></mapper>

Service:

ClassOrderService接口:
public interface ClassOrderService {//查询所有报名表信息List<ClassOrder> findAll();//添加报名信息Boolean insertClassOrder(ClassOrder classOrder);//根据会员账号查询个人报名课表List<ClassOrder> selectClassOrderByMemberAccount(Integer memberAccount);//删除已预约的课程Boolean deleteByClassOrderId(Integer classOrderId);//查询会员是否报名该课程ClassOrder selectMemberByClassIdAndMemberAccount(Integer classId, Integer memberAccount);//根据课程id查询所有报名的会员List<ClassOrder> selectMemberOrderList(Integer classId);}ClassOrderServiceImpl实现类:
@Service
public class ClassOrderServiceImpl implements ClassOrderService {@Autowiredprivate ClassOrderMapper classOrderMapper;@Overridepublic List<ClassOrder> findAll() {return classOrderMapper.findAll();}@Overridepublic Boolean insertClassOrder(ClassOrder classOrder) {return classOrderMapper.insertClassOrder(classOrder);}@Overridepublic List<ClassOrder> selectClassOrderByMemberAccount(Integer memberAccount) {return classOrderMapper.selectClassOrderByMemberAccount(memberAccount);}@Overridepublic Boolean deleteByClassOrderId(Integer classOrderId) {return classOrderMapper.deleteByClassOrderId(classOrderId);}@Overridepublic ClassOrder selectMemberByClassIdAndMemberAccount(Integer classId, Integer memberAccount) {return classOrderMapper.selectMemberByClassIdAndMemberAccount(classId, memberAccount);}@Overridepublic List<ClassOrder> selectMemberOrderList(Integer classId) {return classOrderMapper.selectMemberOrderList(classId);}
}

Controller:

ClassController类:
@Controller
@RequestMapping("/class")
public class ClassController {@Autowiredprivate ClassTableService classTableService;@Autowiredprivate ClassOrderService classOrderService;//查询课程@RequestMapping("/selClass")public String selectClass(Model model) {List<ClassTable> classList = classTableService.findAll();model.addAttribute("classList", classList);return "selectClass";}//跳转新增课程页面@RequestMapping("/toAddClass")public String toAddClass() {return "addClass";}//新增课程@RequestMapping("/addClass")public String addClass(ClassTable classTable) {classTableService.insertClass(classTable);return "redirect:selClass";}//删除课程@RequestMapping("/delClass")public String deleteClass(Integer classId) {classTableService.deleteClassByClassId(classId);classTableService.deleteOrderByClassId(classId);return "redirect:selClass";}//查询课程报名信息@RequestMapping("/selClassOrder")public String selectClassOrder(Integer classId, Model model) {List<ClassOrder> classOrderList = classOrderService.selectMemberOrderList(classId);model.addAttribute("classOrderList", classOrderList);return "selectClassOrder";}}

六:数据库设计

1.admin 管理员表

2.member 会员表

3.employee 员工表

4.equipment 器材表

5. class_order 报名表

6.class_table 课程表

七:页面效果及功能展示图

1.登陆页面

2.主页:

如下图所示:

3.会员管理界面:

如下图所示:

4.员工管理界面:

如下图所示:

5.器材管理界面:

如下图所示:

6.课程管理界面:

如下图所示:

7.会员课程管理界面:

如下图所示:

八:总结:

本次后端技术主要借由 Spring Boot 框架完成项目的搭建。前端主要借助于 Bootstrap+HTML+JavaScript 等其它技术进行网页页面布局。对于本门课程,反复练习了三层架构的使用,明确了各层作用及关系。希望能够帮到你!

健身房管理系统(开发项目)相关推荐

  1. 【Winform项目】零压健身房管理系统(项目展示),大作业,期末作业,课设,课程设计。源码分享

    文章目录 前言 项目视频演示 项目一角 项目介绍及演示 登录注册 进入项目 功能点解析 用户界面 结尾 前言 本文介绍了个人的<零压健身房管理系统(扁平化)>的基本流程和功能点的介绍,虚心 ...

  2. 人力资源管理系统开发----项目构建

    前言 我现在是一个大三的学生了,学的是软件工程,这个学期的课程设计是数据库设计,就是让我们实现一个人力资源管理系统.其中人力资源管理系统包括人事管理和薪酬管理.我这次想用播客的形式记录下我这次的课程设 ...

  3. 基于ssm+vue的健身房管理系统

    博主主页:猫头鹰源码 博主简介:Java领域优质创作者.CSDN博客专家.公司架构师.全网粉丝5万+.专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等).简历模 ...

  4. (附源码)计算机毕业设计SSM健身房管理系统

    (附源码)计算机毕业设计SSM健身房管理系统 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(Intell ...

  5. 基于Springboot的健身房管理系统(Java项目)

    文章目录 一.选题背景意义 二.系统模块划分 三.系统详情截图 一.选题背景意义 健身房管理系统可以更好地帮助健身房实现会员信息管理,健身房设备相关管理,提高健身房的运营效率. 本篇是基于Java-S ...

  6. java开发的公文管理系统源代码_基于jsp的公文管理系统-JavaEE实现公文管理系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的公文管理系统, 该项目可用各类java课程设计大作业中, 公文管理系统的系统架构分为前后台两部分, 最终实现在线上 ...

  7. Java项目—健身房管理系统(附源码+文档)

    今天给大家分享一个Java实战项目-健身房管理系统(附源码+数据库+文档) 需要资料源码的小伙伴可以点击下方链接和小编一起学习~ 需要源码直接私信小编哟~https://www.bilibili.co ...

  8. 【源码及课件分享】Java实战项目之酒店客房管理系统_Java项目开发_Java项目实战

    Java实战项目又双叒叕来咯~小伙伴们请查收~酒店客房管理系统![源码及课件分享]Java实战项目之酒店客房管理系统_Java项目开发_Java项目实战_Java毕业设计https://www.bil ...

  9. java项目-第59期ssm项目源码嘟嘟健身房管理系统

    java项目-第59期ssm项目源码嘟嘟健身房管理系统 1.项目简述 该项目健身房量身打造的一套系统,用户可以登录系统进行教练和课程预订, 管理员登录系统可以对会员.教练.健身器材等进行管理. 用户登 ...

最新文章

  1. 操作系统二:计算机内存体系
  2. Git 操作简单总结:廖雪峰教程
  3. Junit Hamcrest Eclemma
  4. vs code html table,vs Code 快速生成代码
  5. CertUtil.exe被利用来下载恶意软件
  6. SQL SERVER 的SQL语句优化方式小结
  7. java 防止表单重复提交
  8. 卷烟厂招工内卷:要求本科以上,但报名的硕士太多
  9. XML文件结构和基本语法
  10. 信息学奥赛一本通 1007:计算(a+b)×c的值 | OpenJudge NOI 1.3 02
  11. RPMB原理介绍【转】
  12. 多线程的创建方式之实现Callable接口
  13. 中兴通讯首届郑和杯无线应用创作挑战赛正式启动
  14. HTML 标题h1-h6
  15. 博途v14电脑要求_博图TIA V14版本完整体验加测试
  16. kali linux安装谷歌浏览器
  17. 无人机航拍VR全景图拍摄制作教程
  18. 什么是配置文件,以及如何编辑它们?
  19. 易泊夏武离线车牌识别,车牌识别SDK
  20. 股市知识:ST的股票可以买吗

热门文章

  1. Axure8.0教程:自动带出邮箱
  2. C++内存池的简单原理及实现
  3. Android 面试笔记总结,建议吸收一下灵气~
  4. Kotlin 高端玩法之DSL
  5. Homebrew安装与配置
  6. html5 循环加载图片,解决vue的 v-for 循环中图片加载路径问题
  7. c语言之大端小端问题
  8. ubuntu+appium+testng+android真机运行
  9. unpivot 列名转行值
  10. windows环境安装好了virtualenvwrapper,pycharm中workon命令用不了