本科毕业设计论文系统研究目的是开发基于web的水稻植保数据库查询系统农业大学.docx
- 文档编号:16085100
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:30
- 大小:1.20MB
本科毕业设计论文系统研究目的是开发基于web的水稻植保数据库查询系统农业大学.docx
《本科毕业设计论文系统研究目的是开发基于web的水稻植保数据库查询系统农业大学.docx》由会员分享,可在线阅读,更多相关《本科毕业设计论文系统研究目的是开发基于web的水稻植保数据库查询系统农业大学.docx(30页珍藏版)》请在冰点文库上搜索。
本科毕业设计论文系统研究目的是开发基于web的水稻植保数据库查询系统农业大学
第一章前言
本项研究是将计算机数据库和Internet网技术应用到水稻植保中,使之信息化,为农业科研人员和水稻生产者提供即时的信息服务。
本项研究是计算机技术在植物保护中的应用,是交叉学科的研究领域。
利用计算机网络技术、数据库技术建立水稻虫害网络数据库,将植物保护知识和技术信息化,是农业信息化的一个具体应用。
自20世纪中叶计算机诞生以来,计算机技术就以迅猛的速度发展和普及,渗透到人类生活的各个角落。
网络技术使处于不同地域的计算机被连接起来,从而使得信息可以共享,特别是从90年代以来,Internet技术的快速发展,各行各业都在不同程度上受到其影响,随着世界范围内Internet环境的形成,人类步入了一个以网络为中心的信息时代。
因此,运用Internet技术来传播植物保护知识和防治技术已成为可能。
信息是重要的战略资源和巨大财富,信息化的核心是信息资源的开发及其使用的社会化,在农业信息化中,信息资源是农业和农村经济发展的重要生产要素。
因此,将水稻病虫害的种类、各种病害虫的形态特征、生活习性、各种病害虫对水稻的危害及其防治技术与方法等,从各种教科书和文献资料以及水稻专家和水稻生产者手中收集在一起,建立水稻病虫害网络数据库查询系统,通过Internet网,为农业科研人员和水稻生产者提供即时的信息服务,对于进一步促进农业信息化的发展,广泛地传播水稻病虫害防治技术等具有重要的意义。
本课题所做的工作就是把记载在各种文献资料中的水稻病害及防治技术搜集起来,利用计算机的数据库技术建立水稻病害数据库,并借助Internet网建立基于网络的水稻病害及防治技术数据库查询系统,为科研人员和生产第一线的人员提供信息服务。
本人所做的工作如下:
(1)搜集水稻病害及防治技术资料;
(2)建立数据库;
(3)设计和实现数据库查询系统;
(4)网络编程,开发系统界面;
(5)系统调试。
第二章系统分析
2.1系统研究目的
系统研究目的是开发基于Web的水稻植保数据库查询系统。
2.2设计和实现本系统必须完成的工作
2.2.1搜集详实的水稻病害及防治技术的数据资料
数据的收集和整理是本项研究的重点和难点工作。
本研究属跨学科研究,作者要用计算机技术来表达水稻生产中的病虫害及其防治技术中的科学数据,因此,要向农业植物保护专家、水稻生产专家等相关人员收集数据,并要根据他们的要求和水稻生产者的需求,对收集到的数据进行整理,以便建立数据库。
2.2.2选择合适的数据库
系统后台数据库选择SQLServer2000。
SQLServer2000是一个功能完备的数据库管理系统。
它包括支持开发的引擎、标准的SQL语言、扩展的特性(如复制、OLAP、分析)等功能。
而像存储过程、触发器等特性,也是大型数据库才拥有的。
MicrosoftSQLServer是高性能、关系型数据库管理系统,能够支持大吞吐量的事务处理,也能在MicrosoftWindows2000Server网络环境下管理数据的存取以及开发决策支持应用程序。
由于MicrosoftSQLServer是开放式的系统,其他系统(如基于UNIX系统)可以与它进行完好的交互操作。
由于本系统存储的对象是水稻作物病、虫害数据,考虑到系统的数据不断增加,以后还可扩展到存储其他作物保护数据,所以选择SQLSERVER2000。
2.2.3确定系统的功能
根据本系统使用的对象有如下人群:
科技工作者、农业生产者,兴趣爱好者等。
所以系统应该具有如下功能:
(1)系统能够方便地更新数据;
(2)系统界面友好,数据查询操作简单、快捷;
(3)图文并茂,文字和病虫害形态特征对照,便于广大用户查询和使用。
(4)数据的安全,作物保护数据是科学数据,因此,不能被轻易地修改;
(5)系统要方便管理员管理。
2.2.4系统开发工具与运行环境
本系统的开发运行环境为WinXP/2000,Web服务器为Tomcat5.0,数据库服务器采用SQLServer2000,编程语言采用JSP。
由于JSP具备了Java技术的简单易用、完全面向对象、具有平台无关性且安全可靠、主要面向Internet的所有特点,所以动态网页技术采取JSP技术来编程。
JSP有4大技术优势:
(1)一次编写,到处运行。
除了系统之外,代码不用做任何更改。
这一点突出了JSP技术的代码重用性高的特点,将程序块封装起来,可以用到系统中的任何地方,节省了不少的时间。
(2)系统的多平台支持。
基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。
相比ASP/PHP的局限性是显而易见的。
(3)强大的可伸缩性。
多台服务器进行集群和负载均衡,多台Application进行事务处理、消息处理,一台服务器到无数台服务器,它显示了一个巨大的生命力 。
(4)多样化和功能强大的开发工具支持。
它有许多开发工具,而且可以免费得到,可以顺利运行于多种平台之下。
另一个方面它也有一些缺点,如:
它为了能够跨平台,反而增加了产品的复杂性;还需要硬盘空间来存储一系列的*.java和*.class文件。
第三章系统的总体设计
3.1系统目标
为了能够开发出实用的水稻病虫害防治数据库查询系统,确定了以下系统目标:
(1)对水稻病虫害的基本信息、行为特征、生态特征和防治技术进行存储。
(2)建立有两种查询方法以上的数据库查询系统。
(3)开发出友好的人机界面,用户使用方便,查询快捷。
3.2系统功能模块
本系统根据设计要求分为三个模块:
数据库查询模块、管理系统模块和访客留言簿模块。
其各模块主要功能模块(如图1)所示。
图1功能模块图
数据库查询模块在系统功能中已经介绍了,在这里主要介绍管理系统模块和访客留言簿模块。
(1)管理系统模块:
更新信息:
拥有超级管理员账号可以对系统中任何信息进行添加、修改和删除。
普通管理员可以对系统的信息进行查询和修改。
添加管理员:
超级管理员账号可将普通管理员设置成为超级管理员,可以将用户设置成为普通管理员。
权限分配:
只有超级管理员才能分配权限。
权限包括:
Select选择权限、Insert插入权限、Update更新权限、Delete删除权限。
超级管理员拥有所有的权限,普通管理员拥有Select权限和Update权限。
而用户只拥有Select查询权限。
(2)访客留言簿模块:
查看留言:
访客能够查看留言簿内容,以便用户之间的交流。
编写留言:
访客通过填写主要内容来参与留言,可编写主题及内容来与其他用户沟通。
3.3系统结构
目前比较流行的两种网络开发结构分别是C/S(Client/Server)结构和B/S(Browser/Server)结构。
传统的C/S结构主要是以局域网为基础的环境下开展的应用,虽然它的体系结构采用了开放模式,但在应用中无论是Client端,还是Server端都还需要特定的软件,没有能提供用户期望的真正的开放性。
而B/S结构主要是以Internet为基础进行通信的,在这种结构下,用户界面完全通过Web浏览器来实现,一部分事务处理在前端实现,但主要事务处理在服务器端实现。
B/S结构的前端是以TCP/IP协议为基础的,后端的Web服务器可以接受安装有Web浏览程序的Internet终端访问。
作为最终用户,只要通过Web浏览器,各种处理任务都可以调动系统资源来完成,这样大大简化了客户端,减轻了系统维护与升级的成本。
水稻病虫害防治数据库查询系统,主要功能是实现对水稻病害、虫害、防治技术做出介绍,以及实现系统对不同用户的权限管理。
本系统的设计主要采用B/S的三层结构(如图2):
表示层、应用层、数据层。
其中,
图2系统三层结构组成方框图
表示层是客户端的浏览器;应用层是具有应用程序扩展功能的Web服务器,它包括事务处理逻辑,位于服务器端;数据层即数据库服务器。
这种结构的工作流程是,用户通过Web浏览器向网络中的某一Web服务器提出服务请求,Web服务器对用户验明身份后,首先执行相应的扩展应用程序与数据库接通,通过SQL语句向数据库发出数据处理申请,然后将数据库处理结果交给Web服务器后,再由Web服务器传送到客户端浏览器。
三层结构各层作用如下:
第一层采用浏览器,操作者通过界面向Web提交服务请求;
第二层的应用服务器专门用来进行请求中的业务逻辑处理,根据请求与第三层的数据库服务器进行数据交换,并返回用户需要的结果,显示在第一层的浏览器界面上;
第三层的数据库服务器进行后台管理部分,可完成添加、删除等基本编辑内容。
3.4系统模式设计
系统模式采用MVC模式(如图3),它是国外用得比较多的一种设计模式。
MVC模式,指导模块的职责分配和模块之间的通信协议。
职责分配是面向对象分析和设计中最重要的工作,协议设计则是相当困难的工作。
MVC为这两项工作提供了指导,所以意义重大。
MVC(Model/View/Controller)包括三类对象:
Model、View、Controller。
换一种说法,它是由三种文件组合而成的:
*.java文件、*.html文件、*.jsp文件。
*.java文件它是可重用的组件,可以减少在JSP中脚本代码的使用,使得系统易于维护。
*.html文件它是屏幕上的显示出来的。
*.jsp文件应用于页面与页面之间协调和管理。
图3MVC模式图
Model是应用程序对象,也就是包含应用程序数据和业务逻辑的对象。
Model对外表现为一个对象,实际上可以也应该是一组子对象的集合。
在这个集合里封装了重要的操作。
在需要的时候,可以从这个集合中调用这些操作,从而节省了大量的代码,实现了代码的重用。
传统意义上的View是屏幕对象,负责向用户显示交互界面。
这个意义可以进行扩展,将View视为向外界展现应用程序状态的接口和界面。
Controller负责处理所有的用户输入。
在交互式系统中,Controller是导致Model发生变化的唯一原因,是导致View发生变化的两个原因之一,因此是控制中心。
Controller将用户事件翻译成为请求,而不是命令。
如果机械地遵循MVC的规则,Controller的逻辑将十分复杂。
Controller通常需要查询View和Model才知道如何处理用户输入。
不要把所有逻辑写在Controller里,View和Model都是有智能的对象。
可以通知它们,由它们自己决定应对的方式。
一个应用程序或者组件只能有一个Model,但是这个Model可以对应多个View。
View向Model注册,要求在Model的数据发生变化时获得通知消息。
View得到通知消息之后,获取Model的相应数据,更新自己的显示。
View不向Model发送消息。
一个View对应一个Controller。
View负责创建和初始化Controller,这也是View和Controller关系密切的原因之一。
Controller接收用户输入,如果有与应用程序数据无关,而只涉及显示变化的用户输入,Controller直接通知View。
Controller和View关系密切的另一个原因是现代应用程序界面复杂,灵活多变。
因此Controller需要大量了解View的情况,大量查询View的信息,距离太远不利于效率和灵活性,协议也很难设计,所以经常捆绑在一起。
例如,目前基于控件的图形界面,很多控件实际上是一个封装好的MVC实体,通过属性、事件和方法与外界协同工作。
一个Model对应多个View,一个View对应一个Controller,所以一个Model对应多个Controllers。
Controller接收外部输入,是导致Model发生变化的唯一原因。
同时,Model的变化可能导致Controller行为的变化。
第四章数据库设计
4.1配置数据库
Browse/Server(简称B/S)结构在数据库管理系统中使用广泛。
浏览器与服务器通过标准的SQL语言进行通信。
本系统数据库服务器采用MICROSOFTSQLSERVER2000。
要正常的运行本系统,首先,当然要安装SqlServer2000;其次,还要安装MicrosoftSQLServer2000DriverforJDBC,将其目录下的msbase.jar文件、mssqlserver.jar文件、msutil.jar文件拷贝到一定的位置;最后还要完成打开SqlServer2000的1433端口的步骤,也就是安装MicrosoftSQLServer2000ServicePack3包。
这样才算完成了数据库配置过程。
4.2需求分析
在本系统中,用户的需求可概括为这么几个方面:
提供、保存、更新和查询水稻信息等方面,并能充分满足各种信息的输出、输入。
通过上述系统功能分析,针对本系统总结出如下需求信息:
(1)浏览所有水稻病虫害相关信息;
(2)查询所有水稻病虫害详细信息;
(3)系统管理员必须及时更新水稻病虫害全部信息以便用户浏览与查询。
根据系统功能分析和需求总结,设计数据字典如下:
(1)名称:
admin(管理员表)
定义:
admin(管理员表)=id(管理员编号)+username(管理员姓名)+password(管理员密码)
描述:
维护本系统、更新信息的人的账号表。
(2)名称:
vermin(水稻害虫表)
定义:
vermin(水稻害虫表)=s_id(害虫编号)+s_name(害虫名称)+s_formal(害虫学名)+s_subject(害虫目)+s_branch(害虫科)+s_another(害虫别名)+s_scatter(害虫分布)+s_host(害虫寄主)+s_symptoms(害虫为害征状)+s_form(害虫形态特征)+s_habit(害虫生活习性)+s_prevention(害虫防治方法)+s_image(害虫图片)
描述:
记录了水稻害虫的详细信息表。
(3)名称:
ill(水稻病害表)
定义:
ill(水稻病害表)=s_id(病害编号)+s_name(病害名称)+s_symptoms(病害为害征状)+s_illchar(病害发病特点)+s_prevention(病害防治方法)+s_image(病害图片)
描述:
记录了水稻病害的详细信息表。
(4)名称:
gbook(访客留言表)
定义:
gbook(访客留言表)=s_name(访客名称)+s_gender(访客性别)+s_email(访客电子邮件)+s_homepage(访客主页)+s_title(留言主题)+s_content(留言内容)+s_gtime(留言时间)
描述:
访客留言的留言及访客信息表。
4.3概念设计
根据数据字典以及实体之间的关系,可以得出实体与实体之间的关系,从而画出如下的E-R图。
图4管理员实体E-R图
图5水稻虫害信息E-R图
图6水稻病害信息E-R图
图7访客留言信息E-R图
4.4逻辑设计
逻辑设计中最重要的是基本表结构。
本系统最主要的四张表为admin表、vermin表、ill表、gbook表。
admin表结构(如图8):
图8admin表的设计
这张表主要是记录了管理人员的ID和密码。
由于水稻病、虫害信息进行维护的主要使用对象是系统管理员,只能在服务器上运行,不能进行远程维护,目的在于增强系统的安全性。
重要信息的维护只限于服务器端,避免了远程维护带来的安全隐患。
vermin表结构(如图9):
图9vermin表的设计
这张表记录了水稻虫害的详细资料。
通过这张表,可以创建一个JavaBean来记录虫害详细资料,并将它显示在系统需要的地方。
ill表结构(如图10)
图10ill表的设计
这张表记录了水稻病害的详细资料。
gbook表的结构(如图11)
图11gook表的设计
这张表记录了访客主要信息。
4.5JSP中数据库的连接
4.5.1连接过程
JDBC是用于执行SQL语句的Java应用程序接口,由一组用Java语言编写的类与接口组成,在JSP中将使用JDBC来访问数据库。
JDBC是一种规范,它让各数据库厂商为Java程序员提供标准的数据库访问类和接口,这用就使得开发独立于DBMS的Java应用程序成为可能。
JDBC(JavaDatabaseConnectivity)是Java数据库连接API。
简单地说,JDBC能完成四件事:
(1)加载驱动程序:
实现Driver接口
Class.forName
(
"com.microsoft.jdbc.sqlserver.SQLServerDriver"
)
(2)与一个数据库建立连接:
首先使用包java.sql中的Connection类声明一个对象,然后再使用类DriverManager调用它的静态方法getConnection创建这个连接对象:
Connectioncon=DriverManager.getConnection
(
"jdbc:
microsoft:
sqlserver:
//[ip]:
1433;DataBaseName=数据库名","用户名","密码"
)
(3)向数据库发送SQL语句:
首先使用Statement声明一个SQL语句对象,然后通过上面创建的连接数据库的对象con调用方法createStatement()创建这个SQL语句对象。
Try{Statementstmt=con.createStatement();}
catch(SQLExceptione){}
(4)处理数据库返回的结果:
SQL语句对象可以调用相应的方法实现对数据库中表的查询和修改,并将查询结果存放在一个ResultSet类声明的对象中。
经过上面的分析和整理,得出了连接数据库的代码:
<%
Connectioncon=null;
Stringurl="jdbc:
microsoft:
sqlserver:
//[ip]:
1433;DatabaseName=zl";
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con=DriverManager.getConnection(url,"sa","1234");
Statementstmt=con.createStatement();
ResultSetrs=null;
%>
代码中的"zl"代表数据库名称,"sa"代表以数据库超级管理员账号,"1234"代表密码。
因为本系统中每个动态页面中和数据库连接时都要用到上面的代码,于是我们将这段代码单独封装在一个名为conn.java的JavaBean中。
当某动态网页中需要建立与该数据库连接时,就可以读取这个JavaBean来连接。
4.5.2查询操作
在这个JavaBean中除了封装这连接数据库的代码,还要封装两个很重要的操作:
查询操作与更新操作。
这两个操作统称为数据操作,它能够对数据库中各种对象的实例允许执行的操作的集合。
查询操作封装成executeQuery()方法,代码如下:
publicResultSetexecuteQuery(Stringsql)
{
try{
con=DriverManager.getConnection(url,"sa","1234");
Statementstmt=con.createStatement();
rs=stmt.executeQuery(sql);
}
catch(SQLExceptionex)
{
System.err.println(ex.getMessage());
}
returnrs;
}
4.5.3更新操作
更新操作封装成executeUpdate()方法,代码如下:
publicintexecuteUpdate(Stringsql)
{
intresult=0;
try{
con=DriverManager.getConnection(url,"sa","1234");
Statementstmt=con.createStatement();
result=stmt.executeUpdate(sql);
}
catch(SQLExceptionex)
{
System.out.println(ex.getMessage());
}
returnresult;
}
4.6数据库安全性
由于系统是面向Web的,所以安全问题是应该要考虑到的重要问题。
系统中数据库服务器是隐藏在局域网内的,给数据库服务器分配的地址是内部地址,对于用户是不可见的,也无法直接访问,这样就保证了数据库服务器上的重要数据不会被轻易获取。
另外,对数据库的访问充分利用了角色访问控制机制,使访问更加安全。
对于登陆的普通管理员,必须经过身份验证,只有授权的管理员才能进入到特定的页面。
系统创建时,JSP技术的内建对象Session对象会将前一个页面中所要登陆的信息存入到Session中,再在下一个页面就可以根据Session的值进行判断,如果Session的值为空,说明此用户并未登陆,即指向到login.jsp这个登陆页面;如果不为空,就打开用户数据库进行身份验证,验证通过,就引入到系统的维护页面,从而进一步解决了系统的安全问题。
此方法的关键代码实现如下:
<%
request.setCharacterEncoding("gb2312");
if(session.getAttribute("adminname")==null||session.getAttribute("adminname").equals("")){
response.sendRedirect("../admin/index.jsp");
}
%>
这段代码将放在维护页面的前面,普通管理员和用户则不可能跳过登陆页面。
这样就解决了数据库安全性问题。
第五章人机界面设计
5.1虫害查询页面
在这个页面中,实现了本系统最基本的功能:
查询功能。
囊括了精确查询与模糊查询两种方式。
用户可通过三种类型来查询:
(1)查询水稻害虫的名称;
(2)查询水稻害虫的目;
(3)查询水稻害虫的科。
具体实现页面(如图12):
图12虫害查询页面
5.1.1精确查询
当在类型中选择“名称”,并在文本框中填入水稻害虫名称“台湾稻螟”时,将会实现查询功能(如图13):
图13精确查询
5.1.2模糊查询
当在类型中选择“名称”,并在文本框中填入水稻害虫名称“螟”时,将会实现模糊查询功能,显示数据库中所有带“螟”字的记录(如图14):
图14模糊查询
5.2病害查询页面
病害查询页面(如图15)显示了所有的水稻病害记录,它的查询结果与虫害查询类似,但在本质上却不相同。
图15病害查询页面
虫害查询是以虫害名称为类型,并按关键字来查询,而病害查询是以为害部位来查询,所以在病害查询中只有精确查询(如图16
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 本科 毕业设计 论文 系统 研究 目的 开发 基于 web 水稻 植保 数据库 查询 农业大学