当前位置: 首页 > news >正文

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

【摘要】农业是我国国民经济的重要组成部分,随着信息化的普及,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作为开发工具的原因,最后是对本平台的测试方法‘黑盒测试’的介绍与黑盒测试的功能测试方法。此章能够使读者更好地理解开发本平台所使用的技术方法以及开发工具。本模块的安全测试主要是让测试人员通过非法的手段和方式入侵系统,观察系统是否能够被入侵,以及查看的系统的安全性。系统登陆安全测试。用户必须通过注册被授权之后,输入正确的账号密码的情况下登录系统,密码与用户名必须可以互相对应,输入错误三次将锁定账户。支付安全性。登录进入系统后,用户在支付过程中,保障支付密码的安全性以及保证支付速度的快捷性。

 

 

相关文章:

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

【摘要】农业是我国国民经济的重要组成部分,随着信息化的普及,4G网络、光纤以及5G网络也日益完善,农业信息化的发展成为了必然。同时,由于本年疫情原因,导致农作物积压销售,甚至腐烂造成不必要的浪费&#…...

视频转换、视频压缩、录屏等工具合集:迅捷视频工具箱

这是一款功能强大的视频处理软件,提供了多种视频处理功能。可以使用该软件进行视频剪辑、视频转换、音频转换、视频录像、视频压缩、字幕贴图等多种操作。软件界面简洁易用,操作方便,可以满足各种视频处理需求。 基本功能 视频压缩&#xff…...

理解时序数据库的时间线

在当今数据爆炸的时代,时序数据已经成为企业和组织中不可或缺的一部分。它们包括了从传感器、监控设备、日志记录系统和金融交易等多种来源的大量数据,这些数据按照时间顺序排列,记录了各种事件和活动的发生和变化。时序数据的分析和处理对于…...

音视频技术开发周刊 | 295

每周一期,纵览音视频技术领域的干货。 新闻投稿:contributelivevideostack.com。 微软炸通Windows与ChatGPT全家桶!人手一个Copilot,AI宇宙降临 三位OpenAI掌舵人亲自撰文:我们应该如何治理超级智能? OpenA…...

15稳压二级管

目录 一、基本原理 二、I-V特性 三、工作原理 四、参数 1、Vz 2、Zzt和Zzk 3、IrVr 4、VfIf 5、Pd 五、应用 1、示例1 2、串联应用 3、钳位电路 六、动态电阻 一、基本原理 稳压二极管或“击穿二极管”(有时也称为齐纳二极管)基本上与标准PN结二极管相同&#xf…...

一些零零碎碎的记录

Questions1. 用户访问多网址服务器同一个IP是怎么回事 Q:用户访问服务器的同一个IP不同网址,服务器是如何区分的A: 在 HTTP 协议中,客户端通过发送请求报文来向服务器请求资源。每个 HTTP 请求都包含一个 HTTP 头部,其中包括了一些关键信息&…...

MyBatis - Spring Boot 集成 MyBatis

文章目录 1.版本要求2.导入依赖3.自动配置2.可配置项 MyBatis-Spring-Boot-Starter 可以帮助你更快地在 Spring Boot 之上构建 MyBatis 应用。通过使用该模块我们能够快速实现以下目的: 构建单体应用程序将几乎不需要样板配置使用更少的 XML 配置 1.版本要求 MyB…...

常见开源协议介绍

