摘 要
随着世界经济信息化、全球网络化的到来,信息线上管理的飞速发展,为私人健身和教练预约管理的改革起到关键作用。若想达到安全、快捷的目的,就需要拥有信息化的组织和管理模式,建立一套合理、畅通、高效的私人健身和教练预约管理系统。当前的私人健身和教练预约管理系统存在工作效率低下,人员和资源调配不充分的问题,基于信息化的系统目前还没有完善的系统机制。
在此基础上,结合现有的体系特点,运用新技术,构建了以SSM为基础的私人健身和教练预约管理信息化管理体系。根据需求分析结果进行了系统的设计,并将其划分为管理员,教练和用户三种角色:主要功能包括首页,个人中心,用户管理,教练管理,健身信息管理,教练预约管理,项目分类管理,项目信息管理,投诉信息管理,商品分类管理,商品信息管理,在线交流,系统管理,订单管理等。使用目前市场主流的技术SSM框架和Maven进行项目构建,使用Java开发语言和MySQL数据库对系统进行高内聚低耦合的设计,最终完成了私人健身和教练预约管理系统的实现。
基于SSM架构的私人健身和教练预约管理系统为当前传统私人健身和教练预约管理提供了一个高效、便捷、信息化的解决方案、有效管控了私人健身和教练预约管理的各个环节,这为后期私人健身和教练预约管理系统的优化提供了新的方向。
关键词:私人健身和教练预约;SSM架构;MySQL数据库
2开发环境
2.1开发技术
2.1.1 JAVA语言简介
JAVA主要使用了CORBA技术和安全模型,主要是在网络使用的信息保障上。它还带来了对EJB(Enterprise JAVA Beans)的完全支援。JAVA SERVLET API,JSP(JAVA Server Pages),还有XML技术等多进步。因此,当在打开蜘蛛纸牌休闲一下玩游戏时,还可以打开一个音乐播放器来播放自己想要听的歌,于是,既可以一遍玩蜘蛛纸牌放松,也可以挑选播放自己想要听的歌,两者来回切换,两者同时进行无需等待。因为似乎他们都在自己的主机上一起为自己工作。但事实是,对于某个CPU来说,它只是在特定时点进行了某个程序。CPU在这些程序中间,不断地“跳跃”。而为何人们却看不到什么破坏呢?这是因为,和人的感应一样,它的速度太快了。所以,即使人们发现一些同步操作,其实对电脑而言,也只是在特定时点运行了某个进程,除非的电脑是多CPU的。
2.1.2 SSM框架
SSM框架是指Spring、Spring MVC和MyBatis三大框架的有机结合,是在SSH后发展的较为主流的Java EE框架,SSM框架可以快速搭建各种不同类型的企业级应用系统。
1、Spring框架:
Spring是一个包含核心容器、Spring AOP、Spring ORM、Spring Web等组成模块,为简化企业复杂开发而设计的后端开源框架,利用Meta Data指定系统Bean应用后台对象进行实例化、配置和组装,以上控制反转IOC操作,均在Spring容器框架中完成。
2、Spring MVC框架:
Spring MVC开源框架同属于Spring框架,它基于MVC设计模式,其主要的作用是降低了视图与业务逻辑的双向耦合。前端发起的所有服务请求都会到后端的控制器Controller中进行相应的逻辑处理。
3、MyBatis框架:
MyBatis 是一款优秀的持久层框架。与用传统JDBC进行数据库管理不同的是,它会自动对输入参数和输出结果进行映射,同时,它让开发者仅关注SQL本身,无需创建连接和statement对象。在完成SQL语句查询、执行后,MyBatis会将返回的ResultSet对象,转换成Java对象。因此方便获取、写出 SQL语句的执行结果,才是MyBatis框架技术的核心竞争力。
2.1.3 MVC模式
MVC是一种软件设计模式,其实质是实现表示与数据的分离,通过MVC这种结构化模式,可以开发出便于扩展、便于整个流程维护的平台。在MVC结构中,模型描述改变应用数据,视图描述传递数据给用户的用户界面,控制器则将用户的行为翻译为对模型的操作,模型操作引起的数据变化反映在视图中。
工作原理及流程:
1.用户通过浏览器向前端控制器(dispatcherServlet)发送Http请求。
2.DispatcherServlet将请求用户请求发送给处理器映射器 (HandlerMapping)。
3.处理器映射器(HandlerMapping)会根据请求,找到负责处理该请求的处理器,并将其返回给前端控制器。
4.DispatcherServlet 会根据处理器执行链中的处理器,找到对应的(HandlerAdaptor)。
5.处理器适配器 (HandlerAdaptor) 会调用对应的 Controller进行逻辑处理。
6.Controller 将处理结果和视图封装到对象 ModelAndView 中并将其返回给HandlerAdaptor。
7.HandlerAdaptor 直接将 ModelAndView 交给 DispatcherServlet ,至此,业务处理完毕。
8.业务处理完毕后,我们需要将处理结果展示给用户。于是DispatcherServlet 调用 ViewResolver,将 ModelAndView 中的视图名称封装为视图对象。
9.ViewResolver 将封装好的视图 (View) 对象返回给 DispatcherServlet。
10.DispatcherServlet 调用视图对象,让其自己 (View) 进行渲染(将模型数据填充至视图中),形成响应对象 (HttpResponse)。
11.前端控制器 (DispatcherServlet) 响应 (HttpResponse) 给浏览器,展示在页面上。
2.2开发工具
2.2.1 MySQL
MySQL是一种关系型数据库,它以表文件的形式在磁盘中进行存储,主要作用就是以表结构的方式存储数据信息,并且MySQL数据库提供对数据的管理功能,如数据备份,表关联等。
MySQL的存储引擎有:
1.MyISAM:节约空间,速度较快,但没有事务处理的机制。
2.InnoDB:安全性高,支持事务的处理,多表多用户操作,支持行级锁,是MySQL 5.5及以后版本的默认数据库引擎。
2.2.2 IDEA
目前做Java开发使用率最高的工具就是IDEA,它虽然是一个Java集成开发环境,但它集成了市场上绝大多数编程语言的编译环境,该软件还提供代码自动排版、自动提示和快捷补全等功能,极大地简化项目代码的开发工作量,同时,它支持Java开源社区大部分框架技术和各类版本控制工具,如git。
IDEA被设计的目的就是尽可能的减少程序员的工作,特点如下:
1.能够整合绝大多数的开源框架及工具,如Git代码管理、Maven依赖管理库等工具和Spring等开源框架。
2.支持快速和便捷的代码提示和补全功能。
3.一个软件集成前端和后端的主流技术开发环境,能够自定义各个语言的开发模板,极大提高开发效率。
4.支持精确的全文搜索和关键词替换功能。
3 系统分析
当用户确定开发一款程序时,是需要遵循下面的顺序进行工作,概括为:系统分析–>系统设计–>系统开发–>系统测试,无论这个过程是否有变更或者迭代,都是按照这样的顺序开展工作的。系统分析就是分析系统需要做什么的问题,主要目的就是确定系统的功能,这也为接下来的工作做了一个好的开端。
3.1 系统可行性分析
开发一款程序软件不仅需要时间,也需要人力,物力资源。而进行可行性分析这个环节就是解决用户这方面的疑问,看看程序在当前的条件下是否可以进行开发。
3.1.1 技术可行性分析
此程序选用的开发语言是Java,这种编程语言有着丰富的数据类型,在指令控制语句上也比较完善,更重要的就是对类与对象的大力支持,这些优点为程序开发者提供了技术保障,尤其是现在代码都逐渐模块化,有关系统功能开发的源码在网络上都公开展示了,所以让具备一定计算机开发基础的开发人员独立开发系统在技术上也逐渐容易。
3.1.2 经济可行性分析
开发此程序最关键的设备就是一台电脑,无论是学校计算机室配备的电脑,还是自己入学以来购置的笔记本,都是可以符合开发要求的设备,另外在网络上,学校本已完全覆盖了校园网,所以在设备以及网络上无须考虑经济问题。
3.1.3 运行可行性分析
随着电脑软件以及配套硬件的完善升级,当下的计算机环境是一片大好,尤其是计算机已经广泛普及到家家户户,所以计算机设备现在是随处可见,由于本次开发的程序占有的资源耗费较小,在一般的电脑或笔记本上都能轻松运转起来。
通过上面的可行性描述,可以从经济,技术,运行方面解决程序开发是否可行的问题。因此可以认为该程序软件是可以进行开发的。
3.2 系统性能分析
系统性能分析也是比较重要的内容,进行系统性能分析就是为了确保系统的功能要能够在生活中运行使用时,达到规定的指标,因此一个完整的系统软件,是需要进行系统的性能分析这个步骤的。本次进行性能分析主要从易用性指标,可扩展性指标,系统健壮性指标,系统安全性指标这几个方面进行分析。
3.2.1 易用性指标
本次程序软件的开发的目的就是让使用者可以通过使用该软件提高信息数据的管理效率,同时该程序软件也需要针对不同的操作用户设置对应的功能,因此,此程序的操作流程应该尽量与用户日常操作软件的行为习惯相贴合,另外,程序软件的设计与开发也应考虑非计算机专业用户的计算机操作水平,要让大部分使用者都可以轻松操作程序提供的各个功能。
3.2.2 可扩展性指标
当前需要开发的程序软件是根据当下的用户需求进行设计开发的,但是随着时间的推移,社会大环境的改变,开发出的程序也是需要与时俱进的,需要根据用户不断变换的需求进行相应的功能内容的扩展,需要注意的就是,当对成型的程序进行功能模块新增时,仍然需要保证程序原有架构以及功能不能受到影响,新增的功能模块在系统中也能够运行正常,该指标达标也就可以保证此程序是可以在满足信息管理要求下,从容应对市场环境的变化。
3.2.3 健壮性指标
程序软件的开发就是为了投入使用时,可以一直稳定的处理各种数据信息,程序软件一旦不稳定,也会给使用者带来干扰。因此从性能分析的角度,就要要求程序软件在应对使用者的误操作,或者是使用者因为各种原因,填写有误的数据等情况时,程序要一直保持稳定,并能够正常让使用者进行使用。当程序的某个功能模块出现异常时,程序的其它功能模块也要能够确保正常使用。程序的健壮性指标达标可以让使用者产生良好的用户体验。
3.2.4 安全性指标
程序软件的安全问题是首要问题,毕竟程序对应数据库里面存放的数据信息是庞大的,里面也包括了许多重要的个人信息,这就对程序要具备一个完善的安全机制提出了要求。因此程序必须要设置登录功能用以进行用户身份的检查,以及身份和权限的匹配,通过对不同用户身份进行功能约束,绝不容忍用户越权操作程序。另外,也需要时刻防范计算机病毒,还有黑客,通过采取针对性的办法进行安全应对,确保程序时刻处于安全的环境,让使用者放心使用。
3.3 系统流程分析
3.3.1 操作流程分析
程序上交给用户进行使用时,需要提供程序的操作流程图(如图3.1所示),这样便于用户容易理解程序的具体工作步骤,现如今程序的操作流程都有一个大致的标准,即先通过登录页面提交登录数据,通过程序验证正确之后,用户才能在程序功能操作区页面操作对应的功能。
3.3.2 登录流程分析
在这个部分,需要对程序的登录功能模块的运行流程(如图3.2所示),进行单独说明。程序设置登录模块也是为了安全起见,让用户使用放心,登录模块主要就是让用户提交登录信息,程序进行数据验证,验证通过的用户才能够成功登录程序。
3.3.3 信息添加流程分析
程序的添加功能就是提供给操作者录入信息的功能,不管是涉及到用户信息添加,还是其它功能模块涉及到的信息添加,程序的信息添加流程(如图3.3所示)都是一致的。程序都是先对操作者录入的数据进行判定,这个判定规则是一段提前编写完成的程序代码,当程序判定数据符合要求时,才会把操作者录入的数据登记在数据表里面,比如添加的用户信息,就会把新添加的用户信息写入用户信息的数据表文件里面。
3.3.4 信息删除流程分析
当从程序里面删除某种无效数据时,遵循程序的信息删除流程(如图3.4所示),先要选中操作者需要删除的数据,程序为了预防操作者误删信息,也会进行提示,当操作者真正确定要删选中的信息时,该信息就会从数据库中被永久删除。
4 系统概要设计
本次拟开发的系统为了节约开发成本,也为了后期在维护和升级上的便利性,打算通过浏览器来实现系统功能界面的展示,让程序软件的主要事务集中在后台的服务器端处理,前端部分只用处理少量的事务逻辑。下面使用一张图(如图4.1所示)来说明程序的工作原理。
1.功能分析
3.3.1 管理员用例图
私人健身和教练预约管理系统的最大权限用户是管理员,通过管理员菜单中的首页,个人中心,用户管理,教练管理,健身信息管理,教练预约管理,项目分类管理,项目信息管理,投诉信息管理,商品分类管理,商品信息管理,在线交流,系统管理,订单管理等选项来对系统后台信息进行管理。管理员用例如图3-6所示。
3.3.2 用户用例图
用户进入系统可以对首页,个人中心,教练预约管理,投诉信息管理进行管理。用户用例如图3-7所示。
3.3.3 教练用例图
教练进入系统可以对首页,个人中心,健身信息管理,教练预约管理,项目信息管理,投诉信息管理,订单管理进行管理。教练用例如图3-8所示。
2.数据库分析
开发一个系统也需要提前设计数据库。这里的数据库是相关数据的集合,存储在一起的这些数据也是按照一定的组织方式进行的。目前,数据库能够服务于多种应用程序,则是源于它存储方式最佳,具备数据冗余率低的优势。虽然数据库为程序提供信息存储服务,但它与程序之间也可以保持较高的独立性。总而言之,数据库经历了很长一段时间的发展,从最初的不为人知,到现在的人尽皆知,其相关技术也越发成熟,同时也拥有着坚实的理论基础。
5界面设计与功能实现
5.1系统功能实现
当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到系统的导航条和社区新闻等。系统首页界面如图5-1所示:
系统注册:在系统注册页面的输入用户注册信息进行注册操作,系统注册页面如图5-2所示
项目信息:在项目信息页面的输入栏中输入项目名称、项目分类和教练姓名进行查询,可以查看到项目详细信息,并进行添加到购物车,立即购买,评论和收藏操作;项目信息页面如图5-3所示:
购物车:在购物车页面可以查看到商品名称、图片、价格、数量、总价等详细信息,并进行点击购买或删除操作;购物车页面如图5-4所示:
图5-4购物车详细页面
个人中心:在个人中心页面通过填写个人详细信息进行信息更新操作,还可以根据需要对我的发布,我的订单和我的收藏进行详细操作;如图5-5所示:
5.2后台模块实现
后台用户登录,在登录页面选择需要登录的角色,在正确输入用户名和密码后,进入操作系统进行操作;如图5-6所示。
5.2.1管理员模块实现
管理员进入主页面,主要功能包括对首页,个人中心,用户管理,教练管理,健身信息管理,教练预约管理,项目分类管理,项目信息管理,投诉信息管理,商品分类管理,商品信息管理,在线交流,系统管理,订单管理等进行操作。管理员主页面如图5-7所示:
管理员点击用户管理。进入用户页面输入用户名和姓名可以查询、新增或删除用户详细信息,并进行修改和删除等操作。如图5-8所示:
管理员点击健身信息管理。进入健身信息页面输入标题和健身类型可以查询或删除健身详细信息,并进行查看详情,修改,查看评论和删除等操作。如图5-9所示:
管理员点项目分类管理。进入项目分类页面输入项目分类可以查询、新增或删除项目分类详细信息,并进行修改或删除操作。如图5-10所示:
管理员点击商品信息管理。进入商品信息页面输入商品名称和商品分类可以查询、新增或删除商品信息详细信息,并进行详情,修改,查看评论或删除操作。如图5-11所示:
管理员点击在线交流管理。进入在线交流页面输入帖子标题可以查询或删除在线交流详细信息,并进行详情,查看评论或删除操作。如图5-12所示:
管理员点击系统管理,进入系统管理页面可以对轮播图管理进行详情或修改操作,还可以对关于我们和健身资讯页面进行详细操作。如图5-13所示:
5.2.2教练模块实现
教练进入系统可以对首页,个人中心,教练预约管理,投诉信息管理等功能进行操作。教练主页面如图5-14所示:
教练点击健身信息管理。进入健身信息页面输入标题和健身类型可以查询、新增或删除健身详细信息,并进行查看详情,修改,查看评论和删除等操作。如图5-15所示:
教练点击项目信息管理。进入项目信息页面输入项目名称、项目分类和教练姓名可以查询、新增或删除项目信息详细信息,并进行详情,修改,查看评论或删除操作。如图5-16所示:
5.2.3用户模块实现
用户进入系统可以对首页,个人中心,教练预约管理,投诉信息管理等功能进行操作。用户主页面如图5-17所示:
用户点击教练预约管理。进入教练预约页面输入教练姓名,姓名和选择是否通过可以查询或删除教练预约详细信息,并进行查看详情或删除等操作。如图5-18所示:用户点击投诉信息管理。进入投诉信息页面输入教练姓名和选择是否通过可以查询或删除投诉信息详细信息,并进行详情或删除操作。如图5-19所示:
6 系统测试
程序软件一旦被开发完成之后,在真正投入日常生活中进行运行使用之前,是必须要经历测试这一个重要的操作环节,因为开发期间注重的是每个单独功能模块的开发,尽管每次开发完成一个单独功能模块时,会通过单元测试进行检验,检验合格才会让程序员继续开发下一个子功能模块,以此类推,当程序员完成所有的系统子功能模块的开发时,这个时候就需要引进系统测试,系统测试就是把所有的子功能模块集成到一起,构建成整个系统,在指定的运行环境下进行运行,主要就是测试系统的所有功能模块在一起是否良好运行,一旦程序软件通过了系统测试这一环节,就意味着它可以进行最终的验收测试了,这个测试步骤的操作用户是程序面向的客户或者是最终用户了。
6.1 系统测试的特点
系统测试也是为了保证系统正式上线后,可以稳定正常运行,给使用者带来便利。系统测试也有其对应的特点:
(1)系统测试它包括了端到端的完整测试;
(2)系统测试也对程序软件的架构方面,程序软件的业务需求等方面进行了测试;
(3)系统测试一旦采用正确的方法进行,这将减少程序正式上线之后产生的各种错误;
系统测试一般都是在跟生产环境相似的环境当中运行,程序的功能比如添加功能,删除功能,修改功能等都会使用同样的数据在新系统和现有系统中进行比较,这样做让用户对新系统中的添加,修改,删除等功能能够更好地理解,也能提升用户对新系统的满意度。
说明文档
前台登录页面
http://localhost:8080/项目名称/front/pages/login/login.jsp
后台登录页面
http://localhost:8080/项目名称/jsp/login.jsp
管理员 账户:admin 密码:admin
用户 账户:a1 密码:admin
用户 账户:a2 密码:admin
在src\main\resources\config.properties中编辑
jdbc_url=jdbc:mysql://127.0.0.1:3306/项目名称?useUnicode=true&characterEncoding=UTF-8&tinyInt1isBit=false
jdbc_username=root 数据库用户名 root
jdbc_password=123456 用户密码 123456
图片存放路径: src\main\webapp\upload 里面上传图片名里面不能有中文