资源描述
农机调配决策系统的设计与实现
学生: 指导老师:
[摘要] 随着近年来我国经济的高速发展,工业化、城镇化进程的加快,我国农村农业生产方式正在发生深刻变革,劳动力结构快速变化,农业对农机应用的要求越来越高,农民对农机作业的需求越来越迫切,农业机械化在建设现代农业中的支撑作用越来越重要。与此同时,随着工业化、城镇化的加快,随着农村城镇化的不断推进和教育的发展,劳动力大量转移,外出求学或务工。这种情况带来了一定好处的同时,也产生了弊端。农村劳动力逐渐呈现结构性、季节性、区域性短缺的趋势。我国的农机发展水平的不平衡是一直存在的问题。所以农机和农田信息统一管理,并且智能化的生成解决方案的系统,成为一种需求。
随着网络技术的不断进步,计算机硬件支持的不断完善以及计算机软件开发理论的日趋成熟,为跨区域,多平台,即时的数据统一的联网农机信息管理以及决策系统的实现和应用提供了强大的技术支持。伴随着B/S开发模式的流行,操作人员仅仅需要一个浏览器就可以随时随地的对信息数据库进行访问,完成信息的添加,更改和删除的工作。由于B/S对多客户端访问的支持,为系统的跨区域使用提供了极大地方便。同时数据库管理系统理论和功能上的完善,也保证联网农机信息管理系统数据的安全性。
本论文正是围绕B/S客户端的农机决策调配系统进行展开,论文具体组织结构如下:
第一章:本章主要介绍了论文的选题意义及背景,并对该领域的研究现状进行了详细的分析,阐明了论文的主要工作,并简要介绍了论文的结构安排等内容。
第二章:本章节则主要介绍涉及到的技术问题,如JAVA和JSP技术,三层架构技术和session技术等,同时介绍了系统实现的物理环境和软件平台。
第三章:本章节对项目进行了详细的需求分析,并且实现了系统的概要设计。
第四章:本章详细介绍了各主要模块的实现原理,在介绍过程中详细分析了实现的实现代码。
第五章:对论文所做工作进行总结,指出了农机调配决策系统设计未来的工作方向。
关键词: 农机调配,决策分析;B/S开发;信息数据库;
Deployment Of the Decision-making System Of Agricultural Machinery Design
Agricultural Machinery Allocation And Decision
Student: Liu Yang Adviser: Zhang Fan
[Abstract] Along with the advance of network technology, the continuous improvement of the computer hardware support and the maturing of computer software development theory, as the cross-regional, multi-platform, real-time data unified network realization and application of information management and decision making system of agricultural machinery provides powerful technical support. Along with the popularity of B/S development mode, the operator only needs a browser can be anywhere at any time to access information database, complete information to add, change and delete. Because the B/S support for multiple clients to visit, provides the system across the land use greatly convenient. At the same time database management system theory and the function is perfect, also guarantee the safety of network information management system of agricultural machinery data.
The paper is organized as follows:
In chapter 1, the basic knowledge of this project is introduced, followed with the reason why we need to design such a system to show data. Besides, we will introduce the main directions which we will research, and the paper organization.
In chapter 2, some related techniques to design are introduced, together with the related knowledge based on the system realization.
In Chapter 3, the system analysis is specified; the emphasis of this part is the system overview and specific design.
In Chapter 4, the system architecture is described; the design and realization of each module are introduced.
In Chapter 5, conclude the work have done in this paper, and give a direction of future work.
Key Words Agricultural machinery deployment ;Decision analysis;Information database;B/S development;
目 录
1 综述 1
1.1 选题意义及背景 1
1.2 研究现状 2
1.3 论文主要工作 2
1.4 论文结构简介 3
2 相关技术介绍 4
2.1 JAVA和JSP技术简介 4
2.2 三层架构技术简介 5
2.3 SESSION技术简介 6
2.4 平台选择 7
3 系统分析与设计 8
3.1 需求分析 8
3.2 系统的概要设计 8
3.2.1 开发环境 8
3.2.2系统实现功能目标 9
3.2.3 系统权限设计 10
3.2.4 关键功能活动图 10
3.3 数据库设计 13
3.3.1 E/R设计 13
3.3.2 数据库关系图 14
3.3.3 数据库表结构 14
4 系统实现 16
4.1 数据库操作模块的实现 16
4.2 登录模块的实现 17
4.3 权限控制模块的实现 18
4.4 机主(农户)信息管理模块的实现 22
4.4.1 机主(农户)信息新增功能的实现 22
4.4.2 机主(农户)信息查看功能的实现 23
4.4.3 机主(农户)信息修改功能的实现 25
4.2.4 机主(农户)信息删除功能的实现 25
4.2.4 机主(农户)个人信息修改功能的实现 25
4.5 农机(农田)信息管理模块的实现 27
4.5.1 农机(农田)信息新增功能的实现 27
4.5.2 农机(农田)信息查看功能的实现 27
4.5.3 农机(农田)信息修改功能的实现 27
4.5.4 农机(农田)信息删除功能的实现 27
4.6 农机调配决策分析功能模块的实现 27
4.6.1 农机调配决策分析功能的实现 27
5 总结与展望 33
5.1 总结 33
5.2 展望 33
参考文献 35
声 明 37
致 谢 38
1 绪论
本章主要介绍了论文的选题意义及背景,并对该领域的研究现状进行了详细的分析,阐明了论文的主要工作,并简要介绍了论文的结构安排等内容。
1.1 选题意义及背景
随着工业化、城镇化进程的加快,我国农村农业生产方式正在发生深刻变革,劳动力结构快速变化,农业对农机应用的要求越来越高,农民对农机作业的需求越来越迫切,农业机械化在建设现代农业中的支撑作用越来越重要。农业机械化是加快农业现代化的重要力量,是提高农业科技和装备水平的重要载体。
在农业机械化起步阶段,毛泽东同志就提出了“农业的根本出路在于机械化”。国家支持群众性农具改革运动,在有条件的社队成立了农机站,迅速建立了较为完善的农机管理、科研、教育、制造、流通、鉴定、推广、监理、维修和服务体系。 改革开放以来,我国农业和农村经济建设取得重大进展,农业机械化事业也不断发展壮大,特别是进入新世纪以来,呈现出快速健康发展的良好态势。“十一五”时期是我国农业机械化发展环境显著优化、政策法规不断健全、发展速度明显加快、地位作用持续增强的五年,是“农民自主、政府主导、社会服务,共同利用、提高效益”为主要特征的中国特色农业机械化发展道路得以确立并丰富发展的重要时期。在这一时期,全国农机化系统干部职工和广大农民群众共同努力,克服困难,解放思想,大胆创新,胜利完成“十一五”规划确定的主要目标和各项任务,成功实现农业生产方式由人畜力为主向机械作业为主的历史性跨越。农业机械化的快速发展,在很大程度上缓解了农村青壮年劳力短缺对粮食生产带来的不利影响,有效提高了土地产出率、资源利用率和劳动生产率,持续增强了农业综合生产能力、抗风险能力和市场竞争力,为我国粮食生产实现“七连增”及农业农村经济保持良好发展势头提供了强有力支撑。
面向机主选择的农机调配问题相当复杂,国内外尚无类似研究报道。在调配算法研究方面,虽然在生产制造行业、车辆调度、物流管理等领域有相应的调度算法,但由于农机作业地区和地块是变化的,目标是多样的,所以没有现成的调配算法可用,必须根据国内实际情况,研究适合的动态路径搜索策略和动态调配算法。
本课题研究农机调配中的策略及其优化,目的是为机主提供可行的农机调配方案,为管理部门在必要时提供科学的调度方案,有关这方面的研究成果在国内外尚无报道。农机调配系统的研究和开发是农业机械化发展的必然趋势,具有重要的研究意义和重大的现实应用价值。
1.2 研究现状
我国地域辽阔、不同地区间气候差异大,这样的特征导致农作物种植和收获形成了时间梯度,为开展农机跨区服务提供了自然条件。我国农业经济水平不高,财力薄弱,土地分散经营,家家户户购买农机会增加农民的经济压力,同时也会造成农机资源的浪费。农机跨区作业是农机跨越地理区域作业的一种农机服务模式。开展社会服务型的农机跨区作业是与我国农业发展状况相适应的。但在跨区作业市场上存在着很多问题。在农作物收获季节,面对大量的农田作业信息,对机主而言,盲目选择农田作业点,凭借主观经验对所选农田作业点进行农机调配,由于没有科学调配方案,常常导致投入多而收益不高。
同样在农作物收获季节,当突发情况发生后,农机管理部门要尽快汇总受灾农田信息,组织各地农机迅速做出进行抢收抢种的应急方案。面对多农机多受灾点的农机应急事件,农机主管部门盲目或凭经验制定应急方案,由于调配方案不合理可能会导致应急任务无法顺利完成,造成农作物不同程度的损失。
随着农机保有量、燃油费的逐年上升,跨区调配市场的竞争更加激烈[23],机主、农机服务组织都迫切地希望调整当前的调配方式,尽可能掌握更加完善的调配信息,在调配前制定较好的调配方案,尽可能的增加调配收益。农机管理部门希望能在突发情况发生后迅速得到在规定期限内完成农田任务且尽可能降低调配成本的应急调配方案。
基于上述的分析与研究,研究基于机主选择的农机调配问题和政府主导的应急调配问题是迫在眉睫的。有了科学合理的调配方案,机主能获得更高的收益。有了合理的应急调配方案,农田受灾点才能避免不必要的损失。
所以,本论文所关注的方面是对农机主的农机管理和农户的农田信息的管理,以及根据农机和农田资源生成解决方案,本文所展示的系统的开发也是基于这个出发点。
1.3 论文主要工作
论文从实现农机主、农户以及管理员之间的信息管理出发,并且对资源进行管理以及分配生成调配解决方案来完成系统的设计。该系统采用的是B/S模式进行互联,采用JAVA以及JSP技术进行实现,并且使用了Hibernate、Spring、Structs三层架构的,使用SQL SERVER 2008座位数据的最终存储。该系统注重农机主、农户以及管理员之间的信息管理,以及对资源信息的管理分配并生成分配决策方案。
论文主要的研究内容如下:
(1)使用JSP技术编写B/S模式的系统,系统发布后,各个客户端可以根据系统所在的地址进行访问,网站服务器会根据请求一一进行应答。多个客户端和一个服务器保证了,各个客户端之间平等访问服务器的权利,同时实现了信息的统一存储,从而实现了信息的统一性,保证信息的完整性。
(2)使用SQL SERVER 2008数据库管理系统保证了数据的安全性。因为多个客户端的存在,在进行操作是会发生偶然的的问题,比如同时对同一数据信息进行更新。在系统的设计及编写方面不能对这一类问题进行很好的处理,而数据库强大的事务处理功能可以很好的是这个问题得到解决,防止数据发生错乱,导致系统崩溃。
(3)将系统的使用者按照不同的决策分配不同的权限,根据权限对用户进行系统的功能分配,各个不同角色的之间的拥有的功能是不同的,并且所能够查看的信息也是不同的。如此便能够将各个用户的查看的信息区分开来,防止了任意修改对信息维护造成的困难,以及可能发生的影响全局的错误操作,也使各个角色有了更加明确的工作。
(4)使用session技术对登录的用户进行信息存储,并在各个页面加载之前进行信息检查,防止用户越权访问页面,进行而已操作。同时也通过session技术实现了用户信息的识别,从而保证了系统的安全性。
1.4 论文结构简介
论文主要是对连锁销售系统设计的描述,主要阐述了该系统的设计架构,简单描述了该系统设计的背景知识,并对论文的工作进行总结,指明了未来的工作方向。本文具体组织结构如下:
第一章:本章主要介绍了论文的选题意义及背景,并对该领域的研究现状进行了详细的分析,阐明了论文的主要工作,并简要介绍了论文的结构安排等内容。
第二章:本章节则主要介绍涉及到的技术问题,如JAVA和JSP技术,三层架构技术和session技术等,同时介绍了系统实现的物理环境和软件平台。
第三章:本章节对项目进行了详细的需求分析,并且实现了系统的概要设计。
第四章:本章详细介绍了各主要模块的实现原理,在介绍过程中详细分析了实现的实现代码。
第五章:对论文所做工作进行总结,指出了农机调配决策系统设计未来的工作方向。
附录1:论文图表目录。
附录2:论文相关领域文章翻译工作展示,包括英文原文与译文。
2 相关技术介绍
项目的决策调配系统采用JAVA和JSP技术实现,采用分层的系统架构方式,数据库选择的是SQL SERVER 2008,编辑环境选择的Myeclipse,服务器使用Tomcat 7.0。本章节则主要介绍涉及到的技术问题,如JAVA和JSP技术,三层架构技术和session技术等,同时介绍了系统实现的物理环境和软件平台。
2.1 JAVA和JSP技术简介
Java平台由Java虚拟机(Java Virtual Machine)和Java应用编程接口(Application ProgrammingInterface、简称API)构成。Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。其有三个版本JAVA SE、JAVA EE、JAVA ME。
Java语言是一个支持网络计算的面向对象程序设计语言。Java语言吸收了Smalltalk语言和C++语言的优点,并增加了其它特性,如支持并发程序设计、网络通信、和多媒体数据控制等。Java语言有以下特点:面向对象、分布式、可移植性、多线程、动态的、解释性等。
Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(JavaEnterpriseAPIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。
JSP(Java Server Pages)由SUN公司倡导,并由多家公司共同参与建立的一种动态网页开发技术。JSP其实就是在传统静态网页HTML中加入了Java程序段和JSP标记(tag)从而形成了JSP文件,用于编写基于Java的后台程序。用JSP开发的Web应用是跨平台的,既能在传统的操作系统上运行也能在Linux系统环境下运行。
由于JSP页面是由Html代码和嵌入的Java代码构成的,在用户对服务器端页面提出访问请求的时候,Java程序对请求进行处理,然后将反馈内容返回给用户的浏览器。从此,我们也可以看出JSP代码是运行在服务器端的,需要服务器环境的支持。此外,Java Servlet是JSP技术的基础,而且大型WEB程序的开发需要Java Servlet和JSP的配合才能完成。总之,JSP是源于Java技术的,继承了Java技术简单易用,完全面向对象和平台无关性并且安全可靠的特点,在互联网领域有着举足轻重的低位。
2.2 三层架构技术简介
三层架构是软件体系架构的一种方式,分为三层:数据库访问层(Controller),业务逻辑层(Model),表示层(View)。当然三层的划分不是物理实现时的划分,而是更具各部分功能的不同进行的逻辑上的划分,目的是为了使三个层次具有专一的任务,是逻辑更加清晰。其中业务逻辑层是这三个层中最重要的一层,负责系统主要功能的实现。三个层次各自实现的功能如下:
1表示层(View):主要任务就是向用户展示界面,位于最外层,最接近用户,用于显示数据和接收用户输入的数据,负责信息的显示和收集,并将收集的信息向业务逻辑层进行提交处理。一般也为显示或者收集的信息进行基本的有效性判断,从而减轻了业务逻辑层的负担,又不失逻辑分层上的严谨性。
2业务逻辑层(Model):主要任务就是实现系统各个功能。从表示层接收信息,更具需要完成的功能进行相关处理。向下调用数据库访问层的方法,向上为表示层提供需要展示的信息。业务逻辑层将整个系统的功能都进行了处理,而不负责信息收集,以及信息的持久化等工作。
3数据库访问层(Controller):主要任务就是对数据库进行,增添,删除,修改,查找的基本操作。这些基本操作都是通过业务逻辑层根据不同的功能需求进行相应的调用的,该层不涉及任何业务逻辑上的东西。但是需要注意的是,该层虽然针对原始数据进行操作,但它通常不负责数据物理上的存储以及查找的功能,对于数据物理上的操作,通常该层将借助数据库管理系统,如SQL SERVER 2008 ,My SQL 和Oracle进行具体的操作。当然有时该层也会访问二进制文件,文本文档或者XML文档等。
通过以上三层的划分,表示层不直接与数据库访问层进行交互,也就是说数据的交互需要通过业务逻辑层才能进行,从而使业务逻辑层可以对信息进行功能上的处理以及合法性检验的工作。表示层和数据访问层对功能的实现一无所知,表示层只负责界面怎么展示信息,数据库访问层只负责去数据库里得到信息,具体这些信息该怎么用都是业务逻辑层需要干的事。但是业务逻辑层对数据“从哪里来”,数据到“哪里去”同样一无所知。三个层次的交互关系如下图:
表示层
业务逻辑层
数据访问层
数据库系统
图2-1三层架构各层之间交互图
关于三个层次的划分:
表示层:只向用户展示信息,采集用户输入的信息,并且将信息传递给业务逻辑层,此层不涉及任何的业务逻辑。
业务逻辑层:只从表示层接收信息,根据功能需求做出相应处理,然后利用数据访问层进行增删改查等基本操作,并将信息整合之后向界面层进行反馈。该层不管数据的来与去。
数据访问层:只负责数据的增加,删除,查询和更改操作,该层是被业务逻辑层更具需求进行调用的。该层不涉及任何业务逻辑。
进行层次的划分,本质上的目的是降低耦合,大大降低了各个模块间的依赖,优点在于使不同层次的开发人员只关注整个结构中的某一层,加快开发进度。在系统的后期维护中,能够很容易的用新的实现替换掉原有层次的实现,而保持其他层次不变,这样就极大地降低了维护的成本和时间。但由于数据在各个层次之间的传递,是的系统的性能降低了,同时可能还会增加系统的开发成本。
2.3 SESSION技术简介
Session是指用户在初次浏览某个网站时,将于该网站的服务器进行连接,同时在服务器中将保存一份有浏览器信息生成的在服务器端唯一识别的信息,这份信息将一直保持到用户关闭浏览器,结束这次访问。Session涉及客户端即浏览器,同时也涉及服务器端,比并且需要不间断的访问才能保持、需要注意的是,同一主机的不同客户端(即不同的浏览器)对同意服务器进行访问,在服务器中生成的Session是不同的,也就是说session生成的单位是客户端对服务器一对一的访问,而不是主机对服务器的访问。
客户端
请求
请求
服务器
接收请求
建立session
读取,更改session
图2-2 Session技术客户端于浏览器之间交互图
存储于服务器的session可以在客户端与服务器的会话中中多次使用,也就是说客户端可以从服务器的到一些有用的信息,也可将一些信息存进Session,供客户端后期访问。Session的这一特性,可以帮助B/S系统实现诸多技术上的问题。比如用户是否登录的判断,用户登录后权限的检查,界面刷新过程中临时信息的存储等,这些问题本系统也是通过Session技术进行解决的。
2.4 平台选择
论文设计的系统在Windows 7系统上实现,采用的是MyEclipse编辑环境,该软件同时集成了运行JSP系统所需服务器,无需进行繁琐的配置就可以在浏览器中进行操作。同时Myeclipse支持JSP类型WEB界面的开发。由于本系统采用的是SQL SERVER 2008数据库,Myeclipse同时提供了对数据库完美的支持,为系统的开发提供了方便。
3 系统分析与设计
本章节对项目进行了详细的需求分析,并且实现了系统的概要设计,关键的功能绘制活动图,包括需要实现的功能和权限分配等问题,并且介绍了详细设计中各个模块中关键功能的实现代码分析。
3.1 需求分析
1、机主信息管理
机主个人信息管理(增删改查),管理员权限下对机主个人信息的管理,以及机主个人对个人信息的管理。
2、农户信息管理
农户个人信息管理(增删改查),管理员权限下对农户个人信息的管理,以及农户个人对个人信息的管理。
3、农机信息管理
农机信息的管理(增删改查),管理员权限下对农机信息的管理,以及机主权限下对农机信息的设置管理。
4、农田信息管理
农田信息的管理(增删改查),管理员和机主权限下对农田信息的管理,以及农户权限下对农机信息的设置管理。
5、用户登陆权限限制
根据用户是管理员、机主、农户的角色不同,在登录时对相应角色可以操作的功能进行限制。各个角色对应相应的功能
6、 生成调配决策方案
根据对应机主的农机信息和选择的农田信息生成较优的农机分配方案,实现农机的调配决策。
3.2 系统的概要设计
3.2.1 开发环境
系统开发环境的需求见下表:
表3-1 环境需求配置清单
开发环境配置需求清单
内存
1GB以上
系统
Windows 7
开发语言
Java
开发工具
MyEclipse
数据库
SQL SERVER 2008
架构方式
三层架构
服务器
Tomcat 7.0
调试浏览器
IE浏览器
3.2.2系统实现功能目标
该系统主要模块包括用户的权限管理和生成调配决策方案,还包括了一些基本资料模块,如机主管理,农户管理,农机管理和农田管理。具体功能设计如下表:
表 3-2 系统功能设计表
功能分类
功能概况
具体功能
功能说明(可参考需求分析)
主要操作
机主信息管理
机主信息列表
管理员查看农机主的信息列表
机主信息新增
管理员对农机主信息进行新增操作
机主信息修改
管理员对农机主的信息进行修改
机主信息删除
管理员对农机主信息进行删除操作
农户信息管理
农户信息列表
管理员查看农户的信息列表
农户信息新增
管理员对农户信息进行新增操作
农户信息修改
管理员对农户的信息进行修改
农户信息删除
管理员对农户信息进行删除操作
农机信息管理
农机信息列表
管理员和农机主查看农机信息列表
农机信息新增
管理员和农机主新增农机信息
农机信息修改
管理员和农机主修改农机信息
农机信息删除
管理员和农机主删除农机信息
农田信息管理
农田信息列表
管理员和农户和农机主查看农田信息
农田信息新增
管理员和农户和农机主新增农田信息
农田信息修改
管理员和农户和农机主修改农田信息
农田信息删除
管理员和农户和农机主删除农田信息
个人信息设置
--
当前的登陆用户自己基本信息的修改
用户登陆
--
根据数据库中的用户数据,用户在登陆页面输入用户名和密码后登陆系统
生成决策分析方案
--
农机主勾选自己要选择的作业农田信息后根据自己的农机信息生成决策调配方案。
注:
1:只有管理员可以查看用户(机主和农户)信息。
2:只有农机主可以生成农机调配决策方案。
3.2.3 系统权限设计
角色分类
表3-3 角色分类表
角色代码
角色
T
M
P
管理员
√
农机主
√
农 户
√
权限分配
表3-4 权限分配表
功能概况
具体功能
1.管理员
2.农机主
3农户
登陆
登陆农机调配系统
是
是
是
机主信息管理
机主信息列表
是
否
否
机主信息新增
是
否
否
机主信息删除
是
否
否
机主信息修改
是
否
否
机主信息查看
是
否
否
农户信息管理
农户信息列表
是
否
否
农户信息新增
是
否
否
农户信息删除
是
否
否
农户信息修改
是
否
否
农户信息查看
是
否
否
农机信息管理
农机信息列表
是
是
否
农机信息新增
是
是
否
农机信息删除
是
是
否
农机信息查看
是
是
否
农机信息修改
是
是
否
农田信息管理
农田信息列表
是
是
是
农田信息新增
是
是
是
农田信息删除
是
是
是
农田信息修改
是
是
是
农田信息查看
是
是
是
决策分析
根据农机和农田信息进行分析决策
否
是
否
个人信息修改
修改个人信息
否
是
是
3.2.4 关键功能活动图
图3-5 登录模块过程图
显示农田的信息
选择要作业的农田信息
没有被分配
请求
图3-6 决策分析操作图
作业单价
农机数量
属于
机主电话
机主地址
机主姓名
农机ID
用户角色
农田
农田ID
农田类型
农田成熟时间
农田收获时间
农田面积
农田地址
农田ID
属于
农户ID
农户电话
农户姓名
农户ID
农户地址
农户
农户农田面积
3.3 数据库设计
3.3.1 E/R设计
图3-7 E/R设计图
3.3.2 数据库关系图
图3-8 数据库关系图
3.3.3 数据库表结构
表3-9 数据库表结构表
YHQXB表:
列名
属性
是否主键
完整性约束
说明
YHID
varchar(255)
是
references
ID、登陆ID
YHPassword
varchar(255)
否
not null
密码
YHRole
varchar(255)
否
not null
角色
JZXXB表:
列名
属性
是否主键
完整性约束
说明
JZID
varchar(255)
是
not null
ID、登陆ID
JZName
varchar(255)
否
not null
机主姓名
JZTelephone
varchar(255)
否
无
机主联系方式
JZAddress
varchar(255)
否
无
机主家庭住址
NHXXB表:
列名
属性
是否主键
完整性约束
说明
NHID
varchar(255)
是
not null
ID、登陆名
NHName
varchar(255)
否
无
农户姓名
NHTelephone
varchar(255)
否
无
农户联系方式
NHAddress
varchar(255)
否
无
农户家庭地址
YYNTArea
varchar(255)
否
无
农户拥有农田面积
NJXXB表:
列名
属性
是否主键
完整性约束
说明
id
numeric(19, 0)
是
not null
ID
ZYLX
varchar(255)
否
无
作业类型
ZYNL
varchar(255)
否
无
作业能力
ZYDJ
varchar(255)
否
无
作业单价
SUJZID
varchar(255)
否
references
所属机主ID
NJSL
varchar(255)
否
无
农机数量
NTXXB表:
列名
属性
是否主键
完整性约束
说明
NTID
varchar(255)
是
Not null
农田ID
NTLX
varchar(255)
否
Not null
农田类型
ZWCSSJ
varchar(255)
否
无
作物成熟时间
ZWSHSJ
varchar(255)
否
无
作物收获时间
NTArea
varchar(255)
否
无
农田面积
NTAddress
varchar(255)
否
无
农田地址
SSNHID
varchar(255)
否
references
所属农户ID
distance
varchar(255)
否
无
与机主的距离
4 系统实现
本章详细介绍了各主要模块的实现原理,在介绍过程中详细分析了实现的实现代码。
4.1 数据库操作模块的实现
本系统采用三层架构模式开发,分为界面层,逻辑层与数据层。系统在操作过程中需要频繁查询或者更改信息,所以系统的实现过程中需要多次对数据库进行操作,而在对数据库进行操作之前必须进行数据库连接。如果每一部分都单独编写数据库连接代码,将造成代码的冗余,同时降低了系统的可维护性。为此本系统将数据库连接参数写进配置文件applicationContext.xml,并且利用Hibernate对数据库操作的封装特性,通过配置sessionFactory直接对数据库进行操作。具体如下所示:
配置文件:config\applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<!-- 自动扫描与装配bean -->
<context:component-scan base-package="cn.edu.njdpxt"></context:component-scan>
<!-- 导入外部的properties文件 -->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!-- 配置SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 指定hibernate的配置文件位置 -->
<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
<!
展开阅读全文