【网站项目】SpringBoot796水产养殖系统
🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。
- 代码可以私聊博主获取。🌹
 - 赠送计算机毕业设计600个选题excel文件,帮助大学选题。
 - 赠送开题报告模板,帮助书写开题报告。
 作者完整代码目录供你选择:
- 《Springboot网站项目》400套
 - 《ssm网站项目》800套
 - 《小程序项目》300套
 - 《App项目》500套
 - 《python网站项目》600套
 ⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡
项目演示
 



摘    要
 
 
传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,水产信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能满足广大用户的需求,因此就应运而生出相应的水产养殖系统。
本水产养殖系统分为管理员还有用户两个权限,管理员可以管理用户的基本信息内容,可以管理公告信息以及水产信息,能够与用户进行相互交流等操作,用户可以查看水产信息,可以查看公告以及查看管理员回复信息等操作。
该水产养殖系统采用的是WEB应用程序开发中最受欢迎的小程序结构模式,使用占用空间小但功能齐全的MySQL数据库进行数据的存储操作,系统开发技术使用到了JSP技术。该水产养殖系统能够解决许多传统手工操作的难题,比如数据查询耽误时间长,数据管理步骤繁琐等问题。总的来说,水产养殖系统性能稳定,功能较全,投入运行使用性价比很高。
关键词:水产养殖系统;MySQL数据库;springboot技术
第一章 课题背景及研究内容
1.1 课题背景
信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古以来的短板,有效的提升管理的效率和业务水平。传统的管理模式,时间越久管理的内容越多,也需要更多的人来对数据进行整理,并且数据的汇总查询方面效率也是极其的低下,并且数据安全方面永远不会保证安全性能。结合数据内容管理的种种缺点,在互联网时代都可以得到有效的补充。结合先进的互联网技术,开发符合需求的软件,让数据内容管理不管是从录入的及时性,查看的及时性还是汇总分析的及时性,都能让正确率达到最高,管理更加的科学和便捷。本次开发的水产养殖系统实现了字典管理、公告管理、水产资讯管理、水产管理、水产收藏管理、水质管理、饲料管理、饲料使用管理、养殖区域管理、养殖区域收藏管理、养殖区域留言管理、用户管理、管理员管理等功能。系统用到了关系型数据库中王者MySql作为系统的数据库,有效的对数据进行安全的存储,有效的备份,对数据可靠性方面得到了保证。并且程序也具备程序需求的所有功能,使得操作性还是安全性都大大提高,让水产养殖系统更能从理念走到现实,确确实实的让人们提升信息处理效率。
1.2 开发目的和意义
小康时代的到来,使得人们满意度上升,生活各个方面都产生了许多变化,比如办公都有相应软件,很多工作都要求员工会操作计算机,可以说现在的时代基本被软件覆盖得差不多了,软件行业的特征就是大家都在使用软件代替传统手工记载操作,软件的出现让我们的生活还有工作又向前翻了新篇章。水产养殖系统是一个利用软件形式管理水产信息的平台。管理员管理租车信息也不再需要用纸张进行信息记录及查询管理操作,所有的操作都是利用电脑进行办公,用户需要使用密码还有用户名进行系统登录操作,按照系统主页界面的各个功能展示进行相关操作,无论添加或者是删除,拟或是修改查询等操作,时间上不需要太多,短短几分钟就会搞定。况且软件是不限制办公地点以及办公时间的,只要有操作需要,随时随地登录系统就可以完成任务。办公效率提高这个不再是难题。公告租赁店对于租车信息的管理操作早就应该进行变革了,利用软件管理租车信息,节约人力物力成本,这是一个新的租车信息管理的创举。
1.3 论文研究内容
本次开发的水产养殖系统的论文从下面几个部分进行编写:
第一章:本章介绍了程序开发背景和目的意义,罗列出了论文写作内容信息,让我们知道论文编写是如何进展的。
第二章:本章主要讲解了系统开发用到的相关技术方面的知识,比如SSM技术,MySQL数据库知识等内容。帮助人们更好的理解系统技术上面的相关知识。
第三章:文章第3章主要介绍了系统开发的可行性问题,从经济,时间,操作等内容上面进行了大致介绍,确定系统开发确实可行,然后分析了系统的开发流程,确定系统需要具备的大概的功能,保障系统能够稳定使用和运行。
第四章:这个章节主要绘制出了系统功能架构,让我们更直观了解水产养殖系统的功能,对后台数据库表进行了设计,还画出了对应的E-R图。
第五章:这个章节主要介绍系统各个部分功能具体实现的界面效果。让我们了解到各个部分的功能详细情况。
第六章:这个部分主要就是对水产养殖系统进行整体测试,看看程序是否能够达到用户使用要求,程序能否进行验收上交操作。
第二章 相关技术
 
 
本次开发水产养殖系统使用的是Vue进行程序开发,水产养殖系统的数据信息选择MySQL数据库进行存放。
2.1 VUE介绍
Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。
2.2 MySQL数据库
开发的程序面向用户的只是程序的功能界面,让用户操作程序界面的各个功能,那么很多人就会问,用户使用程序功能生成的数据信息放在哪里的?这个就需要涉及到数据库的知识了,一般来说,程序开发通常就会对常用数据存储工具的特点进行分析比对,比如Mysql数据库的特点与优势,Access数据库的特点与优势,Sqlserver数据库的特点与优势等,最终看哪个数据库与需要开发的程序比较匹配,也符合程序功能运行需要的数据存储要求,比如,需要开发商业级别的程序,存储的数据对数据库要求较高,可以选用Oracle,如果只是比较简单的程序,对数据存储没有过多要求,可以选用微软旗下的Access,当开发程序要求数据库占用空间小,并能满足程序数据存储要求时,就可以考虑Oracle公司从瑞典MySQL AB公司在很早之前就收购过一个关系型数据库,它是现在的Mysql数据库。所以水产养殖系统后台数据库使用的是MySQL进行数据库方面的开发工作的,MySQL它是微软开发的一款平台软件,这个软件可以给用户提供高效率的智能数据,并且数据信息还是很可靠,使用它进行数据存储可以满足大众企业管理各种各样的数据信息的需求。MySQL在MySQL版本里面它是最全面的,也是最强大的开发平台, MySQL在许多关键之处都进行了改进的操作,它也增加了很多新特性,这些改进和更新让公司能够对关键应用程序进行高效运行,并且还可以让公司降低发送信息给用户的成本,以及降低数据信息管理的基础设施。因此MySQL在公司以及企业中它的地位是非常高的,ERP还有OA系统,以及公司财务的系统都离不开MySQL,在软件开发非常流行的今天,MySQL也被用来作为网站开发的网站后台数据库,可以说公司使用MySQL进行数据管理不仅节约成本,还可以让公司数据信息的管理效率大大提高,公司数据存放在MySQL平台上,数据信息的安全性也不用担心,因为MySQL他可以给数据库里面的日志还有数据文件以及整个数据库进行加密操作,另外MySQL还提供在线备份功能,这样可以节约存储空间,加快数据备份的速度。总之,选择MySQL进行在线系统的后台数据库开发是很有优势的。这是个不错的软件选择。
第三章 系统分析
 
 
3.1可行性分析
可行性分析从时间,经济以及操作和技术上面进行调查和研究,确保合理利用信息资源,避免在进行程序设计过程中因为考虑不周到所带来的困扰,帮助我们更好的进行程序设计。
3.1.1时间可行性
本次进行系统开发,我预留了两个月时间来完成,从系统的需求分析,功能结构设计,功能详细设计以及系统测试等环节,两个月时间是可以完成程序开发操作的,我打算每天早中晚都进行程序的编写操作,这期间也包括查阅各种资料信息,加上同学以及老师的帮助和指点,相信程序开发的时间也会缩短不少。所以时间上是可行的。
3.1.2 经济可行性
水产养殖系统的开发平台是IDEA,数据库选用MySQL数据库,使用的浏览器都是大众浏览器,这些软件是不需要收费就能进行下载安装操作的。在系统开发的硬件选择上面,我使用的是自己的笔记本进行开发操作。因此在进行系统开发时,经济上面无需额外支出。开发出来的程序可以提高办公效率,带来的经济效益比较高,系统开发的投入产出比很可观。
3.1.3 操作可行性
水产养殖系统的界面设计比较简单,界面布局根据用户日常使用习惯进行设计,网站各个功能在导航栏里面清晰可见,网站的数据操作可视化,用户操作网站不需要培训就能上手,只需要跟着网站功能提示进行操作就行。
3.1.4 技术可行性
作为计算机专业学生,在学校期间就学习到许多关于编程方面的知识,像SSM技术,还有MySQL数据库等知识,我对IDEA开发平台以及MySQL数据库的操作也比较熟练,所以技术上面还是有一定把握。
3.1.5 法律可行性
自己本人开发的软件和用到的资料来源都是图书馆以及百度文库和百度网页等渠道,并不涉及违法。在个人毕业设计上面,无论源代码还是论文编写内容不存在抄袭行为。
从上面的经济,操作以及时间上面进行的分析,得出结论就是这次开发的水产养殖系统在开发上面是能够进行的,系统开发出来能创造更大的经济效益,越早开发升值空间越大。
3.2系统流程分析
水产养殖系统的开发也是有对应的流程,开发之前必须要进行用户功能需求的分析,最后根据功能需求进行网站设计还有数据库相关数据的设计工作,此次开发的水产养殖系统开发流程如图3.1所示。
图3.1 程序操作流程图
系统开发完成之后会给用户提供登录入口,在这个界面用户输入的信息会得到验证,通过验证之后才能进去水产养殖系统的访问主界面,系统登录执行流程如下:
图3.2 系统执行流程图
3.3系统功能需求分析
系统的开发离不开前期的需求分析,这个阶段就是让程序员知道自己该做什么事情,在进行需求分析的时候,着重点就是用户对系统的功能要求,这个阶段要是分析得很到位,系统开发出来投入使用时,用户就会发现系统的功能跟用户需求保持一致,程序稳定性也是达标的,可以说需求分析是决定系统开发成败的关键,它主要就是把现实世界进行抽象化,然后把抽象化的对象用来构建模型。
水产养殖系统的受益群体主要是工作人员,该网站能够方便使用者进行数据信息的查找和管理工作,本次开发的网站我们设计的界面展示主要分为管理员界面以及用户界面,具体界面的功能分布如下。
水产养殖系统管理员可以管理用户的基本信息,可以管理公告信息,可以管理公告信息等。
3.4 系统非功能需求分析
(1)完整性需求
本次开发的水产养殖系统里面记录的数据信息不能保持为空,并且数据信息一定要核对正确才行,系统里面数据之间存在的联系不能出错,不能够张冠李戴,数据表里面同一数据在不同数据表里面的显示内容要一样。
(2)性能需求
用户在操作水产养殖系统的各个部分内容时,弹出的页面响应时间不能太长,最好控制在三秒钟以内,最大限制值就是四秒,这个是给用户一个好的程序体验。并且系统还要能够承载多人同时在线进行水产养殖系统的访问操作。
(3)界面需求
水产养殖系统界面设计上面应该考虑到用户日常操作习惯,比如导航栏的设计不能在右边,这个完全违背了用户使用网站的操作习惯,同时功能导航的字体以及颜色应该比较显眼,方便用户容易找寻,避免用户在进行功能操作上面浪费太多时间。
(4)安全性需求
水产养殖系统的安全性要有保证,给用户一种可靠,可以信赖的感觉,系统在运行过程中,不能总是出错,与用户进行功能界面交互时,要及时给出反馈信息,另外系统要设置登录窗口,让不是系统的用户不可以进行系统功能界面的访问操作。系统用户也要经过用户名密码的填写操作,才可以进入系统主界面,这样就可以保障系统数据信息处于一种安全状态。
第四章 系统设计
 
 
4.1 总体功能
水产养殖系统是根据需求定制开发,开发软件选用IDEA平台配合MySQL数据库进行开发环境的搭建操作,网站采用WEB应用程序中最流行的小程序结构进行开发,用户访问系统数据仅仅需要在客户端安装谷歌浏览器或者是当下常用浏览器就可以访问网站内容。
4.2 系统模块设计
水产养殖系统系统在进行系统中功能模块的划分时,采用层次图来进行表示。层次图具有树形结构,它能使用矩形框来描绘数据信息。顶层代表的数据结构很完整,顶层下面的矩形框表示的数据就是子集数据,当然处于最下面的矩形框就是不能再进行细分的数据元素了,使用层次方框图描述系统功能能让用户一目了然,能够明白系统的功能,以及对应功能板块下面的子功能都可以清楚领会。水产养殖系统分为管理员和用户两部分操作角色,下面将对他们的功能进行阐述。
管理员可以管理用户的基本信息,可以管理等功能。管理员功能结构图如下:
图4.1 管理员功能结构图
4.3 数据库设计
4.3.1 数据库设计
数据库设计它是建立在数据库还有它对应的应用系统的一门技术,只要是信息系统开发还有系统建设,都会用到数据库设计,但是这个数据库设计并不是很简单就可以完成的,设计期间会遇到很多麻烦事,在设计期间需要考虑再考虑,逐步完善。主要内容也就是把数据库里面的对象还有对象之间的联系进行系统规划操作,还有把他们结构化的过程。
4.3.2 数据库E-R 图
E-R 图分成三部分内容,分别是实体,实体的属性以及实体之间的关系这三个部分的内容,通常长方形表示的就是实体,椭圆形表示的就是属性,菱形表示的就是关系了。在E-R 图里面,实体就是对象,比如学生,人,音乐等都能代表实体,实体都具备自己的成员,比如张三就是学生实体里面的成员。一个学生会具有自己的姓名,年龄,出生日期等信息,这些信息就是学生这个实体的属性,因此E-R 图属性代表的就是数据对象具备的属性,E-R 图的关系就是实体跟实体之间的关系了,比如学生跟课程会存在一定的关系,这种关系使用菱形进行表示。
(1)下图是用户实体和其具备的属性。
用户实体属性图
(2)下图是养殖区域实体和其具备的属性。
养殖区域实体属性图
(3)下图是水产收藏实体和其具备的属性。
水产收藏实体属性图
(4)下图是公告实体和其具备的属性。
公告实体属性图
(5)下图是饲料实体和其具备的属性。
饲料实体属性图
(6)下图是水产资讯实体和其具备的属性。
水产资讯实体属性图
(7)下图是养殖区域收藏实体和其具备的属性。
养殖区域收藏实体属性图
(8)下图是养殖区域留言实体和其具备的属性。
养殖区域留言实体属性图
(9)下图是饲料使用实体和其具备的属性。
饲料使用实体属性图
(10)下图是水质实体和其具备的属性。
水质实体属性图
(11)下图是水产实体和其具备的属性。
水产实体属性图
4.3.3 数据库表设计
数据库里面的数据表存放的就是各种数据记录,我们在进行系统增删改查操作时,其实也是在对应数据表里面进行的增删改查操作,一个好的数据库能够缩短信息处理时间,所以说数据库的设计工作不容小觑,数据库里面设置哪些表,表里面的字段设计以及字段类型和字段长度等信息都要考虑周到才行,比如时间这个字段,它的数据类型就不能是int型,不然在系统操作中就会弹出输入数据格式不符合要求的报错提示。下面简单介绍水产养殖系统的一些数据表。
表4.1字典表
|   序号  |   列名  |   数据类型  |   说明  |   允许空  | 
|   1  |   Id  |   Int  |   id  |   否  | 
|   2  |   dic_code  |   String  |   字段  |   是  | 
|   3  |   dic_name  |   String  |   字段名  |   是  | 
|   4  |   code_index  |   Integer  |   编码  |   是  | 
|   5  |   index_name  |   String  |   编码名字  |   是  | 
|   6  |   super_id  |   Integer  |   父字段id  |   是  | 
|   7  |   beizhu  |   String  |   备注  |   是  | 
|   8  |   create_time  |   Date  |   创建时间  |   是  | 
表4.2公告表
|   序号  |   列名  |   数据类型  |   说明  |   允许空  | 
|   1  |   Id  |   Int  |   id  |   否  | 
|   2  |   gonggao_name  |   String  |   公告名称  |   是  | 
|   3  |   gonggao_photo  |   String  |   公告图片  |   是  | 
|   4  |   gonggao_types  |   Integer  |   公告类型  |   是  | 
|   5  |   insert_time  |   Date  |   发布时间  |   是  | 
|   6  |   gonggao_content  |   String  |   公告详情  |   是  | 
|   7  |   create_time  |   Date  |   创建时间  |   是  | 
表4.3水产资讯表
|   序号  |   列名  |   数据类型  |   说明  |   允许空  | 
|   1  |   Id  |   Int  |   id  |   否  | 
|   2  |   news_name  |   String  |   水产资讯名称  |   是  | 
|   3  |   news_photo  |   String  |   水产资讯图片  |   是  | 
|   4  |   news_types  |   Integer  |   水产资讯类型  |   是  | 
|   5  |   insert_time  |   Date  |   发布时间  |   是  | 
|   6  |   news_content  |   String  |   水产资讯详情  |   是  | 
|   7  |   create_time  |   Date  |   创建时间  |   是  | 
表4.4水产表
|   序号  |   列名  |   数据类型  |   说明  |   允许空  | 
|   1  |   Id  |   Int  |   id  |   否  | 
|   2  |   yangzhiquyu_id  |   Integer  |   养殖区域  |   是  | 
|   3  |   yonghu_id  |   Integer  |   用户  |   是  | 
|   4  |   shuichan_name  |   String  |   水产名称  |   是  | 
|   5  |   shuichan_uuid_number  |   String  |   水产编号  |   是  | 
|   6  |   shuichan_photo  |   String  |   水产照片  |   是  | 
|   7  |   shuichan_file  |   String  |   水产附件  |   是  | 
|   8  |   shuichan_types  |   Integer  |   水产类型  |   是  | 
|   9  |   shuichan_number  |   Integer  |   养殖数量  |   是  | 
|   10  |   toufang_time  |   Date  |   投放日期  |   是  | 
|   11  |   laochu_time  |   Date  |   捞出日期  |   是  | 
|   12  |   shuichan_content  |   String  |   水产介绍  |   是  | 
|   13  |   insert_time  |   Date  |   录入时间  |   是  | 
|   14  |   create_time  |   Date  |   创建时间  |   是  | 
表4.5水产收藏表
|   序号  |   列名  |   数据类型  |   说明  |   允许空  | 
|   1  |   Id  |   Int  |   id  |   否  | 
|   2  |   shuichan_id  |   Integer  |   水产  |   是  | 
|   3  |   yonghu_id  |   Integer  |   用户  |   是  | 
|   4  |   shuichan_collection_types  |   Integer  |   类型  |   是  | 
|   5  |   insert_time  |   Date  |   收藏时间  |   是  | 
|   6  |   create_time  |   Date  |   创建时间  |   是  | 
表4.6水质表
|   序号  |   列名  |   数据类型  |   说明  |   允许空  | 
|   1  |   Id  |   Int  |   id  |   否  | 
|   2  |   yangzhiquyu_id  |   Integer  |   养殖区域  |   是  | 
|   3  |   yonghu_id  |   Integer  |   用户  |   是  | 
|   4  |   shuizhi_uuid_number  |   String  |   水质编号  |   是  | 
|   5  |   shuizhi_photo  |   String  |   水质照片  |   是  | 
|   6  |   shuizhi_file  |   String  |   附件  |   是  | 
|   7  |   shuizhi_types  |   Integer  |   水质状态  |   是  | 
|   8  |   shuizhi_time  |   Date  |   所属日期  |   是  | 
|   9  |   shuizhi_content  |   String  |   水质详情  |   是  | 
|   10  |   insert_time  |   Date  |   上传时间  |   是  | 
|   11  |   create_time  |   Date  |   创建时间  |   是  | 
表4.7饲料表
|   序号  |   列名  |   数据类型  |   说明  |   允许空  | 
|   1  |   Id  |   Int  |   id  |   否  | 
|   2  |   siliao_uuid_number  |   String  |   饲料编号  |   是  | 
|   3  |   siliao_name  |   String  |   饲料名称  |   是  | 
|   4  |   siliao_photo  |   String  |   饲料照片  |   是  | 
|   5  |   siliao_file  |   String  |   附件  |   是  | 
|   6  |   siliao_number  |   Integer  |   数量  |   是  | 
|   7  |   siliao_danwei  |   String  |   单位  |   是  | 
|   8  |   siliao_types  |   Integer  |   饲料类型  |   是  | 
|   9  |   siliao_content  |   String  |   饲料介绍  |   是  | 
|   10  |   insert_time  |   Date  |   录入时间  |   是  | 
|   11  |   create_time  |   Date  |   创建时间  |   是  | 
表4.8饲料使用表
|   序号  |   列名  |   数据类型  |   说明  |   允许空  | 
|   1  |   Id  |   Int  |   id  |   否  | 
|   2  |   siliao_id  |   Integer  |   饲料  |   是  | 
|   3  |   shuichan_id  |   Integer  |   水产  |   是  | 
|   4  |   yonghu_id  |   Integer  |   用户  |   是  | 
|   5  |   siliao_shiyong_number  |   Integer  |   使用数量  |   是  | 
|   6  |   siliao_shiyong_types  |   Integer  |   使用类型  |   是  | 
|   7  |   siliao_shiyong_content  |   String  |   使用缘由  |   是  | 
|   8  |   siliao_shiyong_file  |   String  |   附件  |   是  | 
|   9  |   siliao_shiyong_time  |   Date  |   使用时间  |   是  | 
|   10  |   insert_time  |   Date  |   录入时间  |   是  | 
|   11  |   create_time  |   Date  |   创建时间  |   是  | 
表4.9养殖区域表
|   序号  |   列名  |   数据类型  |   说明  |   允许空  | 
|   1  |   Id  |   Int  |   id  |   否  | 
|   2  |   yangzhiquyu_name  |   String  |   区域名称  |   是  | 
|   3  |   yangzhiquyu_uuid_number  |   String  |   养殖区域编号  |   是  | 
|   4  |   yangzhiquyu_photo  |   String  |   养殖区域照片  |   是  | 
|   5  |   yangzhiquyu_address  |   String  |   养殖区域地点  |   是  | 
|   6  |   yangzhiquyu_types  |   Integer  |   养殖区域类型  |   是  | 
|   7  |   yangzhiquyu_content  |   String  |   养殖区域介绍  |   是  | 
|   8  |   insert_time  |   Date  |   录入时间  |   是  | 
|   9  |   create_time  |   Date  |   创建时间  |   是  | 
表4.10养殖区域收藏表
|   序号  |   列名  |   数据类型  |   说明  |   允许空  | 
|   1  |   Id  |   Int  |   id  |   否  | 
|   2  |   yangzhiquyu_id  |   Integer  |   养殖区域  |   是  | 
|   3  |   yonghu_id  |   Integer  |   用户  |   是  | 
|   4  |   yangzhiquyu_collection_types  |   Integer  |   类型  |   是  | 
|   5  |   insert_time  |   Date  |   收藏时间  |   是  | 
|   6  |   create_time  |   Date  |   创建时间  |   是  | 
表4.11养殖区域留言表
|   序号  |   列名  |   数据类型  |   说明  |   允许空  | 
|   1  |   Id  |   Int  |   id  |   否  | 
|   2  |   yangzhiquyu_id  |   Integer  |   养殖区域  |   是  | 
|   3  |   yonghu_id  |   Integer  |   用户  |   是  | 
|   4  |   yangzhiquyu_liuyan_text  |   String  |   留言内容  |   是  | 
|   5  |   insert_time  |   Date  |   留言时间  |   是  | 
|   6  |   reply_text  |   String  |   回复内容  |   是  | 
|   7  |   update_time  |   Date  |   回复时间  |   是  | 
|   8  |   create_time  |   Date  |   创建时间  |   是  | 
表4.12用户表
|   序号  |   列名  |   数据类型  |   说明  |   允许空  | 
|   1  |   Id  |   Int  |   id  |   否  | 
|   2  |   yonghu_name  |   String  |   用户姓名  |   是  | 
|   3  |   yonghu_phone  |   String  |   用户手机号  |   是  | 
|   4  |   yonghu_id_number  |   String  |   用户身份证号  |   是  | 
|   5  |   yonghu_photo  |   String  |   用户头像  |   是  | 
|   6  |   yonghu_email  |   String  |   用户邮箱  |   是  | 
|   7  |   jinyong_types  |   Integer  |   账户状态  |   是  | 
|   8  |   create_time  |   Date  |   创建时间  |   是  | 
表4.13管理员表
|   序号  |   列名  |   数据类型  |   说明  |   允许空  | 
|   1  |   Id  |   Int  |   id  |   否  | 
|   2  |   username  |   String  |   学生名  |   是  | 
|   3  |   password  |   String  |   密码  |   是  | 
|   4  |   role  |   String  |   角色  |   是  | 
|   5  |   addtime  |   Date  |   新增时间  |   是  | 
第五章 系统实现
 
 
5.1 管理员功能模块的实现
5.1.1 水产列表
如图5.1显示的就是水产列表页面,此页面提供给管理员的功能有:查看水产、新增水产、修改水产、删除水产等。
图5.1 水产列表页面
5.1.2 公告信息管理
管理员可以对公告信息进行管理,可以新增公告信息,修改公告信息,删除无效的公告信息。公告信息管理界面如图5.2所示。
图5.2 公告信息管理页面
5.1.3 公告类型管理
公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员快速删除。下图就是公告类型管理页面。公告类型管理界面如图5.3所示。
图5.3公告类型管理界面
5.1.4 水产资讯管理
如图5.4显示的就是水产资讯管理页面,此页面提供给管理员的功能有:新增水产资讯,修改水产资讯,删除水产资讯。
图5.4水产资讯管理页面
5.1.5 新闻类型管理
如图5.5显示的就是新闻类型管理页面,此页面提供给管理员的功能有:新增新闻类型,修改新闻类型,删除新闻类型。
图5.5 新闻类型管理页面
第六章 系统测试
 
