健身房管理系统(开发项目)
目录
一:系统架构图
二:模块分析
三:项目介绍
四:项目结构
五:内容介绍
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 等其它技术进行网页页面布局。对于本门课程,反复练习了三层架构的使用,明确了各层作用及关系。希望能够帮到你!
健身房管理系统(开发项目)相关推荐
- 【Winform项目】零压健身房管理系统(项目展示),大作业,期末作业,课设,课程设计。源码分享
文章目录 前言 项目视频演示 项目一角 项目介绍及演示 登录注册 进入项目 功能点解析 用户界面 结尾 前言 本文介绍了个人的<零压健身房管理系统(扁平化)>的基本流程和功能点的介绍,虚心 ...
- 人力资源管理系统开发----项目构建
前言 我现在是一个大三的学生了,学的是软件工程,这个学期的课程设计是数据库设计,就是让我们实现一个人力资源管理系统.其中人力资源管理系统包括人事管理和薪酬管理.我这次想用播客的形式记录下我这次的课程设 ...
- 基于ssm+vue的健身房管理系统
博主主页:猫头鹰源码 博主简介:Java领域优质创作者.CSDN博客专家.公司架构师.全网粉丝5万+.专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等).简历模 ...
- (附源码)计算机毕业设计SSM健身房管理系统
(附源码)计算机毕业设计SSM健身房管理系统 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(Intell ...
- 基于Springboot的健身房管理系统(Java项目)
文章目录 一.选题背景意义 二.系统模块划分 三.系统详情截图 一.选题背景意义 健身房管理系统可以更好地帮助健身房实现会员信息管理,健身房设备相关管理,提高健身房的运营效率. 本篇是基于Java-S ...
- java开发的公文管理系统源代码_基于jsp的公文管理系统-JavaEE实现公文管理系统 - java项目源码...
基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的公文管理系统, 该项目可用各类java课程设计大作业中, 公文管理系统的系统架构分为前后台两部分, 最终实现在线上 ...
- Java项目—健身房管理系统(附源码+文档)
今天给大家分享一个Java实战项目-健身房管理系统(附源码+数据库+文档) 需要资料源码的小伙伴可以点击下方链接和小编一起学习~ 需要源码直接私信小编哟~https://www.bilibili.co ...
- 【源码及课件分享】Java实战项目之酒店客房管理系统_Java项目开发_Java项目实战
Java实战项目又双叒叕来咯~小伙伴们请查收~酒店客房管理系统![源码及课件分享]Java实战项目之酒店客房管理系统_Java项目开发_Java项目实战_Java毕业设计https://www.bil ...
- java项目-第59期ssm项目源码嘟嘟健身房管理系统
java项目-第59期ssm项目源码嘟嘟健身房管理系统 1.项目简述 该项目健身房量身打造的一套系统,用户可以登录系统进行教练和课程预订, 管理员登录系统可以对会员.教练.健身器材等进行管理. 用户登 ...
最新文章
- 操作系统二:计算机内存体系
- Git 操作简单总结:廖雪峰教程
- Junit Hamcrest Eclemma
- vs code html table,vs Code 快速生成代码
- CertUtil.exe被利用来下载恶意软件
- SQL SERVER 的SQL语句优化方式小结
- java 防止表单重复提交
- 卷烟厂招工内卷:要求本科以上,但报名的硕士太多
- XML文件结构和基本语法
- 信息学奥赛一本通 1007:计算(a+b)×c的值 | OpenJudge NOI 1.3 02
- RPMB原理介绍【转】
- 多线程的创建方式之实现Callable接口
- 中兴通讯首届郑和杯无线应用创作挑战赛正式启动
- HTML 标题h1-h6
- 博途v14电脑要求_博图TIA V14版本完整体验加测试
- kali linux安装谷歌浏览器
- 无人机航拍VR全景图拍摄制作教程
- 什么是配置文件,以及如何编辑它们?
- 易泊夏武离线车牌识别,车牌识别SDK
- 股市知识:ST的股票可以买吗