版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGEPAGEII过磅系统的设计与实现摘要随着社会的进步,技术的高速发展,新技术的出现以及旧技术的淘汰。使我们越发的意识到新技术的重要性。新技术目前已经在很大的程度上改变我们大多数人的工作生活习惯,放大到企业,其实新技术已经让很多企业焕然一新。不再是从前的人力所占比重那么大,如今的公司,更加看重于使用更少的人力,做更多的事。这样不仅节省了开支,还提高了工作的准确性。这一点尤其体现在过磅管理中。传统的过磅管理普遍存在很多问题,所以设计一个过磅系统对企业的发展具有极其重要的意义。这是一个记录车辆卸货前后记录的系统,辅助员工对过磅车辆的管理。同时管理员可以在本系统对操作人员和记录进行管理。系统使用了SSM框架技术尽最大可能减少操作上的失误而引发的一系列问题,并有多种审核功能模块。设计为B/S模式,使得系统方便管理,方便审查数据。使用本系统在操作简单的前提下大大简化了普通员工的工作难度,有助于以后对记录的核对。方便管理员对普通员工的管理。并且可移植性非常强,而且容易上手。关键词:过磅系统;SSM;B/S
DesignandimplementationofweighingsystemAbstractWiththedevelopmentofsociety,therapiddevelopmentoftechnology,theemergenceofnewtechnologyandtheobsolescenceofoldtechnology.Itmakesusmoreawareoftheimportanceofnewtechnology.Thenewtechnologyhaschangedtheworklifehabitofmostofustoagreatextent,enlargedtotheenterprise,infact,thenewtechnologyhasmademanyenterprisescompletelynew.It'snotasmuchaboutpeopleasitusedtobe,butit'smoreaboutdoingmorewithless.Thisnotonlysavesmoney,butalsoimprovestheaccuracyofthework.Thisisespeciallytrueinweighingmanagement.Therearemanyproblemsinthetraditionalweighingmanagement,soitisofgreatsignificancetodesignaweighingsystemforthedevelopmentofenterprises.Thisisarecordofthevehiclebeforeandafterunloadingtherecordsystemtoassiststaffinthemanagementofweighingvehicles.Atthesametime,theadministratorcanmanagetheoperatorsandrecordsinthissystem.ThesystemusestheSSMframetechnologytoreducetheseriesofproblemscausedbytheoperationerrorasfaraspossible,andhasmanykindsofauditfunctionmodules.DesignedforB/smode,makethesystemeasytomanage,easytoreviewdata.Usingthissystemgreatlysimplifiestheworkoftheordinarystaffonthepremiseofsimpleoperation,andhelpstochecktherecordslater.TofacilitatethemanagementoftheGeneralStaffoftheadministrator.Andit'sveryportable,andit'seasytouse.Keywords:Weighingsystem;SSM;B/S目录TOC\o"1-4"\h\z\u摘要 VII第一章绪论 11.1课题的选题背景 11.2项目开发的目标 2第二章开发环境和相关技术简介 42.1开发环境 42.2相关技术简介 42.2.1SSM简介 42.2.2JSP简介 62.2.3CSS简介 62.2.4JS简介 72.2.5Oracle简介 8第三章需求获取及分析 93.1项目可行性 93.1.1经济可行性 93.1.2技术可行性 93.1.3社会可行性 93.2需求分析 103.2.1功能需求 103.2.2性能需求 243.3业务分析 253.3.1普通员工业务流程概述 253.3.2管理员业务流程概述 26第四章概要设计 284.1系统体系结构设计 284.2系统功能模块结构设计 294.3系统功能模块设计 304.4数据库设计 314.4.1抽象数据对象 314.4.2数据库设计命名规范 324.4.3数据库逻辑结构设计 324.5项目类设计 37第五章详细设计和实现 395.1环境搭建 395.2系统具体实现 405.2.1用户登录 415.2.2用户管理 435.2.3车辆记录管理 465.2.4车辆进出厂登记 495.2.5一次记录打印 51第六章系统测试 536.1关于本系统的测试 536.2车辆记录查询模块测试 53总结 57参考文献 59致谢 61外文文献 62PAGEPAGE17绪论本章分析了当前的社会背景,考虑了种种影响因素。在此基础上确定项目的开发目标。章节内容包括了项目的选择背景,产生这个项目想法的原因,以及想要达到的效果。1.1课题的选题背景随着信息技术的日益发展,电脑等数字设备的普及,人们习惯于在电脑上办公。这样不仅提高了效率,还大大减少错误的发生。在一些企业购进材料时,以前纯手动录入不仅效率低下,而且错误时有发生。导致企业的效益一直受到影响,账户一直都有写纰漏。针对这个现象,很多企业决定引入一个称量系统,不但可以减少员工的工作强度,还能有效的保障正确性。这样对于企业的总效益会有很大的好处。而且在日新月异的今天,时代不断发展着,但同时,也有不少知识水平仍旧不高的人群。他们也在各个企业单位公司中工作,尤其是在使用过磅系统的用户,大多数知识水平有限。在充分的考虑了这一条件后,经过慎重的考虑,必须满足这一条件,就必须让系统在功能完善的同时,还需要做到操作上的简易,让刚开始接触这个系统,甚至是刚开始接触电脑的工作人员也可以达到对车辆入厂,车辆出厂,还有表单打印这一基本流程的实现。并且,在这一基础上,系统的一些恰到好处的提醒,帮助使用者不断能可以更加灵活的使用这个系统。大部分的化工企业都需要这个系统,他们进行的大量的进货。这一过程如果完全由工人一手记录,自己填写表单。太容易犯错,而且很不方便以后记录的查看。如果这个系统实现了,不仅解决了记录经常性出错,对应不上实际的库存,实际的支出。而且还可以解决管理员对每个员工工作的核实。高速发展的现代社会,电脑已经是非常的普及,相对应的就是使用电脑的人才也大幅度增加,基本人人都可以使用电脑进行基本的操作。在这样一个基础上,针对与目前还在现代化改造中的企业来说,这个系统就是一个非常大的契机。旧的过磅流程全是人为操作,每次进行核对的时候都会有较大的出入。不仅工人累,领导也不知道应该从何查起。在进行一些简单的询问后,发现大部分公司都有诸如此类的问题,而当我提出使用一个系统来辅助工作的时候,都表现出强烈的兴趣。但由由于现实问题,不能完全由电脑自动控制,因为这对于总工作人员的技术要求太高。在经过深思熟虑下,设计了这样一个过磅系统,很大程度上简化了工人的工作量,在记录方面使用数据库记录,准确方便查询。1.2项目开发的目标本项目意向与开发一个适合大众的系统,为了面向底层劳动者的项目开发。必须要满足功能完善,操作简单。现在B/S开发技术日益成熟,有助于一端控制管理,多端同时作业。本系统运用SSM框架,使系统的可扩展性和维护性很强。本系统要建立一个管理员随时查看货物入厂的单号,员工实时记录货车入厂卸货,和货车出厂的名单,并打印出相关数据。而且尽量减少人员的手动输入,避免发生人工上的错误,开发出一个精致的过磅系统。开发的时候必须多加思考使用者的感受,把自己放在使用者的位置上,换位思考。需要那些功能,哪些功能是多余的,哪些操作有些繁琐,或者是哪些操作过于简单,不能达到详细记录的目的,这些都是在开发的时候所必须要思考的。只有开发者认真思考了项目在开发完成之后达到的效果,才能不惧困难,克服重重难关,把项目做出来,做满意。当然,仅仅站在使用者的角度是不够的,因为使用者往往只关注到系统运行成功时的操作,显示等方面。而作为一个开发者,还应该认识到,一个系统的健壮性是十分重要的,比如在使用者无意的情况下进行了错误操作,导致系统崩溃。这样的系统是一个失败的系统。作为开发者,我就必须预先想到使用者有可能会犯的错误,比如在输入毛重的时候,输入的数字是负数,这就必须当时检测出来错误信息,并提示使用者输入错误,让使用者重新输入。或者是在输入毛重的输入框内,直接禁止负号的录入。这是输入方面的问题。还有就是在出库的时候,如果输入的皮重反而大于了车辆进入时的毛重,这也明显是错误了。所以系统必须在使用者输入皮重的时候进行一个检测,只有当皮重小于毛重才行,否则就会提醒使用者,在搞清楚是使用者输入的时候出错了,还是地磅坏掉了。诸如此类的问题有很多,本系统力在把所有的可能出现的错误全做一个完善的检测机制。让本系统在系统本身不出现错误的情况下,还能坚持其他硬件是否出错,或者是人为的操作是否出错。在系统完善后,并不代表系统生命的结束,反而是一个开始。所有的系统都是在开发完成的时候才是系统真正发挥作用的时候。本项目更是需要不断的完善,不断的维护。让系统随着时间长久的具备生命力。
开发环境和相关技术简介本章通过研究项目所要达到的功能,确定了项目的开发环境,并简要叙述了使用到的相关技术,对一些技术进行了简要的概括与介绍。2.1开发环境为了保证系统的正常运行,在此列出编写该系统时的环境,考虑到方便性与成本等等方面,使用的工具都是一些常使用的工具与环境。系统的软件环境主要包括开发系统所用的操作系统、开发工具等。本项目使用Win10系统开发,使用Oracle10g数据库,在Tomcat服务器上部署。使用的编程软件是Eclipse。具体内容如表2-1所示。表2-1软件环境表名称版本语种操作系统WindowsWin10简体中文数据库平台OracleOracle10g简体中文应用平台Tomcat8.0简体中文开发工具Eclipseeclipse-jee-oxygen-M5-win32-x86_64简体中文2.2相关技术简介本节将详细介绍过磅系统在开发过程中运用的SSM框架、JSP以及CSS、JS技术和优势。2.2.1SSM简介SSM框架,该框架是Spring和SpringMVC以及MyBatis的简称,该框架主要由Spring、MyBatis两个开源框架整合而成其中SpringMVC是Spring中的部分内容。常作为数据源较简单的web项目的框架。其中,Spring和SpringMVC关系是,Spring包含了SpringMVC,它的核心思想是控制反转(IoC),这是核心思想,也说明了Spring会代替我们手动new对象,因为手动的new会造成系统的高耦合,而Spring则很好的避免了这一个缺点,它帮助我们在项目运行时需要这个对象的时候,容器注入了它需要的对象。这也是Spring的精髓所在。而Mybatis是对JDBC的封装,这样使得使用者使用起来更加方便,系统更加安全。
Spring就像是整个项目中装配bean的大工厂,这个工厂是由七个模块组成,这些模块分别是核心容器,Spring上下文,SpringAOP,SpringDAO,SpringORM,SpringWeb,SpringMVC。其中核心容器是Spring的最基本也是最重要的功能,它的主要的组件是BeanFactory,而这个组件使用了控制反转。让程序优化。SpringAOP模块则是面向切面编程,面向切面编程的好处是可以在原本代码不变或者是很少的改变下,新加入一些很好的功能,或者完善之前的不是很完备的功能。Spring还包括了SpringWeb模块,这个模块简化了很多请求。还有SpringMVC,其中包含了大量的技术,在本项目中,重点使用了JSP视图技术,通过一些标签,实现了从JSP页面到Controller的传输,而且通过容器的封装,更加便捷,系统的冗余量也降到了最低。
Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地new一个对象,而是让Spring框架帮你来完成这些操作。SpringMVC在项目中拦截用户请求,它一共包含五个组件,分别是前端控制器,处理器映射器,控制器,视图解析器,视图。工作流程是,首先,用户发送请求至前端控制器,前端控制器接受到请求后交给处理器映射器,处理器映射器找到具体的处理器,可以在XML中具体配置,或者使用注解,然后生成处理器对象和处理器拦截器,然后会返回给前端控制器。后台的处理流程,粗略来说分为十一步,首先是用户发送请求到前端控制器,然后由再发送一个查询请求给处理器映射器,处理器映射器处理了这个请求后回再次交给前端控制器。这时候前端控制器发送一个执行的请求到处理器适配器,并交给处理器执行,通过每级的返回又到了前端控制器,这时候会交给视图解析器处理,生成视图给用户一个响应。如图2-1所示。图2-1SpringMVC处理流程2.2.2JSP简介JSP技术是软件开发工程师在使用Spring框架编写系统的时候,写前端最常使用的一种技术。JSP技术的好处有很多,其中最明显的莫过于JSP这个语言本身其实内置的就是JAVA语言,为什么说是内置,因为只要反编译一次就可以清楚的知道JSP底层是如何实现的。JSP的底层其实就是在HTML页面代码中,加入了JAVA语言。这对于JAVA开发工程师来说简单易懂,便于修改。所以在本系统中所使用的正是JSP技术。它可以使用很多方便的标签来决定JAVA代码的插入位置。而且JSP技术是一门现在已经十分完善的技术了。也是目前主流前端页面编写的技术。功能强大,可以实现动态页面,美化页面。同时,又因为它的底层也可以识别JAVA代码,所以在和后台关联的时候更是稳定。出现问题处理起来也是十分的方便。在编程结束之后,也很方便看效果,关联上服务器直接在Eclipse中就可以运行并改进代码。2.2.3CSS简介CSS的全称是CascadingStyleSheets,它可以用来定义网页的现实效果。可以解决HTML代码对样式定义的重复,并且有效的增加了后期样式代码的可维护性,并增强了网页的现实效果功能。简单一句话:CSS不仅将网页内容和显示样式进行了分离,而且提高了显示功能。可以说CSS是HTML的精髓。HTML的页面虽然可以表示出想要表示的内容,但现代人要求并不是这样一个低标准。尤其是作为脸面的页面显示上。如果一个公司仅仅使用了HTML编写公司的页面,那很明显是个差公司。CSS则很好的美化了那些普通的页面,所以,CSS可以说是页面编程中很重要的一份子。2.2.4JS简介JS是JavaScript的简称,在进行前端页面编程的时候,最常用的莫过于三个,分别是HTML、CSS然后就是JavaScript。其中HTML是给整个页面写必要的框架,而CSS则是润色这些框架,让页面变的好看起来,不至于那么死板,那么千篇一律。JavaScript的作用则是在CSS美化的基础上,让网页“动起来”。一个好看的页面可以吸引观看者的视线,已经达到了基本的要求,但是作为软件开发工程师,这样还远远不够。一个好看的页面只能让用户看,用户的参与感太低了,这样导致了用户在看完一次之后即使是再好看的页面也不会留下很深的感受。这时候,“交互性”就显得非常的重要了。JavaScript是一个可以让网页“动起来”的技术。在原本的HTML,CSS页面上加上JS技术,可以触发很多设定好功能。只有让用户参与进来才可以达到使用者身临其境的效果,所以JavaScript发展的非常快。在效果方面JavaScript已经算是出类拔萃了,然而,这并不是JavaScript如此火热的主要原因。一个好的技术,不仅仅需要在效果上的好,在软件领域里,只有一个技术可以广泛的使用才会大肆传播。JavaScript就是一个这样的技术,它可以在多个平台使用,这与它的跨平台性密不可分,而且它在任何系统中都可以运行,因为它使运行在浏览器上的,只要安装有浏览器,就可以在任何机器上运行。这份便利促使JavaScript在极短的时间风靡全球,并且经久不衰。但是,它也不是完美的技术,任何一个技术都不可能做到完美,而JavaScript的缺点就在它的安全性方面,相比与其他技术,因为JavaScript是运行在服务器上的,所以安全性相比与其他可以生成客户端的技术来说,安全性确实很低。所谓优点和弊端一定是共存的,本系统在考虑到后台进行安全性的保障后,很好的发挥了JS技术的优点。所以采取这门当下最为流行的技术。2.2.5Oracle简介该数据库是\t"/item/Oracle%E6%95%B0%E6%8D%AE%E5%BA%93/_blank"甲骨文公司的一款\t"/item/Oracle%E6%95%B0%E6%8D%AE%E5%BA%93/_blank"关系数据库管理系统。它用的是现在最为流行的c/s或b/s的体系结构的数据库之一。它是在数据库领域一直处于领先地位的产品。Oracle的优点有很多,我主要总结如下几点内容。首先,oracle可以保存大量的数据,并且前提是安全并且存取方便,这是oracle数据的一大特点,也是相比于其他数据库中最为显著的一个特点。还有就是oracle数据库在保存数据时的持久性,它不会在你忘了某个数据时存在丢失数据的情况,可以做到持久的保存大量数据。然后就是oracle数据库的数据可以共享性,这也是一种保证数据库记录安全的一种方法。然后就是数据上的可靠性,作为一个经营多年的oracle,在数据保存上是没有出错的,只要保存进去时是什么类型,具体数值是什么,在过了很久从新取出的时候,它还是原来那样,体现出了oracle数据库的数据可靠性。而且oracle数据库是一个具备完备关系的产品,首先它保证了访问的准则,以及视图跟新准则,也就是只要视图改变,那么与之对应的表中的数据也会改变。而且数据物理性和逻辑性独立。最后,使用Oracle能轻松的实现\t"/item/Oracle%E6%95%B0%E6%8D%AE%E5%BA%93/_blank"数据仓库的操作确保可以在保存车辆记录时的准确无误,以及持久化的保存,在以后想要查看车辆记录的时候可以准确的看到每一条信息。而且在保存员工的时候更加不能出错,一旦出错,在公司内会造成不可挽回了错误,而oracle数据库的数据安全性,数据可靠性等保证了保存的数据不会出错。
需求获取及分析本章在确定了使用的技术已经环境的搭建下,系统的分析的项目的可行性。对项目将来投入使用提供了可靠的保障。3.1项目可行性本项目的可行性分析,主要从三个方面进行分析。分别时从经济可行性,技术可行性和社会可行性三个方面来分析过磅系统项目的整体可行性,下面依次从上述的三个方面来依次分析过磅系统的可行性。3.1.1经济可行性本项目中用到的Eclipse开发工具是免费的,Tomcat服务器也是免费的,SSM框架技术是开源的,所以也不存在购买费用的问题。如果项目实施成功,能够使中小型工厂等提升整体的管理水平,该系统将会成为工厂企业管理二级单位的良好平台。3.1.2技术可行性项目中应用到的SSM技术已经是比较成熟的技术,其中前后端分离的设计思想更是符合过磅系统的设计,而且我对于这方面的知识掌握比较多,资料也比较丰富。更重要的是,在开发项目的过程中能够复习到很多学习过的知识,也可以发现自己遗漏的一些细节,综上所述,项目开发在技术上是可行的。3.1.3社会可行性首先,项目中用的的开发工具和技术都是开源的,不存在侵权。项目主要提供给居住地附近的工厂企业使用,不会触犯相关法律法规。其次,项目开发成功必然会方便这些工厂企业的生产和管理,给工厂企业提供一个好的生产资料管理平台,为普通员工提供一个简介操作平台。3.2需求分析基于过磅系统是一种集中统一规划的数据库管理模式。在对车辆进出厂,货物的管理,其实都是对车辆,货物信息的数据的管理。设计“过磅系统”的目的是利用系统,方便员工记录过磅信息,后台方便管理员核实信息。本系统的建成无疑会为工厂企业提供极大方便。3.2.1功能需求功能需求主要包括了系统功能的划分,系统功能的用例以及功能描述。针对不同的角色展开了详细的功能需求描述。该系统划分为普通员工部分和管理员后台管理部分。普通员工部分主要负责提供给普通员工登录,登记货车以及货物入厂信息、登记货车出厂信息,打印货物单据的功能。这些基本功能为了对应使用者的文化水平,设计中主要关注点在于使用时候的方便性,健壮性等方面。后台管理部分主要提供管理员管理普通员工,修改普通员工信息,新增员工,开除员工;查看员工工作情况,动态根据条件查看历史单据。在设计本模块的时候,考虑到管理员都应该具备相对高一些的文化水平,操作技术水平。所以本模块主要关注的方面是使用时的安全性,详细性等方面。系统功能用例主要围绕管理员、普通工作人员展开,不同的用户在该系统中扮演不同的角色,用户的角色划分限定了不同用户所能实现的功能。共同有的功能是登录模块和注销模块。管理员可以新增员工,查询登记记录,查看员工列表,开除员工,修改员工信息。普通员工可以填写入厂车辆登记,出厂车辆登记,查看目前在厂车辆信息和打印一次记录单据。具体的用例图如图3-1所示。图3-1系统功能用例图1.用户登录验证1)功能说明:用户登录系统时首先输入用户名和密码。提交后,系统通过搜索数据库验证用户输入信息的正确性。用户不存在或密码错误时,无法登录。登录成功时,跳转页面,并将用户信息放入Session中。2)参与者:普通员工、管理员(总称为用户)。3)管理员角色或普通员工角色进入登录页面,输入直接的账号和密码点击登录按钮进行登录。4)用例描述:在数据库中已经有某个员工的情况下,用户进入登录界面,输入正确的账号和密码,点击登录,成功进入相对应于角色的主界面,具体的用例描述如表3-1所示。表3-1用户登录验证用例描述用例编号:user-01用例名:用户登录验证执行者:用户前置条件:数据库里存在用户记录基本事件流:用户到达系统登录界面用户输入用户名和密码用户点击登录按钮其他事件流:验证用户密码是否正确提取用户角色编号异常事件流:用户不存在或者密码错误无法登录字段列表:用户名、用户密码、用户角色、用户名字、用户年龄、用户性别、用户爱好业务规则:管理员和普通员工的信息在一个表中,通过用户角色Role确定用户页面显示的链接非功能需求:无设计约束:无2.管理员查询登记记录1)功能说明:管理员可以选择默认所以信息,直接查询,可以得到全部的记录,如果要按照某个字段查询,只要在自己想要限制的一个或多个字段填上想要筛选的内容,即可以查出符合条件的记录。2)参与者:管理员。3)管理员进行查询记录,在进入管理员主界面的情况下,点击上方导航栏进入界面,然后输入限制条件进行查询。4)用例描述:首先是在用户角色为管理员的情况进入界面,填写相应的限制条件点击查询按钮进行查询,系统显示查询结果,如表3-2所示。表3-2管理员查询登记记录用例描述用例编号:user-02用例名:管理员查询登记记录执行者:管理员前置条件:成功以管理员角色登录进入系统基本事件流:用户登录系统验证用户为管理员用户进入查询登记记录页面用户把想要筛选的记录填上希望得到的字段用户点击查询按钮在数据库中查找记录返回信息跳转页面到筛选的记录页面其他事件流:验证用户输入的字段异常事件流:输入非法字符筛选结果为空字段列表:ID、车牌号CARNUMBER、登记时间TIME、货物名称GOODSNAME、货物单价GOODSPRICE、毛重GROSSWEIGHT、皮重EMPTYWEIGHT、净重NETWEIGHT、送货公司名称COMPANY业务规则:进入该页面的角色必须是管理员角色,不然会被拦截器拦截跳到登录界面非功能需求:无设计约束:无3.管理员新增员工1)功能说明:管理员添加员工记录。2)参与者:管理员。3)管理员登录系统,进入员工管理界面,点击右上角处的新增员工,在新增员工界面录入员工的基本信息然后提交。4)用例描述:以管理员的角色登录系统,然后进入员工查看界面,点击界面右上方的新增员工,进入添加员工界面。录入新员工的信息,点击添加完成添加,如表3-3所示。表3-3管理员新增员工用例描述用例编号:user-03用例名:管理员新增员工执行者:管理员前置条件:成功以管理员角色登录进入系统基本事件流:用户登录系统验证用户为管理员用户进入新增员工页面用户添加新增员工信息用户点击添加按钮在数据库添加相应记录返回信息其他事件流:验证用户输入的字段异常事件流:输入非法字符添加失败字段列表:empID、密码empPwd、员工名empName、职位role、年龄age、性别gender、兴趣描述hobby业务规则:进入该页面的角色必须是管理员角色,不然会被拦截器拦截跳到登录界面非功能需求:无设计约束:无4.管理员开除员工1)功能说明:管理员删除员工记录。2)参与者:管理员。3)管理员登录进入系统,进入员工管理界面,在对应员工一行的操作列上点击删除。4)用例描述:管理员角色成功登录系统,在系统判断角色是管理员的情况下进入员工列表的界面,在员工列表上有操作的列,点击删除完成操作,如表3-4所示。表3-4管理员开除员工用例描述用例编号:user-04用例名:管理员新增员工执行者:管理员前置条件:成功以管理员角色登录进入系统基本事件流:用户登录系统验证用户为管理员用户点击人员管理进入员工列表页面用户选择员工删除在数据库删除相应记录返回信息其他事件流:异常事件流:删除失败字段列表:业务规则:进入该页面的角色必须是管理员角色,不然会被拦截器拦截跳到登录界面非功能需求:无设计约束:无5.管理员查看员工列表1)功能说明:管理员查看所有员工记录。2)参与者:管理员。3)管理员登录,进入员工管理界面,显示员工信息。4)用例描述:管理员进入系统成功验证为管理员角色后会进入管理员主界面,然后会显示出员工信息,流程如表3-5所示。表3-5管理员查看员工列表用例描述用例编号:user-05用例名:管理员查看员工列表执行者:管理员前置条件:成功以管理员角色登录进入系统基本事件流:用户登录系统验证用户为管理员用户点击人员管理在数据库查询相应记录跳转到员工列表其他事件流:异常事件流:字段列表:EmpID、密码empPwd、员工名empName、职位role、年龄age、性别gender、兴趣描述hobby业务规则:进入该页面的角色必须是管理员角色,不然会被拦截器拦截跳到登录界面非功能需求:无设计约束:无6.管理员修改员工信息1)功能说明:管理员修改员工记录。2)参与者:管理员。3)管理员首先登录系统在员工管理界面对应员工上点击修改然后提交。4)用例描述:执行者是管理员,在管理员进入系统后可以看到员工列表,点击员工后面的编辑,修改员工信息,点击保存。如表3-6所示。表3-6管理员修改员工信息用例描述用例编号:user-06用例名:管理员查看员工列表执行者:管理员前置条件:成功以管理员角色登录进入系统基本事件流:用户登录系统验证用户为管理员用户点击人员管理跳转至员工列表用户点击编辑用户输入修改信息在数据库更新相应记录返回信息其他事件流:异常事件流:字段列表:EmpID、密码empPwd、员工名empName、职位role、年龄age、性别gender、兴趣描述hobby业务规则:进入该页面的角色必须是管理员角色,不然会被拦截器拦截跳到登录界面非功能需求:无设计约束:无7.管理员查询登记记录1)功能说明:管理员查询所有过磅车辆记录。2)参与者:管理员。3)管理员登录,进入车辆记录界面,输入合适的条件,点击查询按钮,系统显示结果。4)用例描述:首先用户角色必须是管理员,然后在上方导航栏进入车辆记录的查询页面,输入限制条件,点击查询后系统会显示出符合的结果。如表3-7所示。表3-7管理员查询登记记录用例描述用例编号:user-07用例名:管理员查询登记记录执行者:管理员前置条件:成功以管理员角色登录进入系统基本事件流:用户登录系统验证用户为管理员用户点击查询信息默认提交在数据库查询所有车俩过磅记录返回信息用户输入车辆信息在数据库查询该车辆车俩过磅记录返回信息其他事件流:异常事件流:字段列表:编号ID、车牌号CarNumber、货物名goodsName、入厂时间time、货物价格goodsPrice、净重netWeight、公司company、货物总价业务规则:进入该页面的角色必须是管理员角色,不然会被拦截器拦截跳到登录界面非功能需求:无设计约束:无8.员工填写入厂车辆登记表1)功能说明:员工输入车辆进厂时信息。2)参与者:员工。3)普通员工进入系统,首先进入入厂登记界面,填写相应的信息,点击入厂。4)用例描述:用户登录系统,系统验证用户角色是普通员工,进入入厂登记界面。用户输入相应入厂车辆的信息,点击入厂完成操作。流程如表3-8所示。表3-8员工填写入厂车辆登记表用例描述用例编号:user-08用例名:管理员查看员工列表执行者:员工前置条件:成功以员工角色登录进入系统基本事件流:用户登录系统验证用户为员工点击车辆进入进入填写入厂车辆登记表页面员工输入相应信息在数据库添加相应记录返回信息其他事件流:异常事件流:添加信息失败字段列表:车牌号CarNumber、货物名goodsName、入厂时间time、货物价格goodsPrice、毛重grossWeight、公司company业务规则:进入该页面的角色必须是管理员角色,不然会被拦截器拦截跳到登录界面非功能需求:无设计约束:无9.员工查看入场所有车辆1)功能说明:查看所有在厂车辆信息。2)参与者:员工。3)普通员工登录系统,进入车辆出厂页面,系统赛选在厂车辆。4)用例描述:员工进入系统,在导航栏上点击车辆出厂。如表3-9所示。表3-9员工查看入场所有车辆用例描述用例编号:user-09用例名:员工查看入场所有车辆执行者:员工前置条件:成功以员工角色登录进入系统基本事件流:用户登录系统验证用户为员工点击车辆驶出在数据库查询所有车辆入厂记录返回信息跳转至显示入厂车辆页面显示其他事件流:异常事件流:查询记录失败字段列表:车牌号CarNumber、货物名goodsName、入厂时间time、货物价格goodsPrice、毛重grossWeight、公司company业务规则:进入该页面的角色必须是员工角色,不然会被拦截器拦截跳到登录界面非功能需求:无设计约束:无10.员工填写出厂登记表1)功能说明:填写皮重信息。2)参与者:员工。3)普通员工登录进入系统,然后进入车辆出厂界面,输入车辆出厂信息点击出厂并生成单据完成流程。4)用例描述:普通员工登录进入系统,然后进入车辆出厂页面,为要出厂的车辆填写上皮重,点击出厂完成操作。如表3-10所示。表3-10员工填写出厂登记表用例描述用例编号:user-11用例名:员工填写出厂登记表执行者:员工前置条件:成功以员工角色登录进入系统且进入入厂车辆显示界面基本事件流:员工添加皮重信息数据库中添加车辆皮重信息返回信息其他事件流:无异常事件流:添加信息失败字段列表:皮重emptyWeight业务规则:无非功能需求:无设计约束:无11.员工导出表单提供打印服务1)功能说明:导出车辆过磅信息。2)参与者:员工。3)普通员工登录系统进入车辆出厂界面,填写好出厂信息点击出厂并生成单据,系统根据车辆信息,完成单据的生成。4)用例描述:普通员工成功登录系统,点击车辆出厂,输入信息,点解出厂,生成单据,流程如表3-11所示。表3-11员工导出表单提供打印服务用例描述用例编号:user-12用例名:员工表单表单提供打印服务执行者:员工前置条件:员工成功填写出厂登记表基本事件流:员工点击出厂并生成表单数据库中查询该车辆过磅信息跳转到表单页面显示其他事件流:无异常事件流:无字段列表:编号ID、车牌号carNumber、登记时间time、货物单价goodsPrice、货物名称goodsName、货物总价、公司名称company业务规则:无非功能需求:无设计约束:无3.2.2性能需求性能需求大概可以分为三个方面,分别是精度,时间特性和适应性。1.精度方面本系统整体涉及的数据很多,系统中的每项操作基本都涉及到数据库的操作,查询登记记录,车辆入厂登记,人员查看等。总体来说,本系统在保证了一定的精度下还保证用户数据的安全性和准确性,对用户的使用提供了安全可靠的保障。2.时间特性方面本系统的数据库相对于在软件运行的时间方面不是很突出,数据操作和处理时间上比较一般,正是由于数据量比较多,在数据传输时间和系统运行时间上的表现不会太突出。但是也可以完全满足用户要求。3.适应性软件开发完成后,用户一般需要通过终端进行操作,进入主界面后点击相应的窗口,分别进入相应的界面(如输入,输出界面)。当用户需求,如操作方式,运行环境,结果精度,数据结构于其他软件接口等发生变化时,设计的软件要做适当调整,灵活性非常大。软件运行环境为WIN10操作系统,汉语编程系统。4.其它方面系统要求安全性较高,对恶意的操作可以及时的进行处理;用户界面友好;系统灵活性好,能够适应需求的变更,能够方便的进行功能扩展。3.3业务分析系统主要包括两种业务流程:管理员管理员工、登记表,普通员工登记进出厂。3.3.1普通员工业务流程概述普通员工输入账号、密码信息,登录到系统,选择入厂登记,在入厂登记页面中填写车牌号、毛重、公司名、货物类型等,点击提交,完成入厂登记。详见图3-2。图3-2员工业务流程3.3.2管理员业务流程概述管理员登录到系统后,对现有普通员工进行管理,添加注册普通员工、管理员,修改普通员工、管理员信息,删除等操作。查看工厂企业的货物记录等。请参见流程图3-3和图3-4。图3-3管理员审核用户业务流程图图3-4管理员修改用户信息业务流程图
概要设计本章对系统开发时的大体框架做简要介绍,意在确定项目的整体框架。以便于对项目整体的理解。4.1系统体系结构设计本系统采用了SSM框架,包括了JSP页面,SpringMVC,Spring,Mybatis和Oracle数据库,整体分为四个层次,分别是数据库层,DAO层,Service层,Web层。如图4-1所示。图4-1系统体系结构图整个结构体系是利用了SSM框架技术,首先用户访问JSP页面,这是前端用户交互的模块,获取使用者的操作信息,包括合法和非法操作。如果是非法操作,首先需要保证系统不会崩溃,在系统不会崩溃的基础上,对用户的错误,非法的操作做出提醒与警告。如果是合法的操作,那么用户的操作信息就会通过SpringMVC封装打包,并将用户提交的数据传入到Controller层,在这个层,是与用户交互最为密切的后台控制程序,包括了与用户操作基本吻合的一些方法,这些方法会调用Service层的方法,Service层的方法则是一定抽象后的复杂数据库操作相关的方法,这些方法再调用DAO层。其中,这些实例对象都是通过Spring容器注入的,大大降低了系统的耦合性,体现出Spring的强大功能。在DAO层使用了Mybatis框架,这个框架封装了JDBC的几大步骤,使关联数据库变得方便而且简单。同时,这个框架提供了自己写SQL代码的方式,虽然需要自己写,但是同时,可以自己优化SQL代码,使得在数据库操作时,可以尽可能的让数据库处理更加高效,不是死板的代码。SSM框架的集成度恰到好处,使得代码的编写,系统的开发更加高效。4.2系统功能模块结构设计过磅系统主要包括两个子系统:管理员系统,普通员工系统。其中管理员系统是管理员相关操作的模块,在登录时,验证登录用户的角色,只有角色时管理员时,才可以进入管理员这一模块。管理员模块内主要又包括了两大部分,一部分是对车辆的记录查询功能,另一部分是对人员的管理。车辆记录查询功能可以按照管理员填写的条件来查找符合条件的记录。而且可以查看全部的车辆信息,方便管理员的管理工作。人员管理模块则可以添加员工,为员工新注册一个账号。还可以查看和修改员工的基本信息,方便随时同步员工的个人信息,合适的安排各个员工的工作,同时,也有员工的删除操作,为了在员工离职后可以清除数据,防止数据库中存在过多的垃圾信息,即时的删除员工信息。登录时如果检查角色时普通员工时,进入普通员工的操作界面,普通员工包括车辆入厂的登记,车辆出厂的登记,单据的打印。而且考虑到普通员工的知识水平,所以系统尽量保证简易,入厂时必要的车牌号,货物种类以及毛重需要填写,其他设置为选填,只有在特殊情况下,才会改变货物的单价等。在车辆出厂时,考虑到如果车牌号输入错误,导致没有与之相对应的入厂记录。如果是出厂车牌写错可以改,但如果入厂时车牌写错,不仅不能改记录,而且不知道车辆入厂时的重量,单据无法打印等更加严重的问题。所以采用一种方法,在打算填写出厂车辆信息时,自动筛选出目前还在厂内的车辆信息,然后找到对应的车牌号,输入皮重,就可以完成整个入厂出厂的流程。最后自动计算出货物的重量,打出相应的单据。其中系统模块结构的设计如图4-2所示。图4-2系统的功能模块图普通员工系统主要是普通员工在浏览器上完成的功能,普通员工可以登记车辆打印自己登记的车辆信息,但不能查看其他员工和其他记录。普通员工输入登记信息后,经过系统审核放入数据库中。管理员系统可以对系统中的人员类进行管理,对登记的信息进行查看核实等。其中包括时间上,货物价位上的审核,员工的增加、删除和修改。4.3系统功能模块设计这是记录一条完整车辆信息的模块。员工在系统主页上点击登录后,输入用户名和密码,系统首先对员工进行验证。验证失败则要重新登录,登录成功后员工账号即可开始过磅记录操作。员工通过记录车辆入厂等级表,车辆出场登记表从而获得车辆过磅信息,导出车辆过磅清单车辆过磅。时序图如图4-3所示。图4-3员工操作时序图4.4数据库设计Oracle数据库系统是目前世界上流行的关系数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能,它是一个完备关系的产品,而且系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。oracle数据库作为一个分布式的数据库,完美的实现了分布式处理的功能,并且它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。4.4.1抽象数据对象根据业务及系统功能描述我们大致可以从中抽象出几个数据集合,如:人员(Employee)、车辆(Car)、货物(Goods)。4.4.2数据库设计命名规范1.表名命名规则更具主要数据模型将数据表分为人员表、目前在厂车辆表、完整记录表、货物类型价格对应表等。根据与同的数据模型命名。2.表项命名规则代表表名的单词或单词简写作为字段名的开头,命名中其他的单词或简写间用‘_’间隔。4.4.3数据库逻辑结构设计1.数据库逻辑设计数据库逻辑设计主要描述抽象数据如何在数据库中表示,以及抽象数据与数据库表之间的关系。其中包括数据库表、数据库表的详细设计、数据库表中数据的获取方式,数据库表与抽象数据类型的对应关系。数据库表一共有四个,分别是员工表,车辆出厂表,车辆入厂表和货物表。分别记录了员工信息与一些车辆信息,员工表记录了员工包括编号、姓名、职位和年龄等基本信息。通过车辆入厂表,车辆出厂表,货物表中的数据实现对货物重量和金额的计算。如表4-1所示。表4-1数据库表数据库表名中文名文字说明EMPLOYEE员工表记录员工信息ENDINSERT车辆出厂表记录车辆出厂时信息FIRSTINSERT车辆入厂表记录车辆入厂时的信息GOODS货物表记录货物信息2.数据库表E-R图数据库E-R图主要描述里数据库各个表之间的关系,该系统主要有员工表(Employee)、车辆表(Car)、货物表(Goods)。用户有爱好,账号,名字,角色,年龄,密码。用户可以对多条车辆记录进行修改。车辆包括序号,空重,总重,货物重量,货物类型车牌号,货物单价,供应公司,登记时间等。可以按照货物类型查找多条车辆信息,货物又包括货物名称和货物单价。如图4-4所示。图4-4数据表E-R图3.数据项该部分描述了数据库表中的字段以及字段的含义、字段类型、主键。其中包括员工ID,密码,姓名,角色,年龄,性别,爱好等,车辆又包括了车辆的编号,车牌号,入厂时间以及毛重皮重净重,货物的名称价格和提供货物的公司名称。车辆入厂表包括了车辆车牌号,货物名称,入厂时间,货物价格,毛重,公司名。货物表中有货物的名称和预先规定的货物价格。如表4-2所示。表4-2数据项表数据项编号数据项名称数据项含义存储结构备注员工D1-1EmpID员工IDVarchar2(20)主键(自增)D1-2EmpPwd密码Varchar2(20)D1-3EmpName员工姓名Varchar2(20)D1-4Role角色Varchar2(20)D1-5Age年龄NUMBER(10)D1-6Gender性别Varchar2(20)D1-7Hobby爱好Varchar2(20)数据项编号数据项名称数据项含义存储结构备注车辆出厂表D2-1ID编号Number(10)主键(自增)D2-2CarNumber车牌号Varchar2(10)D2-3Time出厂时间Date(7)D2-4GoodsName货物名称Varchar2(10)D2-5GoodsPrice货物价格Number(10)D2-6GrossWeight毛重Number(10)D2-7EmptyWeight皮重Number(10)D2-8NetWeight净重Number(10)D2-9Company公司名Varchar2(20)数据项编号数据项名称数据项含义存储结构备注车辆入厂表D3-1CarNumber车牌号Varchar2(10)D3-2GoodsName货物名称Varchar2(10)D3-3Time入厂时间Date(7)D3-4GoodsPrice货物价格Number(10)D3-5GrossWeight毛重Number(10)D3-6Company公司名Varchar2(20)数据项编号数据项名称数据项含义存储结构备注货物表D4-1GoodsName货物名称Varchar2(10)D4-2GoodsPrice货物价格Number(10)4.数据结构数据结构是数据项表中的数据的相互关联关系。车辆包括了数据项表的车辆车牌号,货物名称,入厂时间,货物价格,毛重,公司名。员工包括了员工ID,密码,姓名,角色,年龄,性别,爱好。货物包括货物的名称和预先规定的货物价格。如表4-3所示。表4-3数据结构表数据结构名称数据结构含义组成Employee员工D1-1,D1-2,D1-3,D1-4,D1-5,D1-6,D1-7Car车D2-1,D2-2,D2-3,D2-4,D2-5,D2-6,D2-7,D2-8,D2-9Goods货物D4-1,D4-25.处理逻辑描述该部分描述了对抽象数据所涉及的操作,用户信息处理功能包括对用户信息的增删改查的处理。货物称重信息处理包括记录车辆入厂信息和得到车辆出厂信息。如表4-4所示。表4-4处理逻辑描述表处理编号处理功能处理过程PR-1用户信息处理1:用户信息的增、删、改、查PR-2货物称重信息处理1:记录车辆入厂信息2:得到车辆出厂信息6.数据采集该部分主要描述了数据库表中的数据的获取方式员工表中,员工ID为自动采集,数据库中会自增,其他为人工采集。如表4-5所示。表4-5用户信息采集表功能名称:员工信息表存储位置:员工信息存储组织:一个员工一条记录主键:用户编号数据元素数据采集方式说明员工ID自动采集主键,自增1员工名人工采集必须输入密码人工采集必须输入职位人工采集年龄人工采集性别人工采集兴趣人工采集相关提供数据主要功能模块:员工管理数据输出接受主要功能模块:员工管理修改记录:车辆信息表中字段ID是自增,字段时间是自动采集,不需要人工输入,其余信息车牌号,时间,货物名等等需要手动输入。如表4-6所示。表4-6车辆信息采集表功能名称:车辆信息表存储位置:车辆信息存储组织:一个车一条记录主键:车辆编号数据元素数据采集方式说明ID自动采集自增1车牌号人工采集时间自动采集货物名人工采集货物价格人工采集毛重人工采集皮重人工采集净重自动采集公司名人工采集相关提供数据主要功能模块:车辆管理、货物管理数据输出接受主要功能模块:车辆管理修改记录:货物信息采集表中字段全是人为手动输入,预先设置常见货物的价格,名称等信息。如表4-7所示。表4-7货物信息采集表功能名称:货物信息表存储位置:货物信息存储组织:一种货物一条记录主键:数据元素数据采集方式说明货物名称人工采集货物价格人工采集相关提供数据主要功能模块:货物管理数据输出接受主要功能模块:货物管理修改记录:4.5项目类设计项目中主要类的命名规范:项目的包名统一是以com.dqw开头,比如controller命名就是com.dqw.controller,service就是com.dqw.service,DAO就是com.dqw.dao等等。com,dqw.controller包里面的类名命名为模型名+Controller,例如登录相关的命名为LoginController,其中包含了与登录相关的操作。Service层类名命名为模型+Service,例如登录相关的命名为LoginService。DAO层类名为模型名+Dao,例如登录相关的则为LoginDao。项目中com.dqw.controller层的类主要用来进行接收消息与页面跳转,具体设计(一部分)如图4-5所示。图4-5Controller类的设计项目中com.dqw.service层的类主要用来调用com.dqw.dao包内的方法来实现复杂的数据库操作,LoginService包含login()register()selectAllEmp()selectEmp()等,如图4-6所示。图4-6Service类的设计项目中DAO层的类主要用来进行简单的数据库操作,具体设计(部分)如图4-7所示。图4-7DAO类的设计
详细设计和实现本章是项目的详细结构设计,包括了详细的环境搭建和功能的具体实现。是项目细节的体现,包括了一些核心代码和详细描述。5.1环境搭建过磅系统采用SSM框架技术编写,com.dqw.bean包里主要是各种封装好的对象,有car,Employee,Gmon是工具包,有MyBatisSqlSessionF.dqw.service包中的类调用com.dqw.dao层的方法实现复杂的数据库访问。com.dqw.dao层是数据访问层,主要进行数据访问;com.dqw.controller是控制层,负责接收页面传来的数据,页面跳转等功能。erceptor是拦截器,负责拦截非法通过url访问页面的请求,只有登录过后才可以通过。Lperties是日志文件。Mybatis-config.xml是SpringMVC默认路径默认名字的配置文件。每个包中的类都使用了统一的命名规范,使用英文单词来表示某个类的作用,方便以后的查找修改工作,可以直接按照自己需要改写的内容找对对应的类。比如要修改或者是查看登录相关的类,在Controller层中可以直接找到com.dqw.controller包下的LoginController,在Service层可以直接在com.dqw.service包下找到名字为LoginService的类,在DAO层可以直接找包com.dqw.dao包,然后在该包下面找到LoginDao的接口文件和名字为LoginDao.xml的XML文件。修改或查看的时候就可以很方便的找到所以有关与登录操作相关联的类,非常的方便。框架图如图5-1所示。图5-1项目源文件分布图5.2系统具体实现系统的功能描述和模块设计已经在需求分析和概要设计中给出,现在只需要给出各模块功能的具体实现。5.2.1用户登录前台用户的登录用户在登录框中输入用户名和密码,提交给LoginController中的Login()方法进行处理,Login()方法中获取从JSP页面得到的用户输入的用户名和密码,包装为一个Employee对象,再调用service层的login()方法,根据用户名调用DAO层的方法访问数据库,首先查找是否存在该用户,然后判断用户输入的密码是否与用户表中的密码相同,最后将该用户的详细信息送入session中,并返回到主页。在具体运行界面如图5-2所示。图5-2前台用户登录效果相关的主要代码如下://根据url判断权限页面 //System.out.println("第一个拦截器preHandler1");//测试是否正常拦截 Stringurl=request.getRequestURI();//通过url判断当前访问的网址是否在角色的权限内。 //System.out.println("url:"+url); /*输出当前网址,测试用*/ Stringstring=url.substring(17,21);//截取有用的url //System.out.println("string:"+string);//测试用 HttpSessionsession=request.getSession(); Employeeemp=(Employee)session.getAttribute("user"); //获得当前用户 //普通页面 if((!"main".equals(string))&&(!"ordi".equals(string)))returntrue; //判断当前页面是管理员页面还是普通员工页面 try{ if("main".equals(string)){//管理员权限页面 if("管理员".equals(emp.getRole())) returntrue; else{//非法访问 System.out.println("第一个拦截器preHandler1不是管理员");//测试用 request.getRequestDispatcher("/WEB-INF/jsp/login.action.jsp").forward(request,response);//页面跳转到登录 returnfalse; } }else{//普通员工权限页面 if("普通员工".equals(emp.getRole())) returntrue; else{//非法访问 request.getRequestDispatcher("/WEB-INF/jsp/login.action.jsp").forward(request,response);//页面跳转到登录 returnfalse; } } }catch(Exceptione){ request.getRequestDispatcher("/WEB-INF/jsp/login.action.jsp").forward(request,response);//页面跳转到登录 returnfalse; }5.2.2用户管理管理员登录进入系统,然后选择进入用户管理界面。进入界面时拦截器先拦截,确定是正常途径访问页面,然后进入用户管理页面,同时调用com.dqw.service层、com.dqw.dao层查询出所有的用户,返回到jsp页面当中。用户管理页面有新增用户,每条用户记录后面有编辑、删除。编辑时先到数据库中查询出该用户的全部资料,显示到jsp页面中,修改完成后提交到数据库中。删除操作,执行数据库的该记录删除功能。管理员角色在登录系统中检查密码正确,跳转到人员管理页面,在跳转这条操作执行的Controller模块中,有一个方法,首先调用Service层中查找全部员工信息的方法,然后在由Service层调用DAO层的基本方法,执行相对应的SQL语句,查找所有的员工信息,在数据库中执行语句后,数据库会返回一个列表,这个列表包含了所有的员工信息,MyBatis框架获得这些信息,传给Service层,然后返回给Controller层,在执行页面跳转的同时,把这个列表封装到一个名字为mv的ModelAndView对象中,跳转后显示时,使用foreach遍历这个列表,显示在页面上,对应的该人员列表主界面如图5-3所示。图5-3人员管理主页面在进入管理员主页面后,显示有所有员工的编号,姓名等信息。在这个员工信息表格的右上角处,有添加员工的按钮,点击这个按钮后,该JSP页面传给Controller层一个请求,这是个跳转请求,收到这个请求后,Controller层的对应的类和方法,会直接跳转到添加用户的JSP页面。在这个页面中需要输入用户账号,用户密码,用户名字,用户年龄,用户权限,用户性别以及用户的个人爱好,以方便对新人的了解和管理。输入用户的信息后,如果发现有错误,可以点击下方的重置按钮,把上面的信息清空重新输入。输入正确的用户信息后,点击提交。JSP页面把表单信息传入Controller层,这个过程经Spring框架的封装,直接封装为一个Employee对象,然后Controller层把这个Employee对象传给Service层,Service层接收到Employee对象后,再把Employee对象传给DAO层,DAO层执行相应的SQL语句,把这个Employee对象写入数据库中。然后Controller层之前接收请求的方法中,执行跳转页面的操作,这个操作发送给同是Controller层的进入主页面的方法,会调用和上文所说的查询所有员工操作,之后再真正进入人员管理主页面。添加用户的JSP页面如图5-4所示。图5-4添加用户管理员身份登录系统后,如果要修改员工的信息,在图5-6的情况下,找到对应的人员,在操作一栏点击编辑,可以进入编辑界面,在点击按钮时会提交该行人员的信息到Controller层,通过Service层,调用DAO层Select方法查找该员工完整的个人信息,返回到将要跳转的页面中,然后跳转后,在跳转后的新页面,首先显示出该员工在数据库中保存的详细个人信息,对员工信息进行修改的话,在对应的输入框修改既可以,最后点击提交按钮,把修改后的员工信息保存到数据库,并替换掉原有的旧信息,对应的JSP如图5-5所示。图5-5用户编辑5.2.3车辆记录管理管理员角色登录进入系统主页面,然后进入车辆管理记录页面。按需填入限制条件,提交,显示符合条件的记录。管理员角色登录后点击查询信息,JSP页面发送给Controller层一个跳转页面的请求,这个请求只做跳转作用,所以在对应的Controller层的方法不会执行太多操作,直接返回跳转的操作,进入车辆记录查询的主界面,该页面有五个输入框,分别是车牌号,公司名,货物重量,货物单价,货物名称。输入相应的内容后,点击提交按钮,Spring框架把相对应的字段都封装保存到一个Car对象里,然后发送信息到Controller层,到了Controller层,首先会经过字段检测的环节,判断是否为合法字段,合法字段保留,如果判断为非法字段,就把空字符串赋值给非法的字符串,把0赋值给非法的数值。继续封装成一个Car对象。Controller层把这个Car对象传到Service层,之后再由Service层的综合查询的方法抽象为简单的查询方法,依次调用DAO层的方法,然后执行SQL语句,执行查询语句时判断条件时,使用or连接判断是否为空的语句,以此来实现若是用户不想限制的条件便不限制的方法。在数据库中查询之后,保存结果并逐层返回,然后跳转到结果显示页面。其中,车辆记录查询的主界面如图5-6所示。图5-6车辆记录查询主界面在得到数据库返回的列表信息后,创建ModelAndView对象,将得到的列表数据放入ModelAndView对象中,跳转到查询结果显示界面。该界面使用foreach遍历列表中所有的信息,把信息展示在页面上。这个页面显示的是所有已经出厂,也就是完成整个过程记录的车辆信息。包含多个字段,分别是车牌号,入厂日期以及时间,货物类型,货物单价,货物重量,货物总价,公司名称。该查询结果的JSP显示界面如图5-7所示。图5-7查询结果界面部分关键代码:查询功能com.dqw.dao层代码,这部分代码是管理员输入自己想要限制的货物记录的信息后,在com.dqw.dao层的XML文件中的详细代码,该代码虽然依次的限制了所有的条件,但是,在每个限制条件内都使用or连接了一条判断从JSP传来数据时,是否为空的语句,如果传来的是空那么就相当于该字段所有的记录都满足,也就相当于不限制这个字段。<selectid="selectCar"parameterType="Car"resultType="Car"> select*fromendinsert where(#{carNumber}isnullorcarnumber=#{carNumber}) and(#{goodsName}isnullorgoodsname=#{goodsName}) and(#{goodsPrice}=0.0orgoodsprice=#{goodsPrice}) and(#{time}isnullortime=#{time}
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生物-山东省淄博市2024-2025学年第一学期高三期末摸底质量检测试题和答案
- 《湖心岛产品分析》课件
- 《种成本比较分析》课件
- 八年级上册道德与法治第二课少年与梦知识总结
- 小学一年级20以内连加连减口算练习题1080道
- 《现代金融通论》课件
- 幼儿园周二食谱
- 高考新课标语文模拟试卷系列之76
- 《电子资源综述》课件
- 西安市销售员工作总结
- 科研伦理与学术规范-期末考试答案
- 数字后端工程师招聘笔试题与参考答案2024年
- 2024-2030年中国牛仔服装行业市场深度调研及发展策略研究报告
- 2024南京市商品房买卖合同书
- 数据中心灾难恢复预案
- 《电气检测技术》教学大纲
- 2024年医院全面质量管理方案
- 01685《动漫艺术概论》历年考试真题试题库(含答案)
- 【传统村落的保护与发展探究的文献综述8600字】
- 金属冶炼(铅、锌冶炼)主要负责人安全资格考试题及答案
- 2024-2030年中国船用燃料油市场供需趋势及竞争状况综合分析研究报告
评论
0/150
提交评论