摘 要
网络发布信息有其突出的优点,即信息量大,资源丰富,更新速度快等,很符合人们希望以捷、便利的方式获得最多最有效信息的要求。本系统就是一个网上宠物领用的系统,为宠物爱好者提供一个信息发布的平台,用户来到平台后,可以发布宠物信息,可以中请领养,给广大的用户提供了极大的方便。
本文主要介绍了基于Java的宠物领养平台,该系统以java为开发语言,myspl为系统数据库,运用当前流行的springboot为主要框架。利用网络高效率、低成本,以及及时更新的特点,为宠物爱好者提供一个信息发布和交流的平台。
网络发布信息有其突出的优点,即信息量大,资源丰富,更新速度快等,很符合人们希望以快捷、便利的方式获得最多最有效信息的要求。本系统就是一个网上宠物领用的系统,为宠物爱好者提供一个信息发布的平台,用户来到平台后,可以发布宠物信息,可以申请领养,给广大的用户提供了极大的方便。
关键词:宠物领养管理,Mysql数据库,Java技术
Abstract
The network publishing information has its outstanding advantages, that is, large amount of information, rich resources, fast update speed, etc., which is very consistent with the requirements that people want to get the most effective information in a quick and convenient way. This system is an online pet collection system, which provides a platform for pet lovers to release information. Users can release pet information after arriving at the platform, and can apply for adoption, which provides great convenience for users.
This paper mainly introduces a java based pet adoption platform. The system uses Java as the development language, myspl as the system database, and the current popular spring boot as the main framework. With the characteristics of high efficiency, low cost and timely updating of the network, it provides a platform for pet lovers to release and exchange information.
The network publishing information has its outstanding advantages, that is, large amount of information, rich resources, fast update speed, etc., which is very consistent with the requirements that people want to get the most effective information in a fast and convenient way. This system is an online pet collection system, which provides a platform for pet lovers to publish information. Users can publish pet information and apply for adoption after arriving at the platform, which provides great convenience for users.
Keywords: pet adoption management, MySQL database, Java technology
目 录
摘 要
第1章 概述
1.1 研究背景
1.2 研究现状
1.3 研究内容
第二章 开发技术介绍
2.1 系统开发平台
2.2 平台开发相关技术
2.2.1 B/S架构
2.2.2 Java技术介绍
2.2.3 mysql数据库介绍
第三章 系统分析
3.1 可行性分析
3.1.1 技术可行性
3.1.2 经济可行性
3.1.3 操作可行性
3.2 系统性能分析
3.3 系统功能需求分析
3.4 系统操作流程
3.4.1用户登录流程
3.4.2信息添加流程
3.4.3信息删除流程
第四章 系统设计
4.1 系统的功能结构图
4.2 数据库概念结构设计
4.2.1 数据库E-R图
4.2.2 数据库逻辑结构设计
第五章 系统功能实现
5.1系统功能模块
第六章 系统测试
6.1 测试目的
6.2 测试方案设计
6.2.1 测试策略
6.2.2 测试分析
6.3 测试结果
结束语
致 谢
参考文献
1.1 研究背景
近年来,随着生活水平的不断提高与发展,越来越多人喜欢在宠物领养管理系统查看宠物信息,领养自己喜欢的宠物,将自己喜欢的宠物商品收藏,方便自己进行购买。宠物领养管理对用户和管理员都有很大帮助,在线寻主寻宠管理通过和数据库管理系软件协作来实现用户与管理员之间的一个很好的操作平台,基于这一点,设计了一个宠物领养管理。
经过对以上的情况进行分析,我们对用户的实际需求进行了详细的分析,指定出了相应的开发计划,为了方便用户在线进行查看宠物信息以及可以在线进行购买商品方面的管理操作,帮助宠物管理员节省很多的管理时间以及可以减少工作量,使得管理工作更加快捷顺利的进行,因此开发设计了该系统。
随着计算机的不断发展,已经融入到我们生活工作的每一个领域中,给我们的生活工作带来了很多的便利,因此,希望可以通过该系统的开发也能使宠物管理实现信息化管理,减轻人的负担,提高工作效率计。
1.2 研究现状
与其他国家相比,我国的软件产业相对落后,在信息化建设方面起步也比较晚,但是随着我国经济的不断发展,以及网络技术的不断提高,我国也在不断的进行软件行业的摸索,也得到了一些成果,我国的软件产业得到了快速的发展,越来越多的软件系统出现在人们的视线中,也逐渐改变着人们生活工作的方式。但是,对于信息化的建设,与很多发达国家相比,由于信息化程度的落后以及经费的不足,我国的宠物领养管理开发方面还是相对落后的,因此,要不断的努力探索,争取开发出一个实用的信息化的宠物管理系统,来实现宠物管理的信息化。因此本课题以宠物为例,目的是开发一个实用的宠物领养管理系统。
宠物领养管理的开发运用java技术,MIS的总体思想,以及MYSQL、springboot等技术的支持下共同完成了该网站系统的开发,实现了宠物管理的信息化,用户可以有一个非常好的宠物体验,管理员也可以通过该系统进行更加方便的管理操作,实现了之前指定好的计划。
1.3 研究内容
通过对管理员和用户的需求分析,我们将该宠物领养管理系统的功能逐步进行了添加,然后进行功能分析和检测,而且针对这两方面进行了深入研究探讨,该宠物领养管理系统主要对开发背景、市场需求、数据库分析、功能模块以及开发技术进行了着重介绍和分析。最后对系统中的功能信息进行测试和分析。本次毕业实现的宠物领养管理系统,不管是可行性分析、系统整体框架设计还是编码,都需要严格遵守软件开发的三个周期八个阶段,在该系统的开发过程中,要保证系统具有良好的时效性、易安装性以及稳定性。在代码编写时一定要按照要求进行,让代码编写看起来更美观,开发出一个便于用户的使用的宠物领养管理系统是本次开发的主要目标。在系统完成之后,利用电脑来将系统进行安置,并且用户可以通过电脑随时进行宠物领养管理。此次在宠物领养管理系统的开发中,对系统要进行可行性分析、系统需求分析等基本分析,并且完成系统的部署和测试,在这些功能都实现之后,通过电脑进行操作系统。系统规划分析中,需要按照以下所示的技术路线。
第二章 开发技术介绍
此次B/S结构、Java技术以及mysql数据库是该宠物领养管理系统的主要开发技术,然后对系统的整体设计、数据库设计、功能模块设计、系统页面设计以及系统程序设计进行了详细的研究与规划。
2.1 系统开发平台
在该宠物领养管理系统中,Eclipse 技术可以给用户带来极大方便,其主要特点就是可以使用户学习起来方便、快捷,另一方面就是信息储存量也是非常大的,该功能主要被应用为数据库中进行查询和编程。并且该功能的数据应用比较灵活,通过我们现在的发展可以得知,只要利用一小部分代码就可以来实现非常强大的功能。因此,该系统数据库开发主要是由Eclipse 技术进行系统代码管理。
2.2 平台开发相关技术
2.2.1 B/S架构
B/S结构的特点也非常多,例如在很多浏览器中都可以做出信号请求。并且可以适当的减轻用户的工作量,通过对客户端安装或者是配置少量的运行软件就能够逐步减少用户的工作量,这些功能的操作主要是由服务器来进行控制的,由于该软件的技术不断成熟,最主要的特点就是与浏览器相互配合为软件开发带来了极大的便利,不仅能够减少开发成本,还能够不断加强系统的软件功能,层层相互独立和展现层是该B/S结构完成相互连接的主要特性。
2.2.2 Java技术介绍
Java语言擅长开发互联网类应用和企业级应用,现在已经相当的成熟,而且也是目前使用最多的编程语言之一。Java语言具有很好的面向对象性,可以符合人的思维模式进行设计,封装是将对象的属性和方法尽可能地隐藏起来,使得外界并不知道是如何实现的,外界能通过接口进行访问,继承是指每个类都会有一个父类,所有的子类都有父类的方法,可以进行继承,但是只有final修饰的类不能被继承,通过继承可以使得代码得到重新利用,能够提高软件的开发效率,也是多态的前提。
Java就像C语言、C#语言等,也是一种程序开发语言,而它的特点就是面向对象。作为一种程序开发与设计的语言,它有很多特性,主要特性就是面向对象、夸平台以及可以分布式运行。Java语言项目不但安全性高、稳定性强,而且可以并发运行。
为了提高开发的速度及效率,必须做到代码的重复使用和简化程序的复杂度,要达到上述的要求java语言通过封装、继承与多态等方式实现,这样可以很大程度上达到信息的封装,提高代码复用率,减少冗余度,提高效率。在Java中难能可贵的一点就是它的垃圾回收机制,它使得以往程序中大量存在的内存泄漏的问题得到了较好的缓解。所谓的内存泄漏就是程序向操作系统申请了一块存储空间,比如定义了一个变量,但是由于某种原因,这个变量一直没有使用,但是仍然占用着系统的内存空间,可能一两个这样的变量对程序和操作系统造不成什么大的影响,但是试想如果这样的变量定义的多了系统的内存空间就会一步步减少,从而造成机器的性能降低甚至宕机。但是在Java中有垃圾回收机制的存在,这种机制极大地避免了内存泄漏的出现,在Java虚拟机中,垃圾回收机制会对长时间没有引用变量指向的对象实施垃圾回收,简单的说就是将这个对象销毁,以避免内存泄漏的情况出现。
2.2.3 mysql数据库介绍
MySQL是一款Relational Database Management System,直译过来的意思就是关系型数据库管理系统,MySQL有着它独特的特点,这些特点使他成为目前最流行的RDBMS之一,MySQL想比与其他数据库如ORACLE、DB2等,它属于一款体积小、速度快的数据库,重点是它符合本次毕业设计的真实宠物环境,拥有成本低,开发源码这些特点,这也是选择它的主要原因。
本系统使用了MySQL数据库,建立了多张数据库表来存储宠物以及宠物领养管理相关数据。系统中主要应用查询(select),修改(update),删除(delete)以及增加(insert)等语句来实现系统功能。
第三章 系统分析
通过对系统功能模块分析可以得知,主要是对项目元素组合、分解和更换做出相应的单元,再通过系统模块来规划出一个原则,系统的设计首先是围绕管理员需求进行开发设计的,主要是为了能够更好的管理信息和服务于用户,其次就是围绕宠物领养管理进行设计,最终的设计必须要满足管理员和用户的需求,这样才能够实现系统的最大意义和价值,并且在设计的时候一定要避免代码相互重复的情况发生。
3.1 可行性分析
可行性分析是每开发一个项目必不可少的一部分,可行性分析可以直接影响一个系统的存活问题,针对开发意义进行分析,还有就是是否可以通过所开发的系统来弥补传统宠物领养管理模式的不足,是否能够更好的解决宠物领养管理问题等,通过对该宠物领养管理系统的开发设计,不仅能够逐步减少工作人员的工作量,而且还可以进行高效工作和管理。所以该系统的开发实现了最大的意义和价值,在系统完成后,利益是否大过于成本,是否能够达到预期效果,这些方面都要进行可行性分析,再通过分析之后,就可以决定是否开发此系统。该宠物领养管理系统的开发设计中,以下几点进行了可行性分析:技术可行性:通过Java技术的采用,由于该技术不断成熟,所以使用该技术设计宠物领养管理系统是具有可行性的。经济可行性:在开发过程中,系统完成后的利益是否大过于开发成本。操作可行性:宠物领养管理系统的开发设计中,方便用户的可操作性和实用性。
3.1.1 技术可行性
由于Java技术的不断成熟,所以它在本次宠物领养管理系统中是非常重要的,该系统的开发主要是基于服务端采用Java 、B/S结构和mysql数据库进行开发设计的。通过对这些技术进行使用,从而保证了系统的完整性和简单性。并且在数据库中保证数据的安全性和稳定性。在校时间我们对Java语言技术和mysql数据库技术进行了学习和交流,并且对软件测试也是简单的了解,然后根据这些销售方式我们可以做出一个简单的系统开发、检验和辨别。通过Java技术和Mysql数据库的相互配合开发出一个高效、稳定的宠物领养管理系统。
(1)轻量级系统,使用灵活:宠物领养管理系统,设计时,考虑到不同使用者的习惯,让系统比较轻量级,便于安装,也完成了系统所具备的所有功能,在以上基础上,通过系统测试与优化,让操作更加灵活。
(2)系统开发0成本:该宠物领养管理系统,以开源的Windows 7 操作系统为基础,采用Java技术编码开发,并使用MySQL轻量级数据库,没有多余的开发成本。
(3)覆盖范围:任何城市,都能安装使用本次设计的宠物领养管理系统,对系统使用方没有严格的规定,平台搭建好了就能使用。
3.1.2 经济可行性
通过经济效益和社会价值来决定一个系统的存活问题,是否通过开发宠物领养管理系统来帮助管理员减少工作,是否能够方便用户的使用,假如开发的软件不能够实现成本节约和资源节约,并且还要投入大量的时间、经济和精力,那么这个系统的开发设计是没有意义和价值的,就不具备开发设计的条件。
3.1.3 操作可行性
此次开发的宠物领养管理系统登录界面是我们最常见的一种登录窗口进行造成的,只需通过电脑就可以登录访问,没有那些复杂的登录过程。该宠物领养管理系统主要是采用B/S结构、Java语言技术以及mysql数据库进行开发设计的,使得系统的开发更高效和稳定,也体现出来该系统的的现代化和规范化。用户可以轻松的进行学习,其系统主要特点就是易操作和易管理。
3.2 系统性能分析
1.系统功能完整性:根据系统每一个功能模块,都能够设计出当初的算法和代码,用户信息主要是以文字和表格的模式进行介绍。
2.系统运行分析:系统中的每一个功能都要有相应的代码和编写数据的关系。系统的物理的数据主要是通过需求分析和可行性分析进行分析和显示的。
3.界面设计:系统中的软件都是由不同的代码来进行处理和分析的,并且保证了系统界面的易操作性能。
4.安全分析:不同的角色要有不同的信息,所以我们登录系统时必须要使用自己的账号和密码进行登录,不能随意进行操作,这样才可以保证系统的安全性。
3.3 系统功能需求分析
任务需求分析是每个系统开发设计必不可少的一部分,系统质量的好坏可以直接影响系统的存活问题,所以我们必须要将任务需求分析做到位,宠物领养管理系统的设计在初期的分析是尤为重要的,通过任务分析可以更顺利的进行系统设计,并且保证了用户的满意度。
(1)用户界面功能表
用户进入系统可以查看首页、宠物论坛、公告消息、宠物商品、领养中心、寻主寻宠、挂失管理、留言反馈操作。用户用例图如图3-1所示。
图3-1 用户界面表
管理员登陆后,主要功能模块包括首页、站点管理(轮播图、公告栏)用户管理(管理员、发布用户、普通用户)内容管理(宠物论坛、论坛分类列表)商城管理(宠物商品、分类列表、订单列表)更多管理(送领记录、领养申请、领养中心、商品报表、寻主寻宠、挂失管理、留言反馈)等功能如图3-2所示。
图3-4 管理员功能表
3.4 系统操作流程
3.4.1用户登录流程
图3-1登录操作流程图
3.4.2信息添加流程
对于宠物领养管理系统,需要随时添加所需要的数据信息,对于用户添加信息,需要根据添加界面,根据选框的内容进行填写所要添加的数据信息,信息输入完成后判断数据信息是否符合要求,符合要求则添加完成,用户所添加的信息不符合要求,则需要返回到第一步,重新输入数据信息,再进行判断操作,如图3-2所示。
图3-2 信息添加流程图
3.4.3信息删除流程
不管是哪个用户角色进入到不通的系统操作界面,都可以进行不同的信息内容的操作功能,对用系统数据信息的删除,用户一旦将信息删除,那么该删除的数据信息将无法恢复,所以用户在对数据删除事,一定判断删除的内容是否是确定要删除的,确定无误后选择确定删除操作,如图3-3所示。
图3-3 信息删除流程图
第四章 系统设计
4.1 系统的功能结构图
通过系统需求分析,该宠物领养管理系统的设计与实现功能结构图如图4-1所示:
图4-1 宠物领养管理系统系统结构图
4.2 数据库概念结构设计
4.2.1 数据库E-R图
数据库是整个软件编程中最重要的一个步骤,对于数据库问题主要是判定数据库的数量和结构公式的创建。展示系统使用的是Mysql进行对数据库进行管理,进行保证数据的安全性、稳定性等。
概念模型的设计是为了抽象真实世界的信息,并对信息世界进行建模。它是数据库设计的强大工具。数据库概念模型设计可以通过E-R图描述现实世界的概念模型。系统的E-R图显示了系统中实体之间的链接。而且Mysql数据库是自我保护能力比较强的数据库,下图主要是对数据库实体的E-R图:
(1) 用户信息E-R图,如图4-3所示:
图4-3 用户信息实体属性图
(2) 宠物信息E-R图如图4-4所示:
图4-4宠物信息实体图
4.2.2 数据库逻辑结构设计
数据库的主要功能就是对相关信息就行存储,通过某种计算进行数据储存,其数据库的数据存储是井井有条的。并且其中的数据具有一定的独立性和安全性。通过对系统功能设计的要求和功能模块的规划,该宠物领养管理系统的设计与实现设计到了多个数据表。以下信息是介绍数据库表的设计结构以及功能建立数据库表:
adoption_application | |||||
字段名称 | 类型 | 长度 | 不是null | 主键 | 字段说明 |
adoption_application_id | int | 11 | 是 | 主键 | 领养申请ID |
pet_serial_number | varchar | 64 | 否 | 宠物序号 | |
pet_nickname | varchar | 64 | 否 | 宠物昵称 | |
classification_of_animals | varchar | 64 | 否 | 动物分类 | |
animal_species | varchar | 64 | 否 | 动物种类 | |
adoption_address | varchar | 64 | 否 | 领养地址 | |
pet_age | varchar | 64 | 否 | 宠物年龄 | |
sex_of_pet | varchar | 64 | 否 | 宠物性别 | |
date_of_application | date | 0 | 否 | 申请日期 | |
publisher_no | int | 11 | 否 | 发布者编号 | |
publisher_name | varchar | 64 | 否 | 发布者姓名 | |
user_no | int | 11 | 否 | 用户编号 | |
user_name | varchar | 64 | 否 | 用户姓名 | |
adoption_experience | varchar | 64 | 否 | 领养经验 | |
reasons_for_adoption | varchar | 64 | 否 | 领养理由 | |
examine_state | varchar | 16 | 是 | 审核状态 | |
examine_reply | varchar | 16 | 否 | 审核回复 | |
recommend | int | 11 | 是 | 智能推荐 | |
user_id | int | 11 | 是 | 用户ID | |
create_time | datetime | 0 | 是 | 创建时间 | |
update_time | timestamp | 0 | 是 | 更新时间 | |
adoption_center | |||||
字段名称 | 类型 | 长度 | 不是null | 主键 | 字段说明 |
adoption_center_id | int | 11 | 是 | 主键 | 领养中心ID |
pet_serial_number | varchar | 64 | 否 | 宠物序号 | |
pet_nickname | varchar | 64 | 否 | 宠物昵称 | |
cover | varchar | 255 | 否 | 封面 | |
classification_of_animals | varchar | 64 | 否 | 动物分类 | |
animal_species | varchar | 64 | 否 | 动物种类 | |
adoption_address | varchar | 64 | 否 | 领养地址 | |
pet_age | varchar | 64 | 否 | 宠物年龄 | |
sex_of_pet | varchar | 64 | 否 | 宠物性别 | |
notice_on_adoption | varchar | 64 | 否 | 领养须知 | |
vaccination | varchar | 64 | 否 | 接种疫苗 | |
release_date | date | 0 | 否 | 发布日期 | |
related_videos | varchar | 255 | 否 | 相关视频 | |
adoptive_status | varchar | 64 | 否 | 领养状态 | |
publisher_no | int | 11 | 否 | 发布者编号 | |
publisher_name | varchar | 64 | 否 | 发布者姓名 | |
pet_information | longtext | 0 | 否 | 宠物信息 | |
praise_len | int | 11 | 是 | 点赞数 | |
recommend | int | 11 | 是 | 智能推荐 | |
timer_title | varchar | 64 | 否 | 计时器标题 | |
timing_start_time | datetime | 0 | 否 | 计时开始时间 | |
timing_end_time | datetime | 0 | 否 | 计时结束时间 | |
limit_times | int | 8 | 是 | 限制次数 | |
limit_type | tinyint | 2 | 是 | 限制次数类型1-每天次,2-总计次 | |
create_time | datetime | 0 | 是 | 创建时间 | |
update_time | timestamp | 0 | 是 | 更新时间 | |
adoption_record | |||||
字段名称 | 类型 | 长度 | 不是null | 主键 | 字段说明 |
adoption_record_id | int | 11 | 是 | 主键 | 领养记录ID |
pet_serial_number | varchar | 64 | 是 | 宠物序号 | |
pet_nickname | varchar | 64 | 否 | 宠物昵称 | |
classification_of_animals | varchar | 64 | 否 | 动物分类 | |
animal_species | varchar | 64 | 否 | 动物种类 | |
adoption_address | varchar | 64 | 否 | 领养地址 | |
pet_age | varchar | 64 | 否 | 宠物年龄 | |
sex_of_pet | varchar | 64 | 否 | 宠物性别 | |
date_of_application | date | 0 | 否 | 申请日期 | |
publisher_no | int | 11 | 否 | 发布者编号 | |
publisher_name | varchar | 64 | 否 | 发布者姓名 | |
user_no | int | 11 | 否 | 用户编号 | |
user_name | varchar | 64 | 否 | 用户姓名 | |
recommend | int | 11 | 是 | 智能推荐 | |
create_time | datetime | 0 | 是 | 创建时间 | |
update_time | timestamp | 0 | 是 | 更新时间 | |
classification_of_animals | |||||
字段名称 | 类型 | 长度 | 不是null | 主键 | 字段说明 |
classification_of_animals_id | int | 11 | 是 | 主键 | 动物分类ID |
classification_of_animals | varchar | 64 | 否 | 动物分类 | |
recommend | int | 11 | 是 | 智能推荐 | |
create_time | datetime | 0 | 是 | 创建时间 | |
update_time | timestamp | 0 | 是 | 更新时间 | |
commodity_report | |||||
字段名称 | 类型 | 长度 | 不是null | 主键 | 字段说明 |
commodity_report_id | int | 11 | 是 | 主键 | 商品报表ID |
trade_name | varchar | 64 | 否 | 商品名称 | |
sales_volumes | int | 11 | 否 | 销售数量 | |
sales_unit_price | int | 11 | 否 | 销售单价 | |
sales_amount | varchar | 64 | 否 | 销售金额 | |
date | date | 0 | 否 | 日期 | |
recommend | int | 11 | 是 | 智能推荐 | |
create_time | datetime | 0 | 是 | 创建时间 | |
update_time | timestamp | 0 | 是 | 更新时间 | |
look_for_the_lord_and_the_pet | |||||
字段名称 | 类型 | 长度 | 不是null | 主键 | 字段说明 |
look_for_the_lord_and_the_pet_id | int | 11 | 是 | 主键 | 寻主寻宠ID |
title | varchar | 64 | 否 | 标题 | |
cover | varchar | 255 | 否 | 封面 | |
revelation_type | varchar | 64 | 否 | 启示类型 | |
pet_name | varchar | 64 | 否 | 宠物名称 | |
classification_of_animals | varchar | 64 | 否 | 动物分类 | |
animal_species | varchar | 64 | 否 | 动物种类 | |
related_videos | varchar | 255 | 否 | 相关视频 | |
detailed_description | text | 0 | 否 | 详细描述 | |
release_date | varchar | 64 | 否 | 发布日期 | |
contact_mobile_phone | varchar | 16 | 否 | 联系手机 | |
recommend | int | 11 | 是 | 智能推荐 | |
create_time | datetime | 0 | 是 | 创建时间 | |
update_time | timestamp | 0 | 是 | 更新时间 | |
loss_reporting_management | |||||
字段名称 | 类型 | 长度 | 不是null | 主键 | 字段说明 |
loss_reporting_management_id | int | 11 | 是 | 主键 | 挂失管理ID |
title | varchar | 64 | 否 | 标题 | |
cover | varchar | 255 | 否 | 封面 | |
pet_name | varchar | 64 | 否 | 宠物名称 | |
classification_of_animals | varchar | 64 | 否 | 动物分类 | |
animal_species | varchar | 64 | 否 | 动物种类 | |
related_videos | varchar | 255 | 否 | 相关视频 | |
detailed_description | text | 0 | 否 | 详细描述 | |
release_date | date | 0 | 否 | 发布日期 | |
contact_mobile_phone | varchar | 16 | 否 | 联系手机 | |
user_no | int | 11 | 否 | 用户编号 | |
user_name | varchar | 64 | 否 | 用户姓名 | |
examine_state | varchar | 16 | 是 | 审核状态 | |
recommend | int | 11 | 是 | 智能推荐 | |
create_time | datetime | 0 | 是 | 创建时间 | |
update_time | timestamp | 0 | 是 | 更新时间 | |
message_feedback | |||||
字段名称 | 类型 | 长度 | 不是null | 主键 | 字段说明 |
message_feedback_id | int | 11 | 是 | 主键 | 留言反馈ID |
user_no | int | 11 | 否 | 用户编号 | |
user_name | varchar | 64 | 否 | 用户姓名 | |
message_content | text | 0 | 否 | 留言内容 | |
message_time | datetime | 0 | 否 | 留言时间 | |
examine_state | varchar | 16 | 是 | 审核状态 | |
examine_reply | varchar | 16 | 否 | 审核回复 | |
recommend | int | 11 | 是 | 智能推荐 | |
create_time | datetime | 0 | 是 | 创建时间 | |
update_time | timestamp | 0 | 是 | 更新时间 | |
ordinary_users | |||||
字段名称 | 类型 | 长度 | 不是null | 主键 | 字段说明 |
ordinary_users_id | int | 11 | 是 | 主键 | 普通用户ID |
user_no | varchar | 64 | 否 | 用户编号 | |
user_name | varchar | 64 | 否 | 用户姓名 | |
gender | varchar | 64 | 否 | 性别 | |
examine_state | varchar | 16 | 是 | 审核状态 | |
recommend | int | 11 | 是 | 智能推荐 | |
user_id | int | 11 | 是 | 用户ID | |
create_time | datetime | 0 | 是 | 创建时间 | |
update_time | timestamp | 0 | 是 | 更新时间 | |
pet_goods | |||||
字段名称 | 类型 | 长度 | 不是null | 主键 | 字段说明 |
pet_goods_id | int | 11 | 是 | 主键 | 宠物商品ID |
commodity_specifications | varchar | 64 | 否 | 商品规格 | |
expiry_date | varchar | 64 | 否 | 效期 | |
manufacturer | varchar | 64 | 否 | 厂商 | |
recommend | int | 11 | 是 | 智能推荐 | |
cart_title | varchar | 125 | 否 | 标题 | |
cart_img | text | 0 | 否 | 封面图 | |
cart_description | varchar | 255 | 否 | 描述 | |
cart_price_ago | double | 8 | 是 | 原价 | |
cart_price | double | 8 | 是 | 卖价 | |
cart_inventory | int | 11 | 是 | 商品库存 | |
cart_type | varchar | 64 | 是 | 商品分类 | |
cart_content | longtext | 0 | 否 | 正文产品 | |
cart_img_1 | text | 0 | 否 | 主图1 | |
cart_img_2 | text | 0 | 否 | 主图2 | |
cart_img_3 | text | 0 | 否 | 主图3 | |
cart_img_4 | text | 0 | 否 | 主图4 | |
cart_img_5 | text | 0 | 否 | 主图5 | |
create_time | datetime | 0 | 是 | 创建时间 | |
update_time | timestamp | 0 | 是 | 更新时间 | |
publish_user | |||||
字段名称 | 类型 | 长度 | 不是null | 主键 | 字段说明 |
publish_user_id | int | 11 | 是 | 主键 | 发布用户ID |
publisher_no | varchar | 64 | 否 | 发布者编号 | |
publisher_name | varchar | 64 | 否 | 发布者姓名 | |
examine_state | varchar | 16 | 是 | 审核状态 | |
recommend | int | 11 | 是 | 智能推荐 | |
user_id | int | 11 | 是 | 用户ID | |
create_time | datetime | 0 | 是 | 创建时间 | |
update_time | timestamp | 0 | 是 | 更新时间 |
第五章 系统功能实现
宠物领养管理系统,在系统首页可以查看首页、宠物论坛、公告消息、宠物商品、领养中心、寻主寻宠、挂失管理、留言反馈、注册登录以及站内搜索等内容,
如图5-1所示。
图5-1系统功能界面图
注册,在注册页面通过填写用户名、密码、姓名、昵称、身份、手机号、用户编号等内容进行注册,如图5-2所示。
图5-2用户注册界面图
注册代码如下:
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
query.put("username",user.getUsername());
List list = service.select(query, new HashMap<>()).getResultList();
if (list.size()>0){
return error(30000, "用户已存在");
}
user.setUserId(null);
user.setPassword(service.encryption(user.getPassword()));
service.save(user);
return success(1);
}
/**
* 用户ID:[0,8388607]用户获取其他与用户相关的数据
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id")
private Integer userId;
/**
* 账户状态:[0,10](1可用|2异常|3已冻结|4已注销)
*/
@Basic
@Column(name = "state")
private Integer state;
/**
* 所在用户组:[0,32767]决定用户身份和权限
*/
@Basic
@Column(name = "user_group")
private String userGroup;
/**
* 上次登录时间:
*/
@Basic
@Column(name = "login_time")
private Timestamp loginTime;
/**
* 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时
*/
@Basic
@Column(name = "phone")
private String phone;
/**
* 手机认证:[0,1](0未认证|1审核中|2已认证)
*/
@Basic
@Column(name = "phone_state")
private Integer phoneState;
/**
* 用户名:[0,16]用户登录时所用的账户名称
*/
@Basic
@Column(name = "username")
private String username;
/**
* 昵称:[0,16]
*/
@Basic
@Column(name = "nickname")
private String nickname;
/**
* 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成
*/
@Basic
@Column(name = "password")
private String password;
/**
* 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时
*/
@Basic
@Column(name = "email")
private String email;
/**
* 邮箱认证:[0,1](0未认证|1审核中|2已认证)
*/
@Basic
@Column(name = "email_state")
private Integer emailState;
/**
* 头像地址:[0,255]
*/
@Basic
@Column(name = "avatar")
private String avatar;
/**
* 创建时间:
*/
@Basic
@Column(name = "create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Timestamp createTime;
@Basic
@Transient
private String code;
}
领养中心,在领养中心页面查看宠物序号、宠物昵称、动物分类、动物种类、领养地址、宠物年龄、宠物性别、发布日期、相关视频、领养状态、发布者编号、发布者姓名等信息并可根据需要申请领养、点赞、收藏,如图5-3所示。
图5-3领养中心界面图
领养中心代码如下:
@SpringBootApplication
@EnableJpaRepositories
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
宠物商品信息,在宠物商品页面中可以查看商品名称、价格、商品描述。图片等信息进行加入购物车购买、评论或收藏,如图5-4所示。
图5-4宠物商品信息界面图
宠物商品信息代码如下:
宠物用品订单通过宠物用品信息界面进行订单商品,购买链接输入订单号、商品编号、商品名称、价格、库存、购买数量、总价格、联系电话、收货地址、姓名、备注、购买人等信息完成购买订单,如图5-5所示。
图5-5订单信息界面图
订单信息代码如下:
@RequestMapping(value = "/del")
@Transactional
public Map<String, Object> del(HttpServletRequest request) {
service.delete(service.readQuery(request), service.readConfig(request));
return success(1);
}
@Transactional
public void delete(Map<String,String> query,Map<String,String> config){
StringBuffer sql = new StringBuffer("DELETE FROM ").append("`").append(table).append("`").append(" ");
sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.GROUP_BY))));
log.info("[{}] - 删除操作:{}",table,sql);
Query query1 = runCountSql(sql.toString());
query1.executeUpdate();
}
管理员登录,通过填写注册时输入的用户名、密码、权限、验证码进行登录,如图5-6所示。
图5-6管理员登录界面图
登录代码如下:
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.select(map, new HashMap<>()).getResultList();
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.select(map, new HashMap<>()).getResultList();
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.select(map, new HashMap<>()).getResultList();
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername = (User) resultList.get(0);
Map<String, String> groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();
String res = String.valueOf(service.runCountSql(sql).getSingleResult());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
tokenService.save(accessToken);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或密码不正确");
}
}
管理员登录进入宠物领养管理系统可以查看系统首页、站点管理(轮播图、公告栏)用户管理(管理员、发布用户、普通用户)内容管理(宠物论坛、论坛分类列表)商城管理(宠物商品、分类列表、订单列表)更多管理(送领记录、领养申请、领养中心、商品报表、寻主寻宠、挂失管理、留言反馈)等信息,如图5-7所示。
图5-7管理员功能界面图
宠物商品管理,在宠物商品管理列表可以查看标题、封面图、卖价、原价、商品库存、产品分类、描述、商品规格、有效期、厂商等详情操作。图5-8所示。
图5-8宠物商品管理界面图
挂失管理,在挂失管理添加页面通过标题、封面、宠物名称、动物分类、动物种类、相关视频、详情描述、发布日期、联系换手机等操作完成挂失登记。
图5-9挂失管理界面图
第六章 系统测试
通过一系列的测试,找出其中的错误。并且将测试作为软件开发的重要部分,在有了程序编程以后,测试就成为了系统中必不可少的一部分。通过统计分析,系统的软件测试占据了整个系统开发45%的工作量,从软件开发的成本中,测试成本已经包含了很多的测试工作。在测试中,每个程序都有可能出现错误。在该程序开发的过程中当中,利用人工方式去查找错误是比较繁琐和困难的,所以有必要找一些测试工具进行测试和分析。在系统整个程序的设计当中,出现一些错误的信息是时常发生的。对于这些指令当中语法是错误的,同时程序执行过程当中会提示,这样就方便找出错误。但是另一种类型的错误是由计算出来的,但是这些错误也是隐藏的,有时候它是不会发生的,所以解决这些错误是十分费时的。在进行系统运行的时候我们要对前期工作进行一个系统测试工作,通过测试来发现系统当中所存在的错误。当我们在测试过程当中要提早发现错误,并且发现错误以后要及时去改正,这样就能保证系统的长期运行。逐渐系统测试也就成为了一个系统设计必不可缺少的一部分。测试软件的时候要尽可能的去提高软件的可行性。
6.1 测试目的
程序设计不能保证没有错误,这是一个开发过程,在错误或错误的过程中难以避免,这是不可避免的,但我们不能使这些错误始终存在于系统中,错误可能会造成无法估量的后果 如系统崩溃,安全信息,系统无法正常启动,导致安装用户手机屏幕等,为了避免这些问题,我们需要测试程序,并发现这些问题,并纠正它们 ,并使系统更长时间稳定成熟,本章的作用是发现这些问题,并对其进行修改,虽然耗时费力,但长期非常重要和必要 系统的开发。
软件测试与开发过程是一样的,都必须按照软件工程的正规原理进行,遵守管理学理论。不过,目前国内的软件测试已经积累了大量经验和方法,步骤相对成熟,软件测试的效率也越来越高。
宠物领养管理系统的实现,对于系统中功能模块的实现及操作都必须通过测试进行来评判系统是否可以准确的实现。在宠物领养管理系统正式上传使用之前必须做的一步就是系统测试,对于测试发现的错误及时修改处理,保证系统准确无误的供给用户使用。
6.2 测试方案设计
6.2.1 测试策略
1、功能测试
从用户的角度来看,测试时不了解新开发软件的内部结构,因此可以将系统与黑匣子进行比较,盲目输入后可以查看系统给出的反馈。这种测试属于黑盒测试,在测试中如果输入错误信息系统会报错。
2、性能测试
测试软件程序的整体状况(称为性能测试)通常使用自动化测试工具来检测系统的整体功能,在负载测试和压力测试之间进行分配,在某些情况下,将这两种情况结合起来。虽然压力测试可以检测到系统可以提供的最高级别的服务,但负载测试可以测试系统如何响应增加的负载。
6.2.2 测试分析
测试评估系统质量的方法不局限于系统编码和过程,应该与软件设计工作和历史需求分析密切相关。
软件测试应遵循以下原则:
(1)软件测试应尽快进行,整个测试部分应在软件开发和设计的整个过程中进行。如发现错误,立即处理,将大大减少软件开发的时间,并提高软件的质量。
(2)在软件的各种测试中,测试过程中使用的计划、报告等应妥善处理和存储。其主要目的是为了便于以后系统的维护。
(3)软件测试整个过程中的聚类现象应优先考虑。
(4)对于软件测试,我们应该尽量不去和自己设计的系统进行参考,而是要测试对方的程序,以确保软件测试结果的客观性和公平性。
(5)整个测试计划严格按照软件测试的具体实施细则进行。
(6)对整个测试结果进行综合检查,尽量避免重复错误。
本宠物领养管理系统满足用户的要求和需求,本宠物领养管理系统的使用能够有效的提高用户的使用率。
6.3 测试结果
测试后得到的性能和用例,系统具有足够的正确性、可靠性、稳定性,并且可以对输入数据进行准确的点击操作处理和响应测试用户的体验也得到了很好的反馈和响应时间。合理的范围,可以兼容所有主流浏览器,设计所需的效果。
在本次毕业设计的过程中,从开始的懵懂无知,感觉设计一个系统非常困难,不知道该从何做起,但是通过查阅相关资料和网站之后,让我对该系统的开发有了新的认知,开发系统最重要的就是需求调查和系统分析,也通过老师指导和学过相关的知识,在加上我的不懈努力,最后将该系统逐步完成。在此次毕业设计中,让我知道了做什么事都必须要坚持,努力去查阅资料,并且善于发现和研究,充分利用身边资源,我相信办法总比困难多,所有问题都会迎刃而解。通过此次宠物领养管理系统的开发设计,将我在大学期间所学的知识都应用到了其中。使理论知识和现实实践进行相结合,开发宠物领养管理系统将理论知识和实践相结合,也将计算机信息与实践问题进行了相结合,通过现代计算机网络的便利来解决生活中的问题,并且还提高了我的计算机编程能力,在这次的开发设计过程中,虽然我遇到了很多的问题和困难,但是通过老师和同学们的帮助下,所有的问题都迎刃而解了,让我顺利的完成了此次的毕业论文设计,通过此次毕业设计的开发与设计,大大的提高了我的动手动脑能力,并且为我以后的工作奠定了坚实的基础。
通过本次设计,让我学到了更多的知识,而且在设计中会有一些问题出现,最后通过查阅资料和在老师和同学的帮助下完成了系统的设计和开发,使得这次系统的开发非常的有意义。同时通过这次系统的设计也让我明白了自己在哪方面有不足,以后加以学习争取可以开发住更多有用的适用的系统软件。
致 谢
此次毕业设计的结束,也代表着我的大学生活即将结束,这次毕业设计的过程中,我非常感谢我的老师和同学们对我的帮助,让我完成了这次的毕业设计,首先我要感谢我的指导老师,当我遇到困难时,老师在第一时间为我指导,为我解决了很多困难,在这里,感谢您对我耐心的指导,我还要感谢我的每一位老师,感谢你们把知识传授于我们,让我们学会了做人做事的道理。
最后,我要感谢各位答辩老师,感谢你们在百忙之中抽出时间为我的论文进行点评。
参考文献
[1]李乐.Java语言应用研究[J].智慧中国,2022(09):80-81.
[2]宋旸.使用Java语言开发Web应用软件的知识探讨[J].中国设备工程,2022(14):121-123.
[3]张海越,范曦.浅析Java语言中线程的生命周期及实现方式[J].大众科技,2022,24(07):18-20+28.
[4]贺斌.计算机软件开发中JAVA语言的应用研究[J].中国设备工程,2022(11):247-249.
[5]杨迎.Java语言异常处理机制的分析[J].电子技术,2022,51(03):42-43.
[6]曹嵩彭,王鹏宇.浅析Java语言在软件开发中的应用[J].信息记录材料,2022,23(03):114-116.DOI:10.16009/j.cnki.cn13-1295/tq.2022.03.009.
[7]孟维成.对基于Java语言实现数据库的访问研究[J].软件,2022,43(02):169-171.
[8]镇鑫羽,景琴琴.Java语言程序设计的教学实践[J].集成电路应用,2022,39(02):256-257.DOI:10.19339/j.issn.1674-2583.2022.02.111.
[9]郭阳,常英贤.浅谈Java语言在计算机软件开发中的应用[J].数字通信世界,2022(01):88-90+94.
[10]喻佳,吴丹新.基于SpringBoot的Web快速开发框架[J].电脑编程技巧与维护,2021(09):31-33.DOI:10.16184/j.cnki.comprg.2021.09.013.
[11]方生.基于“MVVM”模式的“Web”前端的设计与实现[J].电脑知识与技术,2021,17(20):147-149.DOI:10.14004/j.cnki.ckt.2021.2004.
[12]周粉妹,吴仁平,钱荣华,陈思.基于SSM的宠物领养网站设计[J].扬州职业大学学报,2021,25(01):32-35.DOI:10.15954/j.cnki.cn32-1529/g4.2021.01.009.
[13]Siyi Liu. Explore Java Language and Android Mobile Software Development[J]. International Journal of Frontiers in Engineering Technology,2021,3.0(2.0).
[14]吴文洋,刘世宇.基于B/S架构宠物领养管理系统设计[J].软件,2020,41(11):85-87.
[15]游俊慧.MVC、MVP、MVVM三种架构模式的对比[J].办公自动化,2020,25(22):11-12+27.
[16]朱海萍,丁西,刘链.Web前端中基于MVVM框架的技术应用研究[J].科技资讯,2020,18(30):8-10.DOI:10.16661/j.cnki.1672-3791.2004-5455-1176.
[17]温海标.MVVM模式及其应用研究[J].电脑知识与技术,2020,16(24):92-93.DOI:10.14004/j.cnki.ckt.2020.2683.
[18]Kevin Kline. The Java Language Extension for SQL Server Is Now Open Source[J]. Database Trends and Applications,2020,34(4).
[19]杨华. 基于SSM的宠物店信息系统的设计与实现[D].吉林大学,2019.
[20]吕宇琛.SpringBoot框架在web应用开发中的探讨[J].科技创新导报,2018,15(08):168+173.DOI:10.16660/j.cnki.1674-098X.2018.08.168.
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~