基于Java实现农产品交易平台的设计与实现_kaic

news2024/12/23 3:35:49

【摘要】农业是我国国民经济的重要组成部分,随着信息化的普及,4G网络、光纤以及5G网络也日益完善,农业信息化的发展成为了必然。同时,由于本年疫情原因,导致农作物积压销售,甚至腐烂造成不必要的浪费,为了减少类似情况的发生,是设计和开发本系统的目的和意义。
交易平台将以Java语言作为主要语言进行开发,将JSP作为交易平台的前台设计技术,将B/S架构作为交易平台的逻辑架构,使用Eclipse工具作为Java语言的编写工具,通过使用MySQL及Navicat开发和管理本平台的数据库。
关键词:农产品交易;B/S架构;Java

目录
1 绪论
1.1 课题背景
1.2 国内外研究现状
1.2.1 国内研究现状
1.2.2 国外研究现状
1.3 课题内容
2 相关技术介绍
2.1 技术类介绍
2.1.1 Java语言介绍
2.1.2 JSP技术介绍
2.1.3 MySQL介绍
2.1.4 SSM介绍
2.1.5 黑盒测试技术介绍
2.2 工具类介绍
2.2.1 Navicat Premium工具介绍
2.2.2 Eclipse工具介绍
2.3 本章小结
3 需求分析
3.1 业务流程分析
3.2 功能性需求分析
3.2.1 管理者
3.2.2 消费者
3.2.3 经营者
3.3 非功能性需求分析
4 系统设计
4.1 平台设计要点
4.2 平台架构设计
4.3 平台总体设计
4.3.1 登录注册时序图
4.3.2 增删改个人信息时序图
4.3.3 消费者购物时序图
4.4 数据库设计
4.4.1 实体-联系图
4.4.2 数据表设计
5 系统实现
5.1 登录注册
5.2 个人信息
5.3 购物车
5.4 商品查看
5.5 商品订单
6 系统测试
6.1 测试环境
6.2 测试方法
6.3 功能测试
7 总结
参考文献
致谢
 
