基于SSM技术的农场管理系统设计与实现.doc
本科论文目 录摘 要IAbstractII引 言11 项目概述31.1 选题背景31.1.1 社会发展背景31.1.2 需求发展背景31.1.3 经济发展背景31.2 研究目的与意义31.3 国内外现状和发展趋势31.3.1 国内外发展现状31.3.2 国内外发展趋势41.4 本章小结42 技术简介52.1 开发语言52.1.1 JAVA52.1.2 JavaScript52.1.3 JSP52.2 前后台框架和技术52.2.1 Bootstrap框架52.2.2 Ajax52.2.3 Spring框架52.2.4 SpringMVC框架62.2.5 Mybatis框架62.3 数据库62.4 B/S架构62.5 本章小结63 系统分析73.1 系统可行性分析73.1.1 市场可行性分析73.1.2 技术可行性分析73.1.3 经济可行性分析73.2 系统需求分析73.3 系统功能结构分析73.4 本章小结84 系统设计94.1 系统设计目的94.2 系统功能描述94.3 系统功能模块设计94.4 数据库设计104.5 本章小结185 系统的实现195.1 数据库连接195.2 模块实现195.2.1 登录模块195.2.2 注册模块215.2.3 忘记密码235.2.4 员工信息管理功能245.2.5 效益分析功能255.3 本章小结266 系统测试276.1 登录测试276.2 注册测试286.3 员工管理测试296.4 本章小结30结 论31致 谢32参考文献33本科论文摘 要 科技在发展,社会在进步,互联网以及计算机技术被推到了风口浪尖。作为发展中国家,在这场无硝烟的信息时代的战争里,农场管理遇到了前所未有的机遇和挑战。中国是农业大国,社会的稳定与农业的稳定发展,农产品及副产品的可获得性密切相关,这与逐步提高人们生活水平的基本趋势相适应。我国农场管理现状繁杂,农田权属在于农民,集中统一管理困难,同时,各项收支统计有难度。因此高效、快捷的农场管理系统对提高我国农场的工作效率与服务水平不可缺少。 本课题拟设计的农场管理系统是为了改变传统的农场作业方式,提高农场管理的信息化水平而设计的。我们使用的开发环境为Eclipse,通过用Java语言来编写该农场管理系统,其主要包括前端和后台的开发与后台数据库的创建与维护。其中主要使用H5和CSS3进行前台界面的设计,后台主要使用SSM框架技术进行框架的搭建,管理数据选用MySQL进行制作数据库。农场管理系统将计算机技术和数字化应用与农业生产相结合,充分利用计算机技术的优化配置作用,使农场管理趋于系统化、结构化、产业化,对农业生产、经济发展以及国家对农业管理制度的完善具有巨大的促进作用。关键词:农场管理系统;SSM框架;Java Abstract Technology is evolving, society is advancing, and the Internet as well as computer technology is being pushed to the windswept edge. As a developing country, farm management faces unprecedented opportunities and challenges in this war in the smoke-free information age. As a large agricultural country, the stability of society is closely linked to the stable development of agriculture and the availability of agricultural products and by-products, which is in line with the basic trend of gradually improving people's living standards. At present, the situation of farm management in China is more complex. The ownership of farm land is in the hands of farmers, so it is difficult to centralize and unify the management. At the same time, it is difficult to count the income and expenditure. Therefore, in order to improve the working efficiency and service level of farms in China, efficient and efficient farm management system is essential. The farm management system proposed in this project is designed to change the traditional farm operation methods and improve the information level of farm management. We use the development environment for Eclipse, through the java language to write the farm management system, its main back-end database creation and maintenance and front-end and back-end development. The front-end of the system mainly uses H5 and CSS3 for the design of the front-end interface, and the back-end mainly uses SSM framework technology for the framework construction, management data selection MySQL for database production. The farm management system combines computer technology and digital applications with agricultural production, making full use of the optimal configuration of computer technology, so that farm management tends to be systematic, structured and industrialized, which has a great role in promoting agricultural production, economic development and the improvement of the country's agricultural management system.Keywords: farm management system; SSM framework; java引 言随着网络技术的发展,互联网在全球范围内得到了广泛的应用,而我们的社会也在向信息化社会发展,信息系统所起的作用也是愈来愈大。中国历史悠久,同时它也是一个农业大国,农业在促进经济发展的过程中起到了很大的作用。在21世纪,中国进入了重要的时期,要走中国特色农业现代化和信息化的道路。在我国,生产力水平在不断提高,同时小农生产的局限性也慢慢的显现出来,比如耕地不集中,比较零散,生产工具比较落后和增产速度慢等,这些问题不可避免的成为农业现代化发展的障碍。小农生产文化层次和技术水平较低,经营范围单一和管理不完善是制约农业发展的主要原因1。小农生产收支落差大,收不供支,这一缺陷使得以科技技术管理的生产方式不断得到重视,而传统的人力劳动管理方式被淘汰,这样就能以低人力资本和资金投入来获取高利润,形成集约化生产模式。当前,我国正在处于一个转变时期,就是从人力管理(传统)农业向数字化管理(现代)农业的转变。传统农业依靠人力管理,成本高,收益低。而数字化现代农业利用信息技术,提高了其经营管理水平,降低农资的消耗,降低生产成本,并提高农场收益。本文的主要工作就是为了满足一些农场主的需求,其中本文具体的描述了该系统的功能有哪些,从项目背景到技术,从分析到设计再到实现,最后再到系统的测试等一系列的操作,能够让用户清楚地了解到本系统从选题到完成再到使用的全过程。在完成该项目的过程中我们需要掌握前端H5的知识和Eclipse开发环境,掌握SSM框架是如何搭建的,掌握JavaScript技术,以及我们需要了解数据库是如何搭建的。本文第1章是做项目的前提,主要描述项目的研究背景、目的与意义。 第2章主要是讲在该系统中主要使用到的技术,阐述了它们的优缺点以及它们的特点。第3章主要是阐述对系统的分析,包括市场、技术和经济可行性分析,以及对系统的需求分析。第4章主要针对系统的设计进行说明,其中包括系统功能与数据库表的设计。第5部分是对系统如何实现进行阐述,其中包括数据库的实现以及主要功能的实现,并对实现后的界面进行截图和主要代码的描写。第6部分主要是对系统进行测试,并不是对整个系统进行测试,而是随机选取了几个模块进行测试,其中包括了登陆模块的测试和注册模块的测试以及员工管理模块的测试。 目前现代农场管理水平和产能的提高与SSM农场管理系统的出现密不可分。同时,农场管理模式也在其的影响下发生了翻天覆地的转变,其未来价值不可估量。1 项目概述1.1 选题背景1.1.1 社会发展背景 经过20多年时间的发展,农场在全国范围内快速地发展起来,它有助于提高城乡居民生活水平,满足他们户外游憩、回归自然的良好愿望2。2004年,为了推动全国农业旅游的发展,国家旅游局对全国农业旅游示范点进行了评选,其中共选出203个农业旅游示范点3。1.1.2 需求发展背景 在体验经济时代,现在的旅行者已经逐渐不再满足传统意义上的观光旅游,而是把精神体验作为旅行的终极目标追求精神体验。据不完全的统计,外国观光旅游在旅游总体所占比例不到百分之三十,而休闲特色旅游则占到70%以上4。1.1.3 经济发展背景 随着人们生活水平的提高以及文化水平成都的上升,娱乐至上的生活方式深入人心,人们生活中的娱乐方式较之从前也有了很大的改变。根据国家统计数据表明,2010年我国的人均GDP已经突破了4000美元5,人们的消费方式组件向娱乐方向倾斜。生活结构层次形成多样化。1.2 研究目的与意义 我国是农业大国,而不是农业强国。社会的稳定离不开农业的稳定发展以及与人们生活水平相适应的农、副产品的提供。将数字化管理与农场管理结合,使互联网的管理优势在农业生产管理中得以充分体现。加速我国从传统农业到现代信息化农业发展方向转变。1.3 国内外现状和发展趋势1.3.1 国内外发展现状(1)国外发展状况 法国在1953年的时候成立了法国农民协会,并在1988年成立了“农业及旅游接待服务处”6。法国现代农场出台众多有关农业发展的政策,加大农场旅游的宣传,大力支持农民农业生产与旅游文化结合的各种项目。 以1865年意大利成立的“农业与旅游协会”为例,将城市与乡村结合。意大利现代农场最明显的特点就是将政府的干预机制和市场经济相结合起来共同发展乡村旅游。 日本的农业在很早之前就发展起来了,各个地区的农业经营者纷纷成立了协会,各个地区的农场以独特的方式结合了生产。在日本农场还有各式各样、稀奇古怪的农用机械的农具展览馆,参观者可以通过这些了解农业的发展历程和学习农机的相关知识。(2)国内发展状况农场投资期长,回本慢。经营方式落后。内部运营机制不成熟。没有制定长远规划。政府在农场的发展中存在越位或者缺位行为7。农业基础建设方面薄弱,人才资源不足明显。1.3.2 国内外发展趋势 国内发展趋势 中国的农场积极并且有条理地执行土地承包责任制,扩大农场生产管理规模,合理使用土地资源实现生产最大化。或者出租部分农场的可发挥土地进行经营,建立收购农副产品的市场,并直接将农户与农场的经济利益联系起来,从而调动农户的积极性9,这样可以提高农场的工作效率和农业市场的综合竞争力。 国外发展趋势以西方发达国家为代表的现代农业在已有的基础上获得了新的更大的发展,它明显的呈现出五个主要趋势10:生产的高科技化、结构的高级化、产品的高加工化、经营的一体化、发展的可持续化。1.4 本章小结本章主要讲述了我国农业的发展历程,讨论了我国农业经营方式存在的不足之处。介绍了当前法国,意大利,日本在农场方面的发展情况,阐述了在农业现代化和信息化的背景下,我国从传统化农业转为现代农业的必要性,以及农场管理系统被提出的重要性。中国迫切需要类似的管理系统提升农业软实力。2 技术简介2.1 开发语言2.1.1 JAVA Java是一种软件开发技术框架,它简单、安全可靠,具有最广泛的应用领域和软件开发市场11。2.1.2 JavaScript JavaScript语言是一种解释性编程语言,源代码在发送给客户端执行之前不需经过编译,而是将文本格式的字符代码发送给客户编由浏览器解释执行12。2.1.3 JSP JSP可以生成简单的页面,与java平台密不可分,并且硬件平台和服务器联系不大,具有较强的拓展性和高效性,以及它可以进行隐含处理13。2.2 前后台框架和技术2.2.1 Bootstrap框架Bootstrap是一个基于HTML、CSS和JavaScript 开发的前端开发框架,能不断适应web技术的发展14。它比较成熟,拥有完善的文档,使用起来比较的方便。它还提供了非常丰富的组件与插件,并能接受定制Error! Reference source not found.。2.2.2 AjaxAjax是一种web开发技术,无需重新加载整个网页,通过向服务器端发出异步请求,然后使用DOM更新由DIV标记的网页中的内容16,在前端页面和后端服务器之间实现少量数据交换,它允许部分页面更新,而无需刷新整个页面17,这意味着它可以部分更新。大大改善了用户体验。2.2.3 Spring框架SSM框架集由开源框架Spring和MyBatis整合而成。它包括表示层、控制层、服务层和数据访问层18。Spring是一个开源框架,是21世纪初开发首批框架之一,但是随着时间的推移,出现了其他具有很多种优势的框架,但是Spring框架的流行仍然持续到2018年19。更重要的是,Spring是非侵入式的,基于Spring系统应用中代码没有太多的依赖20。另一点是,它的分层架构也是Spring被广泛应用的原因,它不限于服务器端的开发。2.2.4 SpringMVC框架 Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面21。可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架进行web开发。2.2.5 Mybatis框架作为一款突出的持久层框架,MyBatis的操作是以一个实例为中心来运行的。MyBatis与每个实体类的Mapper文件联系的桥梁是配置文件,Mapper文件配置每个类所需SQL语句映射到数据库。按照sqlSessionFactory实例获取sqlSession,而后再执行sql命令的顺序与数据库交互。2.3 数据库MySQL是一种关系型数据库管理系统,使用结构化查询语言进行数据库管理22。它的优点在于服务比较稳定,并且代码是开源的,体积相对比较小,安装方便,最重要的是它支持多种的操作系统。2.4 B/S架构B/S架构即浏览器/服务器结构23。它将功能的实现主要放在了服务端,而在客户端只需一个WEB服务器即可,客户端通过前端请求WEB服务器,再通过WEB服务器调用数据库服务器来完成数据的传输以及功能的实现24。B/S架构图如下图2.1所示。图2.1 B/S架构图2.5 本章小结本章主要讲述了本文所提管理系统的核心技术,其中包括Spring、SpringMVC、MyBatis、Ajax、JSP、MySQL,从开发语言到框架再到数据库都有详细地讲述。阐述了它们的特点。3 系统分析3.1 系统可行性分析3.1.1 市场可行性分析 我国在世界的地位不断上升,经济飞速发展,人民对提高生活质量以及精神文化水平迫切需求,生活方式也大大改观,由以前的艰难出行变为现在随时可以有一场说走就走的旅行。人们对传统的旅游的兴趣也随之不断下降。再加上时间成本和经济成本逐渐增加,人们越来越更加倾向于在周末旅游或短途旅行。3.1.2 技术可行性分析 该系统主要采用java技术和mysql数据库设计,包括二十多个的数据表,并对SSM框架进行搭建。整个系统以网站的形式体现,前台界面通过Hbuilder进行绘制,其中涉及HTML、CSS、JQuery、JavaScript技术。通过ECharts将数据可视化。3.1.3 经济可行性分析 经济可行性分析主要是为了保证项目的顺利进行,首先对项目的经济可行性进行分析,可以在编写系统的时候对所需的费用进行一个大概的预测,从而避免在制作系统的过程中产生不必要的麻烦。对经济进行可行性分析主要是对所需软件和硬件设备进行详细的分析,而本系统所需要的硬件就是一台i5以上的电脑,内存8G以上,而软件主要是使用Eclipse,HBuilder和MySQL。软硬件设备都已经具备,因此所需的资金投入并不是很大。3.2 系统需求分析随着互联网的迅速发展,网络已经深深地影响到人们的生活,人们越来越喜欢依赖网络来满足自己的需求。另外,传统的农场管理已经不能满足现在一部分人的需要,而利用网络的农场管理,可以为农场主提供各项服务,能够更快更精准的管理农场,因此深受人们的喜爱。3.3 系统功能结构分析 根据农场管理系统的实际需求,可以将农场管理系统划分为员工管理、统计分析、农资管理、效益分析、和土地管理等模块。功能结构如下图3.1所示:图3.1 农场管理系统功能结构图3.4 本章小结本章节主要讲述了在编写后台代码之前对系统进行的一个分析,其中不只是有对需求上的分析,还有对系统的可行性以及技术,市场和经济的可行性的分析,通过对系统的全面分析,可以确定是否能将系统进行代码的编写,系统能否在可行性的基础上进行实行。4 系统设计4.1 系统设计目的 该管理系统的目标是实现农场主对农场的一个管理,可以为农场提供员工管理、统计分析、农资管理、效益分析、和土地管理等服务。能够更快更精准的管理农场。4.2 系统功能描述第一部分首先是对农场员工的基本信息的一个管理,农场主进入系统可以对员工基本信息进行增删改查的操作,当农场有人员的变动时,农场主可以及时的对员工信息进行相应的操作。第二,可以对农资进行法管理,在农资管理模块中,农场生产资料的采购,使用等,让库存数量更加的清晰透明,方便管理者的查看,让生产更加的高效。第三是土地管理模块,我们可以通过对土地的管理,将农场的土资源进行合理的规划。让农场管理人员无论何时何地都能及时的管理农场,跟进生产进度。第四是统计分析,统计分析模块可以查询某种农作物或者植物的生产数据,财务数据等,其中包括某种农作物或者植物的种植面积,种植的数量,收获的数量等数据,为管理者提供数据支持。第五是效益分析,通过管理者查询某种农作物或者植物近几年的数据,可以计算得出农作物或者植物在近几年收获效益的变化,生成的折线图可以更加的简单明确,让管理者无论何时何地都可以将农场一览无余。4.3 系统功能模块设计 1)、员工管理模块:在对农场人员的管理中,我们首先需要对农场员工的基本信息进行管理,其中的基本信息大概有姓名、性别、电话号码,家庭地址之类的。并且农场主可以通过查询农事记录表来查看员工的工作状态,根据反映出来的结果可以作为员工的绩效考核得依据,让农场主对农场的管理更加的简便清晰。 2)、统计分析模块:统计分析模块可以查询某种农作物或者植物的生产数据,财务数据等,其中包括某种农作物或者植物的种植面积,种植的数量,收获的数量等数据,为管理者提供数据支持。 3)、农资管理模块:农场生产资料的采购,使用等,让库存数量更加的清晰透明,方便管理者的查看,让生产更加的高效。 4)、效益的分析:通过管理者查询某种农作物或者植物近几年的数据,可以计算得出农作物或者植物在近几年收获效益的变化,生成的折线图可以更加的简单明确,让管理者无论何时何地都可以将农场一览无余。 5)、土地管理模块:我们可以通过对土地的管理,将农场的土资源进行合理的规划。4.4 数据库设计数据库是管理和存放相关数据的仓库Error! Reference source not found.,我们经常听到的数据库有很多,例如Oracle,MySQL,SqlServer,postgreSQL等,在该系统中所用的数据库为MySQL Workbench 6.3。在本系统中总共用到了20张表,整体如下表4.1:表4.1 总体表表名CROPS解释植物信息表ATTENDANCE员工出勤记录表ENVIRONMENT环境表WORKRECORD农事记录表FERTILZER 肥料表PLANT种植表HARVEST收成表LOCATION土地使用ORDER订单表LOGINS登录表MATERIAL材料表BENEFIT利润WOEKTYPE工作类型CROPSTYPE植物种类PRODUCE人均产出表ITEMS商品表SALARY工资表STAFF员工信息表STOCK库存表PURCHASE进货表 ER图也称实体-联系图,提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。 ER图作用主要体现在十点:描述现实世界关系概念模型的有效方法。表示概念关系模型的一种方式。用“矩形框”表示实体型,矩形框内写明实体名称;用“椭圆图框”表示实体的属性,并用“实心线段”将其与相应关系的“实体型”连接起来;用“菱形框”表示实体型之间的联系成因,在菱形框内写明联系名,并用”实心线段“分别与有关实体型连接起来,同时在”实心线段“旁标上联系的类型。本系统的ER 图如下图4.2所示图4.2 系统ER图下面对主要的几个表进行描述:1.利润表主要是对管理农场所得的利润,其中主要字段有月份,肥料,材料,植物,收获,购买,收入以及利润。如表4.3所示。表4.3 利润表是否主键字段名字段描述数据类型长度可空是MOUTH月份VARCHAR(45)45FERTILIZER肥料INT(11)11是MATERIAL材料INT(11)11是PLANT植物INT(11)11是HARVEST收获INT(11)11是PURCHASE购买INT(11)11是INCOME收入INT(11)11是AGRICULTURALCOL2agriculturalcol2VARCHAR(45)45是AGRICULTURALCOL2agriculturalcol2VARCHAR(45)45是AGRICULTURALCOL3agriculturalcol3VARCHAR(45)45是2.员工出勤表主要是记录员工的出勤情况,其中主要字段有id值,员工id,日期,地址,以及员工出勤天数。如表4.4所示。表4.4 员工出勤记录表是否主键字段名字段描述数据类型长度可空是IDIdINT(11)11STAFFID员工idINT(11)11是DATE日期VARCHAR(45)45是LOCATION地址VARCHAR(45)45是DUTYDAY出勤天数INT(11)11是ATTENDANCECOLattendancecolVARCHAR(45)45是ATTENDANCECOL1attendancecol1VARCHAR(45)45是ATTENDANCECOL2attendancecol2VARCHAR(45)45是ATTENDANCECOL3attendancecol3VARCHAR(45)45是ATTENDANCECOL4attendancecol4VARCHAR(45)45是3.环境表主要是对农场周围环境值的监测,其中主要字段有天气,卫生环境以及气候等,如表4.5所示。表4.5 环境表是否主键字段名字段描述数据类型长度可空是IDIdINT(11)WEATHER天气VARCHAR(45)45是HYGIENE卫生环境VARCHAR(45)45是CLIMATE气候VARCHAR(45)45是ENVIRONMENTMONITORCOLenvironmentmonitorcolVARCHAR(45)45是ENVIRONMENTMONITORCOL1Environmentmonitorcol1VARCHAR(45)45是ENVIRONMENTMONITORCOL2Environmentmonitorcol2VARCHAR(45)45是ENVIRONMENTMONITORCOL3Environmentmonitorcol3VARCHAR(45)45是4.农事记录表主要记录农事的员工,工作类型,日期以及工作的地点,如下表4.6所示。表4.6 农事记录表是否主键字段名字段描述数据类型长度可空是IDIdINT(11)11STAFFID员工IDINT(11)11是 WORKTYPE工作类型VARCHAR(45)45是(表4.6 续表)DATE日期VARCHAR(45)45是LOCATION工作地点VARCHAR(45)45是FARMWORKCOLfarmworkcolVARCHAR(45)45是FARMWORKCOL1farmworkcol1VARCHAR(45)45是FARMWORKCOL2farmworkcol2VARCHAR(45)45是FARMWORKCOL3farmworkcol3VARCHAR(45)45是FARMWORKCOL4Farmworkcol4VARCHAR(45)45是 5.肥料表主要是记录肥料的名称,肥料的总量以及肥料的剩余量,如表4.7所示。表4.7 肥料表是否主键字段名字段描述数据类型长度可空是IDIdINT(11)11NAME肥料名称INT(11)11是TOTAL总量INT(11)11是RESIDUE剩余量INT(11)11是FERTILIZERCOLfertilizercolVARCHAR(45)45是FERTILIZERCOL1fertilizercol1VARCHAR(45)45是FERTILIZERCOL2fertilizercol2VARCHAR(45)45是FERTILIZERCOL3fertilizercol3VARCHAR(45)45是6.订单表主要是记录农作物id,数量,日期以及它的状态,如表4.8所示。表4.8 订单表是否主键字段名字段描述数据类型长度可空是IDIdINT(11)11CID农作物idINT(11)11是 QUANTITY数量INT(11)11是DATE日期VARCHAR(45)45是 STATUS状态VARCHAR(45)45是FINANCECOLfinancecolVARCHAR(45)45是FINANCECOL2financecol2VARCHAR(45)45是FINANCECOL3financecol3VARCHAR(45)45是FINANCECOL4financecol4VARCHAR(45)45是7.收成表主要是记录土地某种植物的收成,其中字段包括农作物id,收割日期和产量等,如表4.9所示。表4.9 收成表是否主键字段名字段描述数据类型长度可空是IDIdINT(11)11(表4.9 续表)CID植物idINT(11)11是DATE收割日期VARCHAR(45)45是QUANTITY产量VARCHAR(45)45是HARVESTCOLharvestcolVARCHAR(45)45是HARVESTCOL1harvestcol1VARCHAR(45)45是HARVESTCOL2harvestcol2VARCHAR(45)45是HARVESTCOL3harvestcol3VARCHAR(45)45是HARVESTCOL4harvestcol4VARCHAR(45)45是 8.土地使用表主要记录土地的名称,亩数,以及使用的情况,如表4.10所示。表4.10 土地使用表是否主键字段名字段描述数据类型长度可空是IDIdINT(11)11LOCATION土地名称VARCHAR(45)45是AREA亩数INT(11)11是STATUS使用情况VARCHAR(45)45是LANDCOLlandcolVARCHAR(45)45是LANDCOL1landcol1VARCHAR(45)45是LANDCOL2landcol2VARCHAR(45)45是LANDCOL3landcol3VARCHAR(45)45是LANDCOL3landcol3VARCHAR(45)45是9.工作类型表。如表4.11所示。表4.11工作类型表是否主键字段名字段描述数据类型长度可空是IDIdINT(11)11WORKTYPE工作类型VARCHAR(45)45LOGINLOGSCOLloginlogscolVARCHAR(45)45是LOGINLOGSCOL1loginlogscol1VARCHAR(45)45是LOGINLOGSCOL2loginlogscol2VARCHAR(45)45是LO