开源协议是指开放源代码软件的使用、修改和分发的规则。开源协议的出现,使得开发者可以在保护自己的知识产权的同时,也可以让其他人使用、修改和分发自己的代码。本文将介绍几种常见的开源协议。 一、GPL协议 GPL(GNU General Public Licens…...

第十九章行为型模式—中介者模式

文章目录 中介者模式解决的问题结构实例存在的问题适用场景 中介者模式和代理模式的区别代理模式中介模式桥接模式总结 行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象无法单独完成的任务,它涉及算法…...

AKStream部署1:ZLMediaKit流媒体服务器(win)

环境准备: windows10/11 visual stadio 2022(.net 6) cmake 3.22.0 git bash 没讲究直接下最新的 ffmpeg : ffmpeg-5.1.2-full_build VLC播放器:VLC media player ZLMediaKit:gitee地址 1、安装上述软件 例ffmpeg下载解压至某自定…...

【Redis】Redis 中地理位置功能 Geospatial 了解一下?

文章目录 前言一、Geospatial Indexes 的数据结构二、常用命令三、实用场景示例1. 找出某一经纬度周围的餐馆2. 按照距离排序查询景点 四、在实际开发中,需要注意以下几点: 前言 Geospatial Indexes 是 Redis 提供的一种数据结构,用于存储和…...

Qt Qml 实现键鼠长时间未操作锁屏

文章目录 摘要实现思路键盘鼠标监控百度到的方法我的自己方法 最后 关键字: Qt、 Qml、 QInputEvent 、 QStandardItem、 eventFilter 摘要 今日需求: 项目中需要实时检测用户是否长时间为操作键盘和鼠标,如果超过预设时间未操作键盘和…...

常用的数字高程模型(DEM)数据介绍,附免费下载

常用的数字高程模型(DEM)数据:​ ETOPO(1.8千米) ETOPO是一种地形高程数据,由NGDC美国地球物理中心发布,与大多数高程数据不同的是,它还包含海底地形数据。 SRTM15(450…...

字节跳动面试挂在2面,复盘后,决定二战.....

先说下我基本情况,本科不是计算机专业,现在是学通信,然后做图像处理,可能面试官看我不是科班出身没有问太多计算机相关的问题,因为第一次找工作,字节的游戏专场又是最早开始的,就投递了&#xf…...

简述熔断、限流、降级

高并发场景指的是在大量用户同时访问服务时,服务能够保持稳定和高效运行的能力。 常用的解决高并发场景下服务不可用问题的技术手段包括熔断、限流和降级: - 熔断:当服务的错误率超过一定阈值时,熔断器会自动断开服务的调用&…...

Maven 工具

Maven 工具 Maven简介Maven 基础概念创建 Maven项目依赖配置生命周期与插件分模块开发聚合和继承聚合继承聚合与继承的区别 属性版本管理多环境配置与应用私服 Maven简介 Maven 本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM…...

iptables扩展匹配条件

文章目录 1. multiport模块2. iprange模块3. string模块4. time模块5. icmp模块6. connlimit模块7. limit模块8.tcp扩展模块9.state模块10 Iptables自定义链1.1 为什么要使用自定义链1.2 创建自定义链1.3 引用自定义链1.4 重命名自定义链1.5 删除自定义链 1. multiport模块 常…...

直播录音时准备一副监听耳机,实现所听即所得,丁一号G800S上手

有些朋友在录视频还有开在线会议的时候,都会遇到一个奇怪的问题,就是自己用麦克风收音的时候,自己的耳机和别人的耳机听到的效果不一样,像是音色、清晰度不好,或者是缺少伴奏以及背景音嘈杂等,这时候我们就…...

回归测试最小化(贪心算法,帕累托支配)

回归测试最小化(贪心算法,帕累托支配) 介绍 有时我们不能只是重新运行我们的测试(例如,当我们 换界面)。 回归测试可能很昂贵: (1)一些公司通宵运行回归测试套件。 (2) 对于嵌入式系统,我们可能必须测试正在使用的软件&#xff0…...

Python系列模块之标准库shutil详解

感谢点赞和关注 ,每天进步一点点!加油! 目录 一、shutil介绍 二 、使用详解 2.1 复制函数 2.1.1 shutil.copy 2.1.2 shutil.copy2 2.1.3 shutil.copyfile 2.1.4 shutil.copytree 2.2 移动文件 2.2.1 shutil.move 2.3 删除文件 2.3…...

pb如何播放Flash

---- Flash动画不仅包含动画,还可有声音、超文本连接,同时由于它是矢量格式文件,生成的这种包含动画、声音等的文件(*.swf)很小,非常适 合在网络上传输使用,因而在当前Web网页技术中得到很快发展。本文讨论在PowerBuilder6.5数据库编程中用Flash4提供的控件"Swflas…...

独立成分分析ICA

独立成分分析 ICA 1. 算法原理简介2.源信号与混合信号的差异2.1 独立性 Independence2.2 高斯性 Normality2.3 复杂性 Complexity 3.非高斯性的度量3.1 峭度 Kurtosis 参考文献 blind source separation (BSS) 1. 算法原理简介 mixing得到signal mixture过程: x 1…...

从零开始之如何在React Native中使用导航

好的,让我们开始学习如何在React Native中使用导航。 安装React Navigation 首先,你需要安装React Navigation库。在项目文件夹中打开终端窗口,并运行以下命令: npm install react-navigation/native 或者 yarn add react-nav…...

RAW、RGB 、YUV三种图像格式理解

文章目录 1. 背景2. 相关概念2.1 颜色与色彩空间2.2 RAW图像2.3 RGB图像2.4 YUV图像 3. 分类简图 RAW、RGB 、YUV三种图像格式理解 1. 背景 在工作中,经常听到用来描述图像格式的RAW,RGB与YUV,但一直没有系统的进行了解,处于局部认…...

关于对【mysql存储过程】的理解与简述

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/130857854 出自【进步*于辰的博客】 【存储过程】这个知识点,我在大二下期学习【mys…...

贪吃蛇游戏的制作记录

关于蛇的实现代码 #include "snake.h" #include "globalvar.h" #include <graphics.h> int fangXiang 1;//方向 0 右 1 上 2 左 3 下 int snakeHang[100] { 10,11,12,13,14 };//蛇 每节所在行 int snakeLie[100] { 10,10,10,10,10 };//蛇 每节所…...

Go基础入门

Go是一种现代的、高效的、开源的编程语言&#xff0c;由Google开发。它的语法简洁、易于学习和使用&#xff0c;支持并发编程&#xff0c;特别适合构建网络应用和分布式系统。本篇文章将介绍Go语言的基础语法和常用特性&#xff0c;帮助初学者快速入门。 一、Go语言的基础语法…...

JavaScript教程(二)

BOM浏览器对象模型 什么是BOM BOM&#xff08;Browser Object Model&#xff09;即浏览器对象模型&#xff0c;它提供了独立于内容而与浏览器窗口进行交互的对象&#xff0c;其核心对象是 window&#xff1b;BOM由一系列相关的对象构成&#xff0c;并且每个对象都提供了很多方…...

设计模式之代理模式

代理模式的定义是&#xff1a;为其他对象提供一种代理以控制对这个对象的访问。 因为代理类与服务类实现同样的接口&#xff0c;所以代理类能代替服务类提供给客户端。当客户端使用代理类时&#xff0c;代理类能对请求进行处理&#xff08;例如增加访问控制、缓存请求结果、隐…...

初识MySQL

&#x1f495;与其抱怨生活的不公&#xff0c;不如积极行动改变它。&#x1f495; &#x1f43c;作者&#xff1a;不能再留遗憾了&#x1f43c; &#x1f386;专栏&#xff1a;MySQL学习&#x1f386; &#x1f697;本文章主要内容&#xff1a;简单了解什么是MySQL、MySQL的发展…...