1 绪论
1.1 课题背景
随着经济全球化的到来,社会的发展,科技的进步,信息化浪潮已经推进到生活中的各个角落,也成为了世界各个国家推动其经济发展的重要手段,其中,农业信息化就是一部份。互联网渠道的产生和完善,能够有效的拓宽农产品营销渠道。
我国是一个农业大国,农业是我国的基础产业,是国民经济的重要根基,农产品资源丰富,品种繁多,分布广泛,但也因为这些特点,使得很多农户和经营者在农产品生产及销售上存在着信息不对称等诸多问题,农产品批发市场严重不适应新时代社会经济发展需要的滞后性状态。应建立完善的营销体系来提高流通效率。现阶段,
网络科技越来越发达,许多人的购物观念逐渐从线下购买转移到了线上购买,农产品也是这样,不能只满足于线下销售,而放弃线上销售这一广大的平台,如果没有一个合适的交易平台,经营者很难在线上打开销路,而消费者也很难在线上找到合适的购买农产品的平台。
由于今年的疫情爆发,使得许多农产品滞销、甚至腐烂在农田里,农产品交易平台能够提供额外的销售渠道,避免了农产品压仓、滞销、腐烂造成不必要的浪费。最终,通过农产品交易平台,消费者可以直接在平台上购买经营者上架的农产品,节省了线下挑选的时间,提高了效率;消费者可以迅速地了解该商铺有什么种类的商品,便于挑选心仪的农产品;对于经营农副产品行业的人,他们对原料的需求很大,可以随时随地从该平台挑选需求的资源,扩大了选择的空间;对于经营者,可以直接将要售卖的农产品上架到平台上,省去了直接运送到市场的时间。
1.2 国内外研究现状
1.2.1 国内研究现状
国内现阶段对农业信息化发展有很多研究,同时也研发了很多信息化系统,但是我国农业发展网络基础相对薄弱,网络覆盖面相对较少,农场主的素质相对较低。
受疫情影响,国内多地的农产品无法运出,农产品批发市场面临全面断货的风险。国内有很多地区的农产品销售点存在运输困难。北京昌平目前大约有上万斤草莓滞销。部分农场在收获日收获大量的农产品后,造成了仓库囤积,又由于疫情影响到了货物的配送,导致滞销。
1.2.2 国外研究现状
现阶段,美国已有2000多家农场,在疫情的影响下宣告破产。
现阶段,弗罗里达州有很多农场都有农产品堆积导致腐烂的现象发生,很多农场主将已腐烂的农产品销毁。
2010年至2017年,由于“走中国”项目和中波“16+1”平台的推动,中波两国农产品贸易大幅增长。
1.3 课题内容
整个农产品交易平台包括两个部分,一个是供PC端客户使用的网页端,一个是供管理员使用的后台管理网页端,在设计之前就需要对其需要做的系统进行确认,并且还需要对其系统的背景以及当前所存在的问题进行调查。在对整个系统进行确定之后,还需要对整个系统的开发以及需求进行分析,在本次论文之中所设计的线上教学系统而言,所使用的编程工具就是JAVA技术,然后使用数据库对其平台进行搭建以及开发,然后再使用该技术对其进行分析。如果确定好整个系统之后,首先就需要对其整个系统进行角色的划分,对于本次设计的线上教学系统而言,主要就可以划分为管理员以及用户这两个角色。主要功能有:
(1)登录注册方面,消费者、经营者、管理者登录到该平台,消费者可以注册农产品交易平台账号,而经营者、管理者账号是管理者通过农产品交易平台的后台创建的。
(2)个人信息方面,消费者、经营者、管理者可以查看个人信息,以及对个人详细信息的增删改查。
(3)订单方面,消费者可以查看订单,创建订单,新建自己的收货地址,取消下达的订单,以及申请退款;经营者可以修改订单,删除订单,审核退款订单,货物发送。
(4)商城系统方面,消费者能够查看、修改购物车内的农产品,查看、购买农产品,给购买过的农产品评价,经营者可以上架、下架农产品,编辑农产品信息。
(5)管理系统方面,管理者可以管理本平台经营者、消费者、管理者的身份信息。
2 相关技术介绍
主要介绍了开发农产品交易平台所用到的语言,Java语言;所用到的技术为Java+JSP结合生成的Web页面;以及使用Eclipse来编写Java;使用MySQL+Navicat来开发和管理本平台的数据库。
2.1 技术类介绍
2.1.1 Java语言介绍
Java在本平台中作为主要的编程语言使用,它是一门面向对象的程序设计语言。Java编程语言是以常规编程语言作为基础,进行重新开发形成的编程语言,能够依据多个不同电子计算机的系统内容,展开对多个平台的运用。
2.1.2 JSP技术介绍
客户端首先对JSP页面进行请求,将待访问的.jsp文件转译为对应的.java文件,产生的源文件进行编译变成.class文件,执行完之后把响应传给客户端。如果当JSP获取到相关请求的时候,如果其引擎收到请求,就需要设计最新的JSP,这时候就需要去找出JSP的文档,然后还要检查其文档上是否出现被编译。如果该文件已经被编译,那么这时就会对其Servlet进行重新编译,然后再将其请求直接交给该引擎进行编译,程序中所使用的JAVA程序代码作用主要是对数据库进行增删改查,对Web网页进行定位,从而达到网站编辑的目的。用JSP开发出来的网站本身就会和JAVA客户端是比较相似的,这些都是需要在其服务器内部编写代码进行实现的,并且在其完成之后JSP就需要将其反馈到网页之中,而对于JAVA的程序而言,就是将其结果返回到独立的界面之中。
2.1.3 MySQL介绍
MySQL功能稳定,性能卓越,且开源。MySQL属于关系型数据库,能够将数据保存在不同的表中,降低服务器的负载压力,使数据存储更轻便、灵活且易于操作。对于MySQL数据库而言,该数据库就是本次设计开发的过程之中非常重要的一个部分。并且对于当前的WEB与当前的MySQL使用之中而言,其管理系统具有很大的优势,我们一般都利用MySQL对其数据进行处理,然后再将这些数据进行保存,使用该数据库就会让整个系统的设计更加的灵活多变,并且还可以有效的使得整个系统能够更快的反应。而对于SQL语言来说,所以该数据库本身就有着很高的兼容能力。对其数据库的操作来说,主要就包括对其数据库进行增加、删除、修改等相关功能。
MySQL在进行数据处理时能够快速的响应数据变化,其使用起来简单,其可以针对不同的系统进行使用,在不同的平台之下,虽然有着一定的区别,但是在大致的情况下,其数据库本身差别并不是很大。对于本次设计之中,最后面运行代码的时候出现了被计算机积极拒绝的错误而导致无法连接,这就是由于在相应计算机上的数据库没有启动,导致程序无法运行,所以在运行程序之前还需要对其服务进行启动,然后其相应的客户端就可以连接到数据库之中,对于客户端而言,就可以直接使用命令或者是一定的图像界面登录到当前的数据库之中。
2.1.4 SSM介绍
SSM主要包括Spring、SpringMVC、mybatis,通过view层、service层、dao层,降低平台的耦合度。
2.1.5 黑盒测试技术介绍
黑盒测试,大体来说,就是模仿使用本平台的用户,在完全不了解代码的情况下使用本平台的功能,得到测试结果。软件测试也是一个较大的工程,应用最普遍测试两种,通常情况下,黑盒测试中应用的是划分方法,白盒中应用的是覆盖法,测试重要的一点就是将测试结果、过程以及反馈都记录清楚,在下次同样出现问题时,可直接知道系统出现的问题类型,便于系统开发人员的维护。测试是一长久的工作,需要进行反复的测试和修改,一直到测试结果符合测试标准,进而放心系统投入真正的使用。
2.2 工具类介绍
2.2.1 Navicat Premium工具介绍
Navicat Premium是一套数据库管理工具,Premium版是Navicat的高级版本,聚其他各版本的Navicat的功能为一体。
2.2.2 Eclipse工具介绍
选用Eclipse的原因,首先是因为Eclipse是一个开源的工具,同时Eclipse是一个扩展性极高的Java开发软件,还支持很多的插件,时Eclipse在编写Java时具有很高的灵活性和简便性。
2.3 本章小结
本章主要介绍了选取Java语言、选取JSP技术开发本平台的原因,还有使用MySQL与Nvicat管理开发数据库的原因,以及使用Eclipse作为开发工具的原因,最后是对本平台的测试方法‘黑盒测试’的介绍与黑盒测试的功能测试方法。此章能够使读者更好地理解开发本平台所使用的技术方法以及开发工具。本模块的安全测试主要是让测试人员通过非法的手段和方式入侵系统,观察系统是否能够被入侵,以及查看的系统的安全性。系统登陆安全测试。用户必须通过注册被授权之后,输入正确的账号密码的情况下登录系统,密码与用户名必须可以互相对应,输入错误三次将锁定账户。支付安全性。登录进入系统后,用户在支付过程中,保障支付密码的安全性以及保证支付速度的快捷性。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/595656.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python信息抽取——帮您更好地利用数据

