《毕业设计(论文)-springboot SSM 宠物医院管理系统.docx》由会员分享,可在线阅读,更多相关《毕业设计(论文)-springboot SSM 宠物医院管理系统.docx(51页珍藏版)》请在课桌文档上搜索。
1、宠物医院预约管理平台一、绪论1.1计算机管理信息系统的发展情况1958年美国首先提出了“管理信息系统”(即MIS:ManagementInformationSystems),从而也引出了另夕I个概念“管理信息系统综合其多种定义以及根据在实际中的应用,管理信息系统可以定义为是一个由人、计算机系统等组成的,能进行信息处理的人机系统,它反映企业的生产经营情况,利用过去、当前的数据预测未来,从企业全局出发辅助企业进行管理与决策。它具有以下特征:现代管理信息系统是一个以计算机为基础的一个人机系统。管理信息系统是一个集成化的系统。管理信息系统是一个以数据库为中心的系统。管理信息系统是一个网络化的系统。管理
2、信息系统不同于一般的数据处理系统由于企业类型不同,企业的战略计划不同,企业的管理模式不径相同等因素,实际的管理信息系统的动能会不同。但是从抽象意义上来说,无论什么企业,其管理信息系统的功能相同。一般分为数据处理、辅助管理决策两大功能。管理信息系统的数据处理功能以完成企业相关数据的收集、存储、加工、传输和输出,提供信息服务。它是管理信息系统的基本功能;辅助管理决策功能即指对企业生产经营中的结构化决策问题,采用管理信息系统相关学科中提出的定量方法,建立问题的模型,求解问题,获得解决问题的方法。斯隆认为用户对管理信息系统的需求分为四类:事务型:是一种例行处理要求,辅助日常事务。例如商业企业的商品进销
3、存的管理。异常型:其处理要求是当某状态超出事先设置的阈值,则系统能够发出警报。例如财务中对某些科目设置报警值,一旦超值则对该科目的开支进行控制。查询型:要求管理信息系统具有灵活的查询能力,满足用户的信息需要。分析型:提供强有力的分析能力,借助数据、模型支持决策,以回答“如果那么”诸如此类的问题。自从管理信息系统这一新兴的管理方法引入我国,在我国企业管理中已有20多年时间。而且,管理信息系统已经广泛应用于各行各业。虽然,我国的企业计算机管理信息系统建设在20世纪80年代就已经开始起步,但发展极不平衡,也就是说大部分企业目前仍处于低水平开发和应用阶段。随着经济体制的改革和市场经济的发展,企业机制有
4、了很大变化。企业的生产更多地依赖于市场的竞争,信息从而成为企业的重要资源,企业信息系统的建设已成为企业走向现代化的重要标志,企业信息系统对于企业的运作以及在市场中的竞争具有重要作用。在当前形势下,信息化是企业发展的必由之路。1.2宠物医院信息管理系统的现状目前,国内外宠物医院信息管理管理一般采用两种方式:一种纯手工管理;另一种则是利用一些较老的或是以别的系统为底板改版而成的系统来进行管理。但这两种方法都有各自的弊端:前一种方法由于参与管理者的文化水平不一,字迹不一,互相之间会导致信息传达不便,而且纸质信息传载媒体有着一个很大的弱点就是容易损坏,造成信息丢失;后一种方法虽然解决了信息传达、信息保
5、存的问题。但存在一个更致命的缺点:系统安全问题得不到保证3o在当前的信息化时代中,任何宠物医院,都需要一个实用的宠物医院信息管理系统来规范宠物医院信息管理管理,这将会大大提高宠物医院的管理水平,优化资源,实现效益的最大化。现在国内外也有很多宠物医院信息管理管理的软件,采用的技术也是多种多样,如基于JSP.FTP模式,但大多数宠物医院信息管理系统主要用于大型宠物医院的关键部门。至于小型宠物医院,利用宠物医院信息管理系统组织管理教学活动的并不多。针对国内外对宠物医院信息管理软件的巨大需要和基本需要,一个好的宠物医院信息管理软件,必须功能齐全,操作简便,向用户展示友善的操作界面。在完善功能的同时又必
6、须兼顾系统的灵活性,安全性,健壮性。一个好的教学管理系统,不管是计算机专业人员还是其他用户都能很快上手,操作简单,便于安装,容易普及。1.3宠物医院信息管理系统的优势由于宠物医院教学功能的特殊定位,致使医生和患者必须在除了简单的医患区别外,还有合作意味的关系。所以,这其中的信息管理流程,需要以一个规范的MlS来管理。宠物医院信息管理系统的优势主要表现在三个方面:1、宠物医院信息管理无纸化,环保又方便。传统的宠物医院信息管理方式,都是经由工作从员手工记录存档。这种传统的纸质宠物医院信息管理管理,一是会有很大的体力消耗,二是在精力上也是不小的付出,而且这种辛苦在很多时候往往没能得到满意的回复。而无
7、纸化宠物医院信息管理,只需在电脑前点点鼠标,在体力上几乎没有多大的消耗,而且在环保、效率、针对性教学指导方面做得要比传统的宠物医院信息管理管理科学得多。2、科学管理,安全可靠。传统的宠物医院信息管理管理方式,都是一份份独立的宠物医院信息管理,一个部门对应一份,而这么一搭的设计,经常会由于各种原因,丢失或是污损,给宠物医院信息管理管理和教学进程带来很大的麻烦和不便。而宠物医院信息管理系统的动作,只需做好系统数据库的保护,以上问题可以迎刃而解了。3、简化工作,促进其他方面的综合发展。由于宠物医院信息管理系统的介入运行,可以使医生腾出更多的时间,做更多针对性的个性化医疗服务,从而使每个病人都有机会享
8、受更多的服务1.3项目的可行性研究设计此系统需要java面向对象编程基础,数据库应用知识以及功能分析。根据目前阶段所掌握的知识,根据这学期以及之前学习掌握的java编程知识和数据库应用知识以及前端知识做出一个这样的基于Javawebspringboot轻量级框架网页版的宠物医院信息管理系统。1. 4技术可行性springSPring框架是JaVa平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriSeJavaBeans)模型的补充,甚至是替补。SPring框架为开
9、发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。SPring框架具有控制反转(IOC)特性,IoC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。SPring框架利用容器管理对象的生命周期,容器可以通过扫描XM1.文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。SPring框架具有面向切面编程(AOP)框架,SPringAOP框架基于代理模式
10、,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,虽无法与ASPeCtJ框架相比,但通过与ASPeCtJ的集成,也可以满足基本需求。SPring框架下的事务管理、远程访问等功能均可以通过使用SpringAOP技术实现Spring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在JaVa平台的任何环境中工作。Spring集成多种事务模板,系统可以通过事务模板、XM1.或JaVa注解进行事务配置,并且事务框架集成了消息传递和缓存等功能。Spring的数据访问框架解决
11、了开发人员在应用程序中使用数据库时遇到的常见困难。它不仅对Java:JDBC、iBATS/MyBATIsHibernate、JaVa数据对象(JDO)、APaCheOJB和ApacheCayne等所有流行的数据访问框架中提供支持,同时还可以与Spring的事务管理一起使用,为数据访问提供了灵活的抽象。SPring框架最初是没有打算构建一个自己的WebMVC框架,其开发人员在开发过程中认为现有的StrutsWeb框架的呈现层和请求处理层之间以及请求处理层和模型之间的分离不够,于是创建了SpringMVCoSpringMVCSpringMVC框架是有一个MVC框架,通过实现MOdel-VieW-C
12、OntrOlIer模式来很好地将数据、业务与展现进行分离。从这样一个角度来说,SPringMVC和StrUts、Struts2非常类似。SpringMVC的设计是围绕DiSPatCherSerVlet展开的,DiSpatcherServIet负责将请求派发到特定的handIero通过可配置的handIermappingsviewresoIutionIocaIe以及themeresoIution来处理请求并且转到对应的视图。SpringMVC请求处理的整体流程如图:mybatismybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqISessiOnFa
13、ctory实例展开的OmybatiS通过配置文件关联到各实体类的MaPPer文件,Mapper文件中配置了每个类对数据库所需进行的Sql语句映射。在每次与数据库交互时,通过sqISessiOnFactory拿到一个sqISession,再执行sqI命令。页面发送请求给控制器,控制器调用业务层处理逻辑,逻辑层向持久层发送请求,持久层与数据库交互,后将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据Shiro权限框架ShirO是一个安全框架,是APaChe的一个子项目。Shiro提供了:认证、授权、加密、会话管理、与Web集成、缓存等模AuthenticationSessi
14、onManagementWebSupportV1TConcurrencyTesting*RunAsAuthorizationCryptographyCachingRememberMe国PrimaryConcernsSupportingFeatures1.1、 模块介绍Authentication:用户身份识别,可以认为是登录;AIlthoriZation:授权,即权限脸证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限。SessionManager:会话管理,即用户登录后就是一次会话,在没
15、有退出之前,它的所有信息都在会话中;会话可以是普通JavaSE环境的,也可以是如Web环境的。Cryptography:加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储。WebSupport:Web支持,可以非常容易的集成到web环境。Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以提高效率。Concurrency:shiro支持多线程应用的并发验证,即如在一个线程中开启另一个线程,能把权限自动传播过去。Testing:提供测试支持。RunAs:允许一个用户假装为另一个用户(如果他们允许)的身份进行访问。RememberMe:记住我,这个是
16、非常常见的功能,即一次登录后,下次再来的话不用登录了。注意:ShirO不会去维护用户和权限之间的关系,需要我们自己去设计、提供;然后通过相应的接口注入给Shiro即可。2、核心概念Subject:主体,代表了当前操作“用户”,这个用户不一定是具体的人,与当前应用交互的任何东西都是subject,即一个抽象概念。所有Subject都绑定到SecurityManager,与Subject交互都会委托给SercurityManager;SecurJtyManager:安全管理器;即所有与subject安全有关的操作都会与SeCIJrityManager交互;且它管理着所有的SUbjeCt;它负责与里
17、面的各个组件的交互,也可以把它理解成springmvc中的DiSPatCherSerVIet前端控制器。Realm:域,安全数据源。ShirO从Realm获取安全数据(如用户、权限、角色),就是说SecurityManager要验证用户身份,那么它需要从Realm得到用户相应的角色、权限进行验证用户是否能进行操作;可以把ReaIm看成DataSOUrce,即安全数据源。(thecurrentuser)(managesallSubjects)(accessyoursecuritydata)从上图可以看出:1、应用代码通过Subject来进行认证和授权,而Subject又委托给SecurityMa
18、nager;2、SeCUrityManager要验证用户身份,那么它需要从Realm中获取相对应的用户、角色、权限进行比较以确定用户身份是否合法。总结:ShirO不提供维护用户、权限,而是通过ReaIrn让开发人员自己注入。用尸表(3r)Intid;角色表(role)Intid;Stringmenulds;权限装(menu)Intid;用户角色关联表Intuserid;Introleld;3、ShirO内部架构介绍PHPn*1) Subject:主体,可以看到主体可以是任何与应用交互的“用户”。2) SecurityManager:相当于SpringMVC中的DiSPatCherSerVIet
19、或者Struts2中的FiIterDispatchero它是Shiro的核心,所有具体的交互都通过SecurStyManager进行控制。它管理着所有Subject且负责进行认证和授权、及会话、缓存的管理。3) Authenticator:认证器,负责主体认证的,这是一个扩展点,如果用户觉得Shiro默认的不好,我们可以自定义实现O其需要认证策略(AUthentiCatiOrlStrategy),即什么情况下算用户认证通过了。4) Authrizer:授权器,或者访问控制器。它用来决定主体是否有权限进行相应的操作,即控制着用户能访问应用中的哪些功能。5) Realm:可以有1个或多个Realm
20、,可以认为是安全实体数据源,即用于获取安全实体的。它可以是JDBC实现,也可以是1.DAP实现,或者内存实现等。6) SessiOnManager:如果写过ServIet就应该知道Session的概念,Session需要有人去管理它的生命周期,这个组件就是SessionManagero而Shiro并不仅仅可以用在Web环境,也可以用在如普通的JavaSE环境。7) SessionDAO:DAO大家都用过,数据访问对象,用于会话的CRUD0我们可以自定义SessionDAO的实现,控制session存储的位置。如通过JDBC写到数据库或通过jedis写入redis中。另外SessionDAO中可
21、以使用Cache进行缓存,以提高性能。8) CacheManager:缓存管理器。它来管理如用户、角色、权限等的缓存的。因为这些数据基本上很少去改变,放到缓存中后可以提高访问的性能。9) Cryptography:密码模块,Shiro提高了一些常见的加密组件用于如密码加密/解密的。4、过滤器当Shiro被运用到web项目时,Shiro会自动创建一些默认的过滤器对客户端请求进行过滤。以下是Shiro提供的过滤器:过滤器简称对应的Java类anonorg.apache,shiro.web.fiIter.authc.AnonymousFiIterauthcorg.apache,shiro.web.f
22、iIter.authc.FormAuthenticationFiIterauthcBasicorg.apache.shiro.web.fiIter.authc.BasiCHttpAuthenticationFiIterpermsorg.apache.shiro.web.fiIter,authz.PermissionsAuthorIzationFiIterportorg.apache,shiro.web.fiIter,authz.PortFiIterrestorg.apache,shiro.web.fiIter,authz.HttpMethodPermissionFiIterrolesorg.a
23、pache.shiro.web.fiIter.authz.RoIesAuthorizationFiIterssIorg.apache,shiro.web.fiIter,authz.SsIFiIteruserorg.apache,shiro.web.fiIter,authc.UserFiIterIogoutorg.apache,shiro.web.fiIter.authc.1.ogoutFiIternoSessionCreationorg.apache,shiro.web.fiIter.session.NoSessionCreationFiIter解释:admins*=anon#表示该uri可以
24、匿名访问admins*-auth#表示该Ilri需要认证才能访问/admins*=authcBasic#表示该Uri需要httpBasic认证/admins*=permsuser:add:*#表示该Uri需要认证用户拥有user:add:*权限才能访问/admins*=port8081#表示该Uri需要使用8081端口admins*=restuser#相当于admins*=permsuser:method,其中,method表示get、postdelete等/admins*=roIesadmin#表示该Ilri需要认证用户拥有admin角色才能访问admins*=ssI#表示该IJri需要使用
25、https协议admins*=user#表示该Uri需要认证或通过记住我认证才能访问/Iogout=Iogout#表示注销,可以当作固定配置SpringBootSPringBOot是由PiVOtal团队在2013年开始研发、2014年4月发布第一个版本的全新开源的轻量级框架。它基于SPring4.0设计,不仅继承了SPring框架原有的优秀特性,而且还通过简化配置来进一步简化了SPring应用的整个搭建和开发过程。另外SPringBOOt通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。SpringBoot所具备的特征有:(1)可以创建独立的SPring应用程序
26、,并且基于其MaVen或Gradle插件,可以创建可执行的JARS和WARs;(2)内嵌TOnICat或Jetty等SerVIet容器;(3)提供自动配置的“starter”项目对象模型(POMS)以简化MaVen配置;(4)尽可能自动配置SPring容器;(5)提供准备好的特性,如指标、健康检查和外部化配置;(6)绝对没有代码生成,不需要XM1.配置。12SPringBOOt框架中还有两个非常重要的策略:开箱即用和约定优于配置。开箱即用,Outofbox,是指在开发过程中,通过在MAVEN项目的pom文件中添加相关依赖包,然后使用对应注解来代替繁琐的XM1.配置文件以管理对象的生命周期。这个
27、特点使得开发人员摆脱了复杂的配置工作以及依赖的管理工作,更加专注于业务逻辑。约定优于配置,Conventionoverconfiguration,是一种由SpringBoot本身来配置目标结构,由开发者在结构中添加信息的软件设计范式。这一特点虽降低了部分灵活性,增加了BUG定位的复杂性,但减少了开发人员需要做出决定的数量,同时减少了大量的XM1.配置,并且可以将代码编译、测试和打包等工作自动化。SpringBoot应用系统开发模板的基本架构设计从前端到后台进行说明:前端常使用模板引擎,主要有FreeMarker和ThynleIeaf,它们都是用JaVa语言编写的,渲染模板并输出相应文本,使得界
28、面的设计与应用的逻楫分离,同时前端开发还会使用到BoOtStrap、AnguIarJSJQUery等;在浏览器的数据传输格式上采用JSOn,非xml,同时提供RESTfUIAPI;SPringMVC框架用于数据到达服务器后处理请求;到数据访问层主要有Hibernate、MyBatis、JPA等持久层框架;数据库常用MySQ1.;开发工具推荐IntelIiJIDEAojQueryjQuery是一个快速、简洁的JaVaSCriPt框架,是继PrOtOtyPe之后又一个优秀的JaVaSCriPt代码库(或JaVaSCriPt框架)0jQuery设计的宗旨是write1.ess,DoMore,即倡导写
29、更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JaVaSCriPt设计模式,优化HTM1.文档操作、事件处理、动画设计和AjaX交互。jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的CSS选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE6.0+、FF1.5+、Safari2.0+、Opera9.0+等MysqlMySQ1.是一款安全、跨平台、高效的,并与PHP.Java等主流编程语言紧密结合的数据库系统。该数据库系统是由瑞典的MySQ1.AB公司开发、发
30、布并支持,由MySQ1.的初始开发人员DaVidAxmark和MichaelMontyWidenius于1995年建立的。MySQ1.的象征符号是一只名为SakiIa的海豚,代表看MySQ1.数据库的速度、能力、精确和优秀本质。MySQU图:MySQ1.图标目前MySQ1.被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,使得很多公司都采用MySQ1.数据库以降低成本。MySQ1.数据库可以称得上是目前运行速度最快的SQ1.语言数据库之一。除了具有许多其他数据库所不具备的功能外,MySQ1.数据库还是一种完全免费的产品,用户可以直接通
31、过网络下载MySQ1.数据库,而不必支付任何费用。MySQ1.特点下面总结了一下MySQ1.具备的特点。1)功能强大MySQ1.中提供了多种数据库存储引擎,各引擎各有所长,适用于不同的应用场合,用户可以选择最合适的引擎以得到最高性能,可以处理每天访问量超过数亿的高强度的搜索Web站点。MySQ1.5支持事务、视图、存储过程、触发器等。2)支持跨平台MySQ1.支持至少20种以上的开发平台,包括1.inux、WindowsFreeBSD、IBMAlX、AIX.FreeBSD等。这使得在任何平台下编写的程序都可以进行移植,而不需要对程序做任何的修改。3)运行速度快高速是MySQ1.的显著特性。在M
32、ySQ1.中,使用了极快的B树磁盘表(MyISAM)和索引压缩;通过使用优化的单扫描多连接,能够极快地实现连接;SQ1.函数使用高度优化的类库实现,运行速度极快。4)支持面向对象PHP支持混合编程方式。编程方式可分为纯粹面向对象、纯粹面向过程、面句对象与面向过程混合3种方式。5)安全性高灵活和安全的权限与密码系统,允许基本主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码的安全。6)成本低MySQ1.数据库是一种完全免费的产品,用户可以直接通过网络下载。7)支持各种开发语言MySQ1.为各种流行的程序设计语言提供支持,为它们提供了很多的API函数,包括PHPASP.NET
33、、Java.Eiffe1.Python.Ruby、Tc1.C、C+、Perl语言等。8)数据库存储容量大MySQ1.数据库的最大有效表尺寸通常是由操作系统对文件大小的限制决定的,而不是由MySQ1.内部限制决定的。InnoDB存储引擎将InnoDB表保存在一个表空间内,该表空间可由数个文件创建,表空间的最大容量为64TB,可以轻松处理拥有上千万条记录的大型数据库。9)支持强大的内置函数PHP中提供了大量内置函数,几乎涵盖了Web应用开发中的所有功能。它内置了数据库连接、文件上传等功能,MySQ1.支持大量的扩展库,如MySQ1.i等,可以为快速开发Web应用提供便利。数据库的应用数据库是计算机
34、应用系统中的一种专门管理数据资源的系统。数据有多种形式,如文字、数码、符号、图形、图像及声音等,数据是所有计算机系统所要处理的对象。我们所熟知的一种处理办法是制作文件,即将处理过程编成程序文件,将所涉及的数据按程序要求组成数据文件,再用程序来调用,数据文件与程序文件保持着一的关系。在计算机应用迅速发展的情况下,这种文件式管理方法便显出它的不足。比如,它使得数据通用性差、不便于移植、在不同文件中存储大量重复信息、浪费存储空间、更新不便等。而数据库系统便能解决上述问题。数据库系统不从具体的应用程序出发,而是立足于数据本身的管理,它将所有数据保存在数据库中,进行科学的组织,并借助于数据库管理系统,以
35、它为中介,与各种应用程序或应用系统接口,使之能方便地使用数据库中的数据。其实简单地说,数据库就是一组经过计算机整理后的数据,存储在一个或多个文件中,而管理这个数据库的软件就称为数据库管理系统。一般一个数据库系统(DatabaseSystem)可以分为数据库(Database)与数据管理系统(DatabaseManagementSystem,DBMS)两个部分。主流的数据库软件有OraCIe、InfOrniix、SybaSe、SQ1.ServerPostgreSQ1.sMySQ1.AccessFoxPro和Teradata等等。数据库在Web开发中的重要地位归根结底,动态网站都是对数据进行操作,
36、我们平时浏览网页时,会发现网页的内容会经常变化,而页面的主体结构框架没变,新闻就是一个典型。这是因为我们将新闻存储在了数据库中,用户在浏览时,程序就会根据用户所请求的新闻编号,将对应的新闻从数据库中读取出来,然后再以特定的格式响应给用户。Web系统的开发基本上是离不开数据库的,因为任何东西都要存放在数据库中。所谓的动态网站就是基于数据库开发的系统,最重要的就是数据管理,或者说我们在开发时都是在围绕数据库在写程序。所以作为一个Web程序员,只有先掌握一门数据库,才可能去进行软件开发。二、需求分析2.1系统功能概述1.用户模块管理:用户登录、用户注册、用户的查询、添加、删除操作、2,页面模块管理:
37、页面菜单的展示、添加操作、修改操作、删除操作、3 .角色模块管理:用户角色列表的查看、删除等操作、4 .宠物列表模块管理:宠物信息的查看、添加、删除、预约就诊、查看病历操作、5 .宠物健康历史:宠物健康历史查看、添加、修改、删除操作、6,预约模块管理:预约模块查询、添加、删除、通过、不通过操作以及状态信息查看、7 .医生日期模块管理:医生日期的信息查看、8 .宠物日常健康模块管理:宠物的健康指南、健康标准的信息查看、修改、删除操作等、9 .宠物档案管理模块:宠物的数据录入、查看、修改等10 .医院信息管理:医院的公告信息管理以及制定宠物健康备注等操作2.2系统运行环境JaVaJDK1.8环境配
38、置、Java运行在idea软件上,数据库用mysql5版本数据库、数据库采用NacicatMysql可视化工具、基于主流的谷歌浏览器运行展示以及F12控制台调试样式、2. 4技术难点三、系统设计2.1 系统设计系统主要设计采用Java语言开发、采用springboot为后台框架、数据库框架采用mybatis、前端采用jqueryIayui框架等主要模块设计如下:1 .用户模块管理:用户登录、用户注册、用户的查询、添加、删除操作、2 .页面模块管理:页面菜单的展示、添加操作、修改操作、删除操作、3 .角色模块管理:用户角色列表的查看、删除等操作、4 .宠物列表模块管理:宠物信息的查看、添加、删除
39、、预约就诊、查看病历操作、5 .宠物健康历史:宠物健康历史查看、添加、修改、删除操作、6 .预约模块管理:预约模块查询、添加、删除、通过、不通过操作以及状态信息查看、7 .医生日期模块管理:医生日期的信息查看、8 .宠物日常健康模块管理:宠物的健康指南、健康标准的信息查看、修改、删除操作等、9 .宠物档案管理模块:宠物的数据录入、查看、修改等10 .医院信息管理:医院的公告信息管理以及制定宠物健康备注等操作11 .注销退出3. 3模块设计系统主要设计有:用户模块管理、页面模块管理、角色模块管理、宠物列表模块管理、宠物健康历史、预约模块管理、医生日期模块管理、宠物日常健康模块管理、医院信息管理和
40、注销退出等具体功能、每个模块有对应的功能、比如:添加、修改、删除、等功能设置。3. 4系统流程描述3.5项目源码架构BlphmfC:UsersAdministratorDesktopbishephr.ideaBisrcmainjavaEScom.phms0commonDiconfigEUcontroller口filterBlistenerDlmapperEBmodel口pojomservice口shiroButils0rPhmsAppk三resourcesEUerrorBhtmlEUmybatisEftmysqlEUstatic弟Iapplication.properties端Iconfig.
41、propertieslogback-spring.ml凰targetclassesgenerated-sources意.gitignore四、系统实现4.1程序主要类4.1.1用户实体类packagecom.phms.pojo;importjava.util.Date;publicclassUserprivate1.ongid;privateIntegerage;privateStringname;privateStringpassword;privateStringemail;privateStringidCard;privateStringidName;privateStringquali
42、fication;privateStringhospitalName;privateStringhospitalAddress;privateStringdepartment;privateStringinfo;privateStringimg;privateStringphone;privateStringaddress;privateDateCreateTime;4.1.4预约诊断类packagecom.phms.pojo;importjava.util.Date;publicclassDiagnosisextendsBaseBeanprivateprivateprivateprivate
43、1.ongid;1.ongpetld;1.onguserid;1.ongdoctorld;privateprivateprivateprivateStringStringStringStringinfo;name;doctorName;userName;4.1.4宠物类packagecom.phms.pojo;importorg.springframework.format.annotation.DateTimeFormat;importjava.util.Date;publicclassPetextendsBaseBeanprivate1.ongid;private1.onguserid;p
44、rivateStringname;privateDoubleweight;privateDoubleheight;privateStringtype;DateTimeFormat(pattern=yyyy-MM-ddHH:mm:ss)privateDatebirthday;privateStringimg;privateDatecreateTime;4.1.4菜单配置类packagecom.phms.pojo;publicclassPageprivateIntegerpageld;privateIntegerparentld;privateStringname;privateStringurl
45、;privateIntegerIeveIType;privateIntegerIevellndex;privateIntegerdeleteFlag;privateStringdesc;4.3系统功能主要实现模块截图4.3.1登陆页面登录地址:http:/localhost:8080/ssm_company_yg_sys/login用户输入账号和密码和登录进行登翥用户名:4.3.1登录关键代码:$.ajax(type:POST,async:true,默认true,异步data:param,dataType:,json,Ur1:/login”,success:function(data)USER
46、NAME_NOT_EXIST)if(data.result=success)window.location.href=/main;elseif(data.message=PASSWORD_ERRdata.message=else(Iayer.alert(用户名或密码错误icon:2);$(#name).val();$(,#password,).val(,M)Iayer.alert(登陆失败!请找管理员授权!,icon:2);,error:function()Iayer.alert索统错误,服务器正忙!,icon:2););0OverridepublicResultMaplogin(Stringusername,Stringpassword)/从SeCUrityUtiIS里边创建一个subjectSubjectsubject=SecurityUtils.getSubject();/在认证提交前准备token(令牌)UsernamePasswordTokentoken=newUsernamePasswordToken(username,MD5.md5(password);/执行认证登陆trysu