程序软件一旦被开发完成之后,在真正投入日常生活中进行运行使用之前,是必须要经历测试这一个重要的操作环节,因为开发期间注重的是每个单独功能模块的开发,尽管每次开发完成一个单独功能模块时,会通过单元测试进行检验,检验合格才会让程序员继续开发下一个子功能模块,以此类推,当程序员完成所有的系统子功能模块的开发时,这个时候就需要引进系统测试,系统测试就是把所有的子功能模块集成到一起,构建成整个系统,在指定的运行环境下进行运行,主要就是测试系统的所有功能模块在一起是否良好运行,一旦程序软件通过了系统测试这一环节,就意味着它可以进行最终的验收测试了,这个测试步骤的操作用户是程序面向的客户或者是最终用户了。
6.1软件测试
软件测试包括的对象有详细设计,开发出来的软件的运行环境,软件的需求以及软件的源代码内容等,软件测试也包括了五个要素,分别是软件的质量,技术,人员还有流程以及资源这几个要素。软件测试的目标包含了测试的覆盖率信息还有测试效率信息。一般来说,软件测试主要分成了单元测试,集成测试以及系统测试和验收测试这四个阶段的内容,下面将分别进行相关阐述。
单元测试:这个部分需要涉及到程序的代码方面的知识,这个操作环节是程序的开发者进行的,当程序开发者通过代码编写程序的子功能模块时,就会进行单元级别的测试,通常这个环节的测试也会被称作是白盒测试。
集成测试:这个步骤的前提是程序的所有功能模块都已完成开发,这个时候需要把程序所有的子功能模块集成到一起,形成一个完整的系统,此测试的主要目的就是检查这些功能模块集成在一起时的兼容性,也就是检测它们是否按照预期正常运行。
系统测试:当程序测试进入到这个环节时,就意味着程序测试工作已经进行到一半了,这个部分的测试也有另外一个名字,称作是黑盒测试,主要用于测试系统的功能是否按照预期进行运行。
验收测试:开发的程序已经通过了前面的单元测试,集成测试,以及系统测试环节时,就需要进行验收了,这个环节的操作用户就是程序面临的最终用户或者是客户。测试主要目的就是验证开发完成的程序是不是能够符合用户对其的期望,以及程序的所有功能是否符合用户的真正需求。
6.2测试环境
水产养殖系统的测试选用的测试平台是IDEA平台环境,测试时首先需要用户打开MySQL数据库进行数据库文件的附加操作,然后打开IDEA,选择文件打开网站,把水产养殖系统的程序添加进入IDEA平台中,接着把文件部署到tomcat服务器里面,最后运行程序,这时用户可以操作系统里面的各个功能,看看程序有没有达到用户的要求。
6.3 测试用例
6.3.1 用户登录测试
用户登录需要的信息包含登录名称还有对应密码,输入数据信息都正确了才能进行系统访问处理。用户登录测试过程如表6.1所示:
表6.1 用户登录测试表
|   测试目的  |   操作流程  |   测试用例  |   预测结果  |   测试结果  | 
|   用户登录  |   填写用户名密码,点击首页登录按钮  |   错误填写用户名还有密码  |   登录失败  |   提示错误信息  | 
|   正确填写用户名和密码  |   登录成功  |   登录成功  | 
6.4.2 添加公告类别测试
管理员可以在添加公告类别界面输入公告类别名称信息,如果数据信息为空,系统会给出相应提示。只有所有的数据信息都合理输入,管理员才能完成公告类别的添加操作。测试数据见下表:
表6.2添加公告类别测试表
|   测试项目  |   操作流程  |   测试用例  |   预测结果  |   测试结果  | 
|   添加公告类别  |   管理员登陆后点击添加公告类别按钮,添加公告类别信息  |   类别名称为空  |   添加失败,弹出提示按钮  |   添加失败,提示请填写内容  | 
|   合理填写类别名称  |   添加成功  |   添加成功  | 
6.5测试结果
经过此次对水产养殖系统的综合性测试,我们不难发现程序的功能并没有出现明显的逻辑性错误,用户在进行功能操作时,程序基本能根据用户操作情况给出相应的反馈。程序质量以及可靠性在系统的反复测试中都经过了严格检验,程序投入生活使用完全没有问题。
结  论
 
 
水产养殖系统的开发制作,从题目确定到成品完成,自己投入的精力与心血是非常多的。从水产养殖系统的前台页面实现,到水产养殖系统的后台代码的编辑,我用到的软件包括了数据库软件Mysql,Java开发工具IDEA,办公软件Office,浏览器软件Fireworks,图像处理软件Photoshop等,这也是我第一次使用Java语言,开发的这个比较简单的水产养殖系统。
开发水产养殖系统让我明白知识理论与现实实践的差距还是挺大的,很多时候,我们在学习课程知识的时候,都感觉书本上的内容,老师一点就通,然而这次毕设就真正考验了我,原来理论知识和现实实践完全是两码事,开发水产养殖系统一方面让我对在校学习的知识起了一个巩固作用,另一方面让我明白独立学习知识的重要性。在毕设作品完成期间,我才知道要开发一款软件需要经历很多繁琐的步骤,从开始的选题到系统需求分析以及功能板块的设计,还有系统详细实现以及系统测试,每个环节看似简单,其实暗藏很多知识点,这些都需要自己去网上或者是学校的图书馆查阅相对应的资料。每个环节都需要认真对待,要是系统需求分析没有做好,那么在系统设计与实现过程中就会出现很多错误,要么功能不全,要么就是程序开发出来根本不符合用户要求,所以程序的开发是一个知识再造的过程,一个人独自开发完一款软件也就深知这其间的各种不易了。
本次开发的系统整体界面还是比较清晰简明,功能上面考虑得比较全,几乎可以满足用户使用要求。尽管我对这次的毕设付出了许多的努力,但是程序还是有很多不足的地方,系统界面整体感觉还行,但是字体字号的选取上面还是有些不符合现实审美,在程序的CSS样式编码上面,我还有许多不熟悉的地方,虽然经过反复的测试与调试选中了现在这样的程序界面,但是我还是明显感觉到自己对一些常用CSS样式的不熟悉,编码过程中,我还要多次进行资料查看才知道。另外我编写的代码写作不是很规范,可读性比较差,幸运的是,我最终还是实现了系统中所要求的功能。
实践出真知,但是知识也是通过实践变得更加深刻,这次作品制作,让自己的专业知识水平与解决问题的能力得到了提高。也让自己更加明白活到老学到老的真正含义。
总的说来,这次编写毕业设计作品,我真正锻炼了自己的实际操作能力,以前只知道理论知识,现在通过实践,我对理论知识的认识变得更加深刻,由于编写程序时间比较短暂,程序开发期间遇到过很多坎坷,但最后都通过老师还有同学帮忙解决了,可以说这次的毕设作品进展得还算顺利。
[1]刘媛春,罗云翔.基于JSP的动态网页技术[J].成都信息工程学院学报,2015(04):398-401.
[2]张波,张福炎.基于JSP技术的Web应用程序的开发[J].计算机应用研究,2011(05):99-101.
[3]杨馥显,刘嘉勇.基于JSP的数据库开发技术研究[J].通信技术,2011,44(03):51-53.
[4]靳其兵,李晓波.基于JSP的数据库连接技术的研究[J].计算机仿真,2015(04):108-111.
[5]罗建华.浅析JSP开发技术的现状与发展前景[J].电脑与电信,2011(09):62-63+66.
[6]林财兴,罗建,王晨林.基于JSP的管理信息系统的设计与实现[J].计算机应用研究,2011(09):105-107.
[7]李现艳,赵书俊,初元萍.基于MySQL的数据库服务器性能测试[J].核电子学与探测技术,2011,31(01):48-52.
[8]兰旭辉,熊家军,邓刚.基于MySQL的应用程序设计[J].计算机工程与设计,2014(03):442-443+468.
[9]张士军,陆海伦.索引在MySQL查询优化中的应用[J].计算机与数字工程,2017(01):37-39+8.
[10]余震.MySQL数据库对并发事件的控制和处理[J].电脑知识与技术,2013,9(34):7672-7674.
[11]李云云.浅析小程序体系结构[J].科学之友,2011(01):6-8.
[12]李书杰,李志刚.小程序三层体系结构模式[J].河北理工学院学报,2012(S1):25-28+34.
[13]刘小华,化琼珍.水产养殖系统的构建[J].物流技术与应用,2015(03):100-101.
[14]王锋.水产养殖系统构建的研究[J].商场现代化,2016(24):35-36.
[15]王育才.水产养殖系统构建的分析[J].中国管理信息化,2017,20(22):54-55.
致  谢
 
 
完成毕业设计也就意味着我离毕业不远了,想到自己即将离开学校,正式步入社会参加工作,内心还是挺舍不得学校的这些同学们还有老师,大学几年来,老师们每天给我们传授知识,让我们不断成长,身边的同学们,我们经常一起上下课,经常互相讨论问题,一起度过许多美好的时光,还有我的舍友们,每天的朝夕相处,我们总是有福同享,有难同当,在宿舍就是我们最美好的日子。即将毕业,在这里我想对我的老师们说声谢谢,谢谢你们给我们传授各种知识,让我们懂得更多的知识,还有我身边的同学们,祝福你们事业有成,工作顺利。祝愿给我们提供良好环境的大学校园能够创造出更加辉煌的前景。
核心代码展示
/*** 公告通知* 后端接口* @author * @email * @date 2021-03-09 11:33:59*/
@RestController
@RequestMapping("/news")
public class NewsController {@Autowiredprivate NewsService newsService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( NewsEntity news){EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();ew.allEq(MPUtil.allEQMapPre( news, "news")); return R.ok().put("data", newsService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(NewsEntity news){EntityWrapper< NewsEntity> ew = new EntityWrapper< NewsEntity>();ew.allEq(MPUtil.allEQMapPre( news, "news")); NewsView newsView =  newsService.selectView(ew);return R.ok("查询公告通知成功").put("data", newsView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){NewsEntity news = newsService.selectById(id);return R.ok().put("data", news);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){NewsEntity news = newsService.selectById(id);return R.ok().put("data", news);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody NewsEntity news, HttpServletRequest request){news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(news);newsService.insert(news);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody NewsEntity news, HttpServletRequest request){news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(news);newsService.insert(news);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody NewsEntity news, HttpServletRequest request){//ValidatorUtils.validateEntity(news);newsService.updateById(news);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){newsService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<NewsEntity> wrapper = new EntityWrapper<NewsEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}int count = newsService.selectCount(wrapper);return R.ok().put("count", count);}}
 
相关文章:
【网站项目】SpringBoot796水产养殖系统
🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板ÿ…...
Vue详细介绍
Vue.js(通常简称为Vue)是一个用于构建用户界面的渐进式JavaScript框架。它由尤雨溪(Evan You)创建,并于2014年首次发布。Vue的设计目的是易于上手,同时也能够强大到驱动复杂的单页应用(SPA&…...
声纹识别的对抗与防御
随着机器学习理论和方法的发展, 出现了用于模仿特定说话人语音的深度伪造、针对语音识别和声纹识别的对抗样本, 它们都为破坏语音载体的可信性和安全性提供了具体手段, 进而对各自应用场景的信息安全构成了挑战。 深度伪造是利用生成式对抗网络等方法, 通过构建特定的模型, 产生…...
C++ QT设计模式总结
Ciallo~(∠・ω< )⌒★,这里是 Eureka,欢迎来看我的设计模式总结,有问题随时可以告诉我~ 面向对象的设计模式: 以下总结了面向对象的设计模式, QT 的源码在哪里体现了这些模式,以及如何在 …...
洛谷 P3203:弹飞绵羊 ← 分块算法(单点更新、单点查询)
【题目来源】https://www.acwing.com/problem/content/2168/https://www.luogu.com.cn/problem/P3203【题目描述】 某天,Lostmonkey 发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。 游戏一开始,L…...
程序验证之Dafny--证明霍尔逻辑的半自动化利器
一、What is Dafny?【来自官网介绍 Dafny 】 1)介绍 Dafny 是一种支持验证的编程语言,配备了一个静态程序验证器。 通过将复杂的自动推理与熟悉的编程习语和工具相结合,使开发者能够编写可证明正确的代码(相对于 {P}S{Q} 这种…...
Flutter 中的 SafeArea 小部件:全面指南
Flutter 中的 SafeArea 小部件:全面指南 在移动应用开发中,处理设备屏幕的边缘是一个常见的挑战,尤其是考虑到现代设备通常具有不同的屏幕形状,如刘海屏、曲面屏等。为了确保应用内容不会覆盖这些屏幕区域,Flutter 提…...
webpack生成模块关系依赖图示例:查看构建产物的组成部分 依赖关系图
npm i -D webpack-bundle-analyzer core-js babel-loaderwebpack.config.js const BundleAnalyzerPlugin require(webpack-bundle-analyzer).BundleAnalyzerPlugin; module.exports {entry: ./src/index.js,output: {filename: main.js,},// mode: production, // 或者 produ…...
Spacy的安装与使用教程
官网安装指导教程 https://spacy.io/usage 安装指令 需要根据自己系统的cuda版本选择 nvcc -V pip install -U pip setuptools wheel pip install -U spacy[cuda12x] python -m spacy download zh_core_web_sm python -m spacy download en_core_web_sm...
Pathlib,一个不怕迷路的 Python 向导
大家好!我是爱摸鱼的小鸿,关注我,收看每期的编程干货。 一个简单的库,也许能够开启我们的智慧之门, 一个普通的方法,也许能在危急时刻挽救我们于水深火热, 一个新颖的思维方式,也许能…...
详解绝对路径和相对路径的区别
绝对路径和相对路径是用于描述文件或目录在文件系统中位置的两种不同方式。 绝对路径(Absolute Path)是从文件系统的根目录开始的完整路径,可以唯一地确定一个文件或目录的位置。在不同的操作系统中,根目录的表示方式可能略有不同…...
C++二叉搜索树搜索二叉树二叉排序树
C二叉搜索树 1. 二叉搜索树的概念 二叉搜索树(BST,Binary Search Tree),也称为二叉排序树或二叉查找树。它与一般二叉树的区别在于:每个结点必须满足“左孩子大于自己,右孩子小于自己”的规则。在这种规则的约束下,二…...
Java 自然排序和比较器排序区别?Comparable接口和Comparator比较器区别?
注:如果你对排序不理解,请您耐心看完,你一定会明白的。文章通俗易懂。建议用idea运行一下案例。 1)自然排序和比较器排序的区别? 自然排序是对象本身定义的排序规则,由对象实现 Comparable 接口ÿ…...
【CV】opencv调用DIS/LK等计算光流,前一帧和当前帧写反了有什么影响?
当在计算光流时,将前一帧和当前帧输入反了,会导致一系列问题。 在计算光流时,通常是将前一帧作为模板,根据当前帧计算光流。因为光流是描述相邻帧之间像素移动的一种方法,它通过比较两帧之间的像素强度或特征点的移动…...
C语言学习细节|C语言面向对象编程!函数指针如何正确使用
文章目录 1.函数指针定义2.格式3.应用回调函数动态函数调用函数的间接调用 4.结构体与函数指针结合 1.函数指针定义 函数指针就是一个指向函数的指针变量,与指向数据的指针不同,函数指针保存的是函数的地址,这使得程序可以动态地调用不同的函…...
C语言简要(一)
总得让她开心吧 helloworld #include <stdio.h>int main() {printf("hello world!\n");return 0; } 程序框架 #include <stdio.h> int main {return 0; }输出 printf("hello world!\n"); "里面的内容叫做“字符串”,prin…...
那些年我与c++的叫板(一)--string类自实现
引子:我们学习了c中的string类,那我们能不能像以前数据结构一样自己实现string类呢?以下是cplusplus下的string类,我们参考参考! 废话不多说,直接代码实现:(注意函数之间的复用&…...
二刷算法训练营Day08 | 字符串(1/2)
今日任务: 344.反转字符串 541. 反转字符串II卡码网:54.替换数字 151.翻转字符串里的单词卡码网:55.右旋转字符串 详细布置: 1. 344. 反转字符串 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 …...
使用高防IP是应对网络安全的重要措施
使用高防IP(High Defense IP)在现代网络环境中显得尤为重要,这主要源于以下几个方面的原因: 一、网络安全形势严峻 随着互联网的快速发展,网络安全问题日益突出。各种网络攻击手段层出不穷,如分布式拒绝服…...
代码随想录-算法训练营day40【动态规划03:整数拆分、不同的二叉搜索树】
代码随想录-035期-算法训练营【博客笔记汇总表】-CSDN博客 第九章 动态规划part03● 343.整数拆分 ● 096.不同的二叉搜索树 详细布置 今天两题都挺有难度,建议大家思考一下没思路,直接看题解,第一次做,硬想很难想出来。343. 整数…...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...
路由基础-路由表
本篇将会向读者介绍路由的基本概念。 前言 在一个典型的数据通信网络中,往往存在多个不同的IP网段,数据在不同的IP网段之间交互是需要借助三层设备的,这些设备具备路由能力,能够实现数据的跨网段转发。 路由是数据通信网络中最基…...
C++ 类基础:封装、继承、多态与多线程模板实现
前言 C 是一门强大的面向对象编程语言,而类(Class)作为其核心特性之一,是理解和使用 C 的关键。本文将深入探讨 C 类的基本特性,包括封装、继承和多态,同时讨论类中的权限控制,并展示如何使用类…...
Selenium 查找页面元素的方式
Selenium 查找页面元素的方式 Selenium 提供了多种方法来查找网页中的元素,以下是主要的定位方式: 基本定位方式 通过ID定位 driver.find_element(By.ID, "element_id")通过Name定位 driver.find_element(By.NAME, "element_name"…...