Python信息抽取——帮您更好地利用数据 什么是Python信息抽取? Python信息抽取是指利用Python编写程序,从大量的非结构化数据中提取有用的信息的技术。这些数据可以是网页、文本文件、PDF等各种格式,而Python信息抽取则可以帮助您快速、准确…

分享一个case when then when then end的sql语句编写用法

目录 写作背景我和若依的前一部分相同思路我的后续解决思路(不建议)若依后续解决思路(建议)若依后续解决思路举例 写作背景 平时我用case when then else end的机会也不多,之前用它来做对select结果进行计算&#xff…

chatgpt赋能python:Python代码20行,助力千万SEO从业者快速实现网站分析

Python代码20行,助力千万SEO从业者快速实现网站分析 SEO是现代数字营销的核心战略之一。对于千万从业者而言,网站分析是SEO实践的重要一环。而Python作为一门高效、简洁的编程语言,其丰富的第三方库和易学易用的语法使其成为网站分析的强大工…

【MySQL】从0到1打开数据库管理

目录 前言: 一.认识MySQL 二.安装MySQL数据库 三、启动和停止MySQL服务 3.1启动服务的两种方式 3.2停止服务的两种方式 四.链接客户端 4.1使用自带的命令行窗口 4.2使用系统自带的命令窗口 五.MySQL是存储数据的模型 六.SQL语言 结尾: 前言&a…

设计二:51单片机外部中断控制

目录 一、设计内容 二、中断相关知识 1、51单片机中断源 2、中断系统特殊功能寄存器 3、中断函数与函数调用区别 三、仿真原理图 四、程序设计 五、仿真结果 六、思考题 作者有话说 一、设计内容 本次设计使用2个按键,在无按键按下时,最下面一…

chatgpt赋能python:Python代码50行:如何使用Python进行SEO分析

Python代码50行:如何使用Python进行SEO分析 随着互联网的发展,Search Engine Optimization(SEO)已经成为企业网络营销策略中至关重要的一环。而Python作为一种全能的编程语言,已经逐渐成为许多SEO工程师的首选工具。本…

chatgpt赋能python:Python修改List的教程

Python修改List的教程 当涉及到Python编程时,对于处理和管理数据,List是一个非常常见和有用的数据结构。像大多数数据结构一样,有时需要对List进行修改,以便更好地满足程序的需求。因此,本文将向您展示如何使用Python…

数据结构与算法09:二叉树

目录 【树】 【二叉树】 二叉树的遍历 Go代码实现 二叉树的复杂度分析 【二叉搜索树】 Go代码实现 【每日一练:移除元素】 【树】 什么是树?这个不用解释了吧,马路两边种的都是树。数据结构里面的“树”和现实生活中的树类似&#…

chatgpt赋能python:Python会动的图形:如何让你的网站活力四射

Python会动的图形:如何让你的网站活力四射 如果你想让你的网站更具生命力、吸引力和互动性,一种非常有效的方式是使用动态图形。而Python有许多强大的库可以帮助你实现这一目标。在本篇文章中,我们将讨论Python会动的图形的好处、如何实现和…

过滤器JavaWeb:Filter与拦截器Spring:Intercepter

过滤器与拦截器若同时存在,先执行过滤器的放行前,再执行整个拦截器,最后再执行过滤器的放行后 过滤器会拦截所有资源(包括静态资源),拦截器只会拦截Spring环境的资源 Filter的使用 1、创建一个类implement…

深蓝学院C++基础笔记 第 1 章 C++初探

第 1 章 C初探 1&#xff0e;从Hello World 谈起 Hello World: #include <iostream> int mian() { std::cout << "Hello World!" << std::endl; }函数: 一段能被反复调用的代码&#xff0c;可以接收输入&#xff0c;进行处理并(或)产生输出-返回…

Postgres vs MySQL

主要区别及示例 简而言之&#xff0c;Postgres 和 MySQL 之间的主要区别实际上归结为主索引和辅助索引的实现方式以及数据的存储和更新方式。 让我们进一步探讨这个问题。 但首先... 基础知识 索引是一种数据结构&#xff08;主要是 B 树&#xff09;&#xff0c;允许通过…

DAY01_MySQL基础数据类型navicat使用DDL\DML\DQL语句练习

目录 1 数据库相关概念1.1 数据库1.2 数据库管理系统1.3 常见的数据库管理系统1.4 SQL 2 MySQL2.1 MySQL安装2.1.1 安装步骤 2.2 MySQL配置2.2.1 添加环境变量2.2.2 MySQL登录2.2.3 退出MySQL 2.3 MySQL数据模型2.4 MySQL目录结构2.5 MySQL一些命令2.5.1 修改默认账户密码2.5.2…

Linux 计划任务(at与crontab)

一次性计划任务 at Linux 中的【 at 】 命令是用来创建一次性计划任务的&#xff0c; at 命令有一个服务 atd 以后台的模式运行&#xff0c;通过检查当前的时间来决定是 否运行 " 计划 " &#xff0c;默认情况下&#xff0c; atd 服务每 60 秒检 查一次&#x…

【Web服务应用】Nginx服务

Nginx服务 一、Nginx概述1.1Nginx特点1.2Nginx作用1.3Nginx与Apache的差异 二、Nginx进程模型三、编译安装Nginx3.1Nginx服务的检查、启动、停止&#xff0c;重载3.2平滑升级3.3把nginx进程加入到系统服务当中 四、Nginx服务的主配置文件nginx.conf4.1补充什么是IO多路复用4.2根…

R语言:移动平均计算及绘图

问题描述 现在有一个分日期记录DAU的数据&#xff0c;现在需要绘制其360,180,90,30,7日移动平均值&#xff0c;来观测消除了波动干扰的DAU趋势 (实际移动在股价趋势图上非常常见) 原始数据格式如下&#xff1a; day &#xff08;character&#xff09; dau &#xff08;int…

Docker+Jenkins+Gitee自动化部署maven单模块项目

1.简介 各位看官老爷&#xff0c;本文为Jenkins实战&#xff0c;注重实际过程&#xff0c;阅读完会有以下收获&#xff1a; 了解如何使用Docker安装Jenkins了解如何使用Jenkins部署maven项目了解如何使用JenkinsGitee实现自动化部署 2.Jenkins介绍 相信&#xff0c;正在读这…

2023年上半年软件设计师上午真题及答案解析

1.计算机中&#xff0c;系统总线用于( )连接 A.接口和外设 B.运算器&#xff0c;控制器和寄存器 C.主存、外设部件 D.DMA控制器和中断控制器 2.在由高速缓存、主存和硬盘构成的三级存储体系中&#xff0c;CPU执行指令时需要读取数据&#xff0c;那么DMA控制…

深入理解Linux虚拟内存管理(一)

系列文章目录 Linux 内核设计与实现 深入理解 Linux 内核&#xff08;一&#xff09; 深入理解 Linux 内核&#xff08;二&#xff09; Linux 设备驱动程序&#xff08;一&#xff09; Linux 设备驱动程序&#xff08;二&#xff09; Linux 设备驱动程序&#xff08;三&#xf…

ubantu换配置源

文章目录 1.配置镜像源位置2.进入终端&#xff0c;切换到/home/user/etc/apt/3.默认这个文件是只读的&#xff0c;我们修改一下权限4.修改之前&#xff0c;我们先备份一下系统原来配置的源5.开始修改&#xff0c;打开/etc/apt/sources.list文件&#xff0c;将原来的内容删除&am…