SSM基于Java的宠物网站系统-计算机毕业设计源码07183

摘 要

在信息飞速发展的今天,网络已成为人们重要的信息交流平台。宠物网站每天都有大量的信息需要通过网络发布,为此,本人开发了一个基于B/S(浏览器/服务器)模式的宠物网站系统。

该系统以JJava编程语言、MySQL和SSM框架等为开发技术,实现了添加、修改、查看、删除系统数据。本系统采取组件化的方式对系统进行拆分,并对数据库中各个表的增删查改、表与表之间的约束关系进行分析与设计,最终实现符合用户需求功能的商业级应用。

系统界面简洁大方,布局合理,易操作易上手。对应用户的每一步操作,系统都能高响应地做出反馈。系统具体包含网站管理(轮播图、公告信息)人员管理(管理员、系统用户)内容管理(论坛列表、论坛分类、资讯列表、资讯分类)购物管理(宠物商城、分类列表、订单列表)模块管理(领养中心、领养申请、分享中心、宠物类型)个人管理等功能,为宠物服务提供一个管理平台,实现对数据地高效、安全地管理。

关键词:宠物网站,B/S模式,Java编程语言,MySQL
Ssm pet website system

Abstract

With the rapid development of information today, the network has become an important information exchange platform for people. There are a lot of information to be published through the network on pet websites every day. For this reason, I developed a pet service platform based on B/S (browser/server) mode.

The system uses JJava programming language, MySQL and SSM framework as development technologies to add, modify, view and delete system data. The system splits the system in a componentized way, analyzes and designs the addition, deletion, query and modification of each table in the database, and the constraint relationship between tables, and finally realizes the commercial application that meets the user's needs.

The system interface is simple and generous, with reasonable layout and easy operation. The system can respond to each operation of the user in a highly responsive manner. The system specifically includes website management (rotation chart, announcement information) personnel management (administrator, system user) content management (forum list, forum classification, information list, information classification) shopping management (pet mall, classification list, order list) module management (adoption center, adoption application, sharing center, pet type) personal management and other functions, providing a management platform for pet services, Realize efficient and safe management of data.

****Keywords:****pet website, B/S mode, Java programming language, MySQL

目 录

[第1章 绪论](#第1章 绪论)

[1.1 研究背景与意义](#1.1 研究背景与意义)

[1.2 开发现状](#1.2 开发现状)

[1.3 本文的组织结构](#1.3 本文的组织结构)

[第2章 相关技术介绍](#第2章 相关技术介绍)

[2.1 前后端分离](#2.1 前后端分离)

[2.2 Java编程语言](#2.2 Java编程语言)

[2.3 JSP技术](#2.3 JSP技术)

[2.4 B/S模式](#2.4 B/S模式)

[2.5 MySQL简介](#2.5 MySQL简介)

[2.6 JDK简介](#2.6 JDK简介)

[第3章 系统分析](#第3章 系统分析)

[3.1 可行性分析](#3.1 可行性分析)

[3.1.1 法律可行性分析](#3.1.1 法律可行性分析)

[3.1.2 技术可行性分析](#3.1.2 技术可行性分析)

[3.1.3 经济可行性分析](#3.1.3 经济可行性分析)

[3.2 功能需求分析](#3.2 功能需求分析)

[3.3 非功能需求分析](#3.3 非功能需求分析)

[3.4 用例分析](#3.4 用例分析)

[3.5 业务流程分析](#3.5 业务流程分析)

[3.6 数据流程分析](#3.6 数据流程分析)

[第4章 系统设计](#第4章 系统设计)

[4.1 系统架构设计](#4.1 系统架构设计)

[4.2 系统功能结构](#4.2 系统功能结构)

[4.3 功能模块设计](#4.3 功能模块设计)

[4.4 数据库设计](#4.4 数据库设计)

[4.4.1 E-R图](#4.4.1 E-R图)

[4.4.2 表结构设计](#4.4.2 表结构设计)

[第5章 系统实现](#第5章 系统实现)

[5.1 开发工具](#5.1 开发工具)

[5.2 注册模块](#5.2 注册模块)

[5.3 登录/注销模块](#5.3 登录/注销模块)

[5.4 用户模块](#5.4 用户模块)

[5.4.1 个人资料模块](#5.4.1 个人资料模块)

[5.4.2 评论模块](#5.4.2 评论模块)

[5.4.3 商品搜索模块](#5.4.3 商品搜索模块)

[5.4.4 商品购买模块](#5.4.4 商品购买模块)

[5.4.5 领养申请模块](#5.4.5 领养申请模块)

[5.5 管理员模块](#5.5 管理员模块)

[5.5.1 商品管理模块](#5.5.1 商品管理模块)

[5.5.2 领养中心管理模块](#5.5.2 领养中心管理模块)

[第6章 系统测试](#第6章 系统测试)

[6.1 测试概述](#6.1 测试概述)

[6.2 测试过程](#6.2 测试过程)

[6.2.1 登录测试](#6.2.1 登录测试)

[6.2.2 信息录入测试](#6.2.2 信息录入测试)

[6.2.3 信息更新测试](#6.2.3 信息更新测试)

[6.2.4 信息删除测试](#6.2.4 信息删除测试)

[6.3 测试结果](#6.3 测试结果)

[第7章 总结与展望](#第7章 总结与展望)

[7.1 总结](#7.1 总结)

[7.2 展望](#7.2 展望)

参考文献

致谢

  1. 绪论
    1. 研究背景与意义

近年来,随着生活水平的不断提高与发展,越来越多人喜欢在宠物领养管理系统查看宠物信息,领养自己喜欢的宠物,将自己喜欢的宠物商品收藏,方便自己进行购买。宠物领养管理对用户和管理员都有很大帮助,在线寻主寻宠管理通过和数据库管理系软件协作来实现用户与管理员之间的一个很好的操作平台,基于这一点,设计了一个宠物网站管理。

经过对以上的情况进行分析,我们对用户的实际需求进行了详细的分析,指定出了相应的开发计划,为了方便用户在线进行查看宠物信息以及可以在线进行购买商品方面的管理操作,帮助宠物管理员节省很多的管理时间以及可以减少工作量,使得管理工作更加快捷顺利的进行,因此开发设计了该系统。

随着计算机的不断发展,已经融入到我们生活工作的每一个领域中,给我们的生活工作带来了很多的便利,因此,希望可以通过该系统的开发也能使宠物管理实现信息化管理,减轻人的负担,提高工作效率计。

    1. 开发现状

与其他国家相比,我国的软件产业相对落后,在信息化建设方面起步也比较晚,但是随着我国经济的不断发展,以及网络技术的不断提高,我国也在不断的进行软件行业的摸索,也得到了一些成果,我国的软件产业得到了快速的发展,越来越多的软件系统出现在人们的视线中,也逐渐改变着人们生活工作的方式。但是,对于信息化的建设,与很多发达国家相比,由于信息化程度的落后以及经费的不足,我国的宠物领养管理开发方面还是相对落后的,因此,要不断的努力探索,争取开发出一个实用的信息化的宠物管理系统,来实现宠物管理的信息化。因此本课题以宠物为例,目的是开发一个实用的宠物领养管理系统。

宠物领养管理的开发运用java技术,MIS的总体思想,以及MYSQL、SSM等技术的支持下共同完成了该网站系统的开发,实现了宠物管理的信息化,用户可以有一个非常好的宠物体验,管理员也可以通过该系统进行更加方便的管理操作,实现了之前指定好的计划。

    1. 本文的组织结构

六个章节共同组成了本文研究及设计内容,包括:

第一章:绪论。本文章的开头部分,对本题目的研究背景和研究意义等一些做文字性的描述。

第二章:相关技术介绍。主要介绍Java编程技术、JSP嵌入式脚本语言、B/S模式等。

第三章:系统分析。包括系统总体需求描述、功能性角度分析系统需求、非功能性等各个方面分析系统是否可以实现。

第四章:系统设计。本文章的重要部分,提供了系统架构的详细设计和一些主要功能模块的设计说明。

第五章:系统实现。将本系统分为前提的开发工具介绍和后期的功能代码实现。

第六章:系统测试。系统完成后,根据各个模块的测试用例才对各个模块进行功能测试。

  1. 相关技术介绍
    1. 前后端分离

Ajax的出现,也带来了另外一个问题,那就是有了Ajax以后,之前用模板语言实现起来的功能变得简单,之前模板语言实现不了的功能现在也能实现了。这样就造成越来越多的逻辑转移到了Javascript上,使其变得越来越复杂。

随着JS复杂度的增长,原来的开发模式出现了问题,一个程序员搞定全站变得越来越不靠谱,因此在这个时候就把网站开发这个职位划分成了前端和后端两个职位。但是只划分了前后端的职责范围还是远远不够的,在原来的开发模式下,前后端的代码也在一起的。现在既然已经分为前后端两波人在开发了,维护同一套代码就变得不那么方便。项目越复杂,出现你等我,我等你的情况就会越来越多,这样就拖慢了整体团队的节奏。所以为了团队的效率,前后端的代码也要做分离。

前后端的分离方式分为部分分离和全部分离两种,部分分离是只把脚本和样式分离出去,而html模板还留在后端通过JSP,Velocity或者Freemarker来渲染;另一种就是完全分离,脚本样式以及模板全都放在前端来维护。

部分分离已经很大程度上解决了前后端开发时的协调问题,开发效率也得到了很大程度的提升。但也得承认,这种方式也还是有问题的。当要开发html模板的时候,就需要搭起一整套后端的开发环境,或者是找后端程序员来协助。

而完全分离一般有两种方案,第一种就是使用Velocity这种在Nodejs和Java下都可以编译的页面模板,在开发时放到前端项目里,但在发布时,会把模板发布到后端的模板目录下,这样,开发时就做到了完全分离。这种方式最大的好处就是线上模板的渲染还是由Java来做的,形成的是带有动态数据的Html,比较有利于SEO。但这种方式下,前端的开发环境和发布系统的复杂度都相对较高,单纯的前端改动也还是要带着后端一起发布。

第二种完全分离的方式,就是把纯静态的Html模板完全放在前端,数据全部通过RESTful接口来进行交互。这样前后端就完全分开了,脱离了后端的模板,而这种方式的系统复杂度也会比第一种完全分离的方式低。但这种方案下,所有的页面数据都是用JS渲染的,没有动态模板,不太利于SEO。这个不足我们可以通过做Server render或者给蜘蛛做一套定制页面来解决。

    1. Java编程语言

Java采用函数或者过程来解析对于数据的操作,但又把数据和函数之间相互分开,这样并不利于维护,并会增加程序的工作量。而面向对象的编程将程序的函数和函数对于数据的操作封装在一个类中,作为一个整体来处理。所以Java语言是主要通过面向对象来实现编程,并且摒除了C++语言中的指针、多继承等比较难理解部分,创造出了自身独有的单继承、多接口、高内聚、低耦合等特性[3] [4]。

    1. JSP技术

JSP技术对动态Web页面的开发作用简直是举足轻重。可以很快的响应到客户端的发送请求。是甲骨文公司旗下的IT及互联网技术服务公司Sun Microsystems公司主导并创立的动态网页技术的标准。而且能依据请求内容动态地生成XML、HTML,为用户的网络请求提供技术服务,而且可以与服务器上的其它Java程序共同处理先对复杂的业务需求[5] [6]。

JSP主要优势如下:

(1)一旦程序有一次成功的编写,就能在多处运行起来。

(2)支持面特别广,许多平台已经引入该技术。

    1. B/S模式

计算机的系统软件主要分为两种:系统软件和应用软件。应用软件则是为了某个特定的应用而开发的一类软件,比如文字处理软件Word、QQ、开发本软件用的myeclise工具等。而应用型软件大致的分为B/S和C/S两种模式,常用的QQ、Office办公软件就是C/S结构的,另外常见基于的B/S结构开发的有各种网站,比如淘宝、企业的门户网站[7]。

B/S模式的优势有三个:第一是开发和业务扩展简单、只需要改变网页代码,就可以达到想要的网页效果;第二学生的操作显浅易懂;第三具有分布性特定,可以随时随地的进行查询、浏览等业务的处理。这是C/S所无法实现的。综上因素,选择B/S模式来设计和实现本系统[8]。

    1. MySQL简介

MySQL是一个开放的、快速的、多线程的SQL关系型数据库服务器。由于其体积小、免费、运行速度快以及可以通过相关免费的软件来对MySql数据库中的相关数据结构信息等等优点。受广大中等、小型企业所喜爱并占据了很大地位。本系统在数据库方面选用MySQL,并通过Nacivat来进行MySql数据库的管理。在Mysql的安装过程中,最需要注意的就是数据库的编码问题,所以在安装数据库时需要设置数据库的编码为Utf-8,与前台页面和服务器的编码相一致[13]。

    1. JDK简介

JDK是用于开发Java的,可以用来开发网站、企业级开发、电子商务等等各个方向的软件,其中与Java语言相结合开发的工具中,使用的最多、最广泛以及最开源的是MyEclipse,所以本系统选用的开发工具之一就是MyEclipse。Java中所有需要使用到的类都存在JDK安装目录下的对应版本的src目录下[14]。

  1. 系统分析
    1. 可行性分析
      1. 法律可行性分析

开发软件有没有触犯法律,这涉及到软件或者系统能不能发布的问题。如果触犯了法律,就必将会受到法律的制裁。常见法律问题就是软件抄袭问题,若是抄袭别人软件,将会受到严厉惩罚。

      1. 技术可行性分析

软件产业经过多年的发展,现在已经达到了很大的规模,从事软件开发的专业人员不计其数,软件产业的重要性已经上升到了影响和推动国民经济发展的核心地位。本系统基于的架构,目前技术已经非常的成熟,是不存在技术上面难以实现的麻烦。

      1. 经济可行性分析

开发软件所需的时间、人力和物力成本,开发完成后的收益如何,从投资回报的角度软件所需功能在现有经济条件能不能实现等进行深入的考虑,都符合实际的要求。所以宠物网站系统具有经济可行性和实用性,可以节约管理成本

    1. 功能需求分析

宠物网站系统主要是为了管理和控制宠物服务的管理情况,对网站管理(轮播图、公告信息)人员管理(管理员、系统用户)内容管理(论坛列表、论坛分类、资讯列表、资讯分类)购物管理(宠物商城、分类列表、订单列表)模块管理(领养中心、领养申请、分享中心、宠物类型)个人管理提供了方便的机制。本系统有多类使用者,分别是管理员和普通用户。以下是从这两种用户的角度分别介绍本系统所要实现的功能。

普通用户:

注册:首先检查用户名和邮箱是否存在,如果都不存在才能进行注册,并将用户输入的密码进行MD5加密,注册成功后提示注册成功,并将用户信息保存到数据库中。

登录:使用系统前提是需要登录账号。

评价:在商品的基础上发表对商品的评价,评价按时间形成评价列表。

收藏:在商品的基础上对商品的收藏,收藏按时间形成收藏列表,个人对其收藏夹进行维护和整理。

商品搜索和浏览:商品展示功能模块主要包括商品搜索、查看商品详情功能。未注册用户(游客)和已注册用户均可以在首页进行商品搜索及查看商品详情。具体功能需求如下:(1)商品搜索:前台用户可以在前台输入关键词进行搜索,搜索成功后返回该商品的动态排序列表,且能够进行分页展示。

(2)查看商品详情:用户可点击对应商品,从而查看该商品的商品详情。

商品购买:商品已存在的前提下,提供商品的购买功能,商品购买成功后,可以查看到个人已有的商品购买列表。

宠物领养申请:用户可提交申请领养宠物,并可查看领养宠物。

管理员:

用户管理:(1)新增用户,用于创建新用户。管理员在页面上选择"新增用户",输入用户所需的信息后保存。(2)查找用户信息,可根据条件查找用户。管理员第一次点击"用户列表"时,默认用户列表显示出全部的用户,可以根据用户姓名和出生年月进行模糊搜索,系统将查询到的用户显示到用户列表。如果不加限制、直接点击搜索按钮,则查询出全部的用户。(3)删除用户,用于删除已有用户。在用户列表显示出用户后,选择用户进行删除。在确定删除之后,该条记录将从数据库中删除,并提示删除成功,确认后列表会重新刷新。(4)修改用户信息,在用户列表显示出用户后,选择用户进行编辑。表单将出现已有用户信息,用户可以对已有信息进行确认更改。更改完成后选择确认,列表会重新刷新。

商品管理:

(1)商品列表:展示所有商品信息,形成的列表样式。

(2)商品搜索:通过商品名、商品类目来搜索商品。

(3)图片上传:给商品添加商品图片。

(4)增加商品;

(5)更新商品:更新商品的信息,如商品编号、商品名称、商品类别、价格、库存、图片等。

(6)商品上下架;

宠物服务管理:

(1)新增宠物领养信息;

(2)删除宠物服务;

(3)更新宠物宠物领养;

购买订单管理:

(1)按购买订单编号查询购买订单:

(2)查看购买订单详情:

    1. 非功能需求分析

系统非功能需求有非常多,比如性能需求、可承载最大用户数、稳定性、易用性需求等。本系统分析时考虑到易用性需求,因为系统是给人使用的,所以必须充分从用户的角度出发,考虑用户体验,使系统易理解易上手易操作。

    1. 用例分析

1.普通用户主要使用系统的商品购买和宠物服务下单业务,下图所示为普通用户的用例图。

图3-1 普通用户用例图

2.管理员主要负责网站管理(轮播图、公告信息)人员管理(管理员、系统用户)内容管理(论坛列表、论坛分类、资讯列表、资讯分类)购物管理(宠物商城、分类列表、订单列表)模块管理(领养中心、领养申请、分享中心、宠物类型)个人管理,下图所示描述管理员的用例图。

图3-2 管理员用例图

    1. 业务流程分析

系统业务流程图如下所示。

图3-3 系统业务流程图

业务流程图(TFD)通过一些特定的符号描述业务的处理过程,它重点强调业务过程中每一项处理活动和具体业务部门的关系,选择部分模块进行具体描述。重点对本系统整体业务中最为主要的商品交易及订单业务进行描述,用户进入宠物网站系统后进行各种模块信息的浏览,选择想要购买的商品添加到购买订单,对宠物服务下单,用户确认购买、填写订单信息,另外,管理人员进入后端管理,以执行该订单信息控制模块的相关管理方法,并在解决后向客户提供反馈机制。

    1. 数据流程分析

如下为系统的顶层数据流图,外部实体有用户和管理员,分别对系统输入数据,从而得到要输出的数据。

图3-4系统顶层数据流图

如下图所示为系统底层数据流图。

图3-5系统底层数据流图

宠物网站系统底层数据流图主要描述系统底层模块的数据流、数据载体、数据处理、外部实体的具体交互。本系统就是管理员和普通用户在:首页、宠物论坛、公告信息、宠物资讯、宠物商城、领养中心、分享中心等模块上的数据交互。

  1. 系统设计
    1. 系统架构设计

本系统采用MVC结构,结构包括了View、Controller、Service、ServiceImpl、Dao等模块。系统架构图如下图所示。

图4-1系统架构图

根据本系统需求分析,应为系统搭建多个包,分别为Controller、Service、ServiceImpl、Dao、Entity、Util。

现对上述的包进行简要的功能阐述,Controller层负责接收前台传来的请求并对取到的数据进行封装。Service层主要负责处理业务逻辑。Dao层负责数据库方面的交互。Entity包放置实体类,对应数据库里面一张张的表。Util包放置工具类,比如以json数据的格式返回前台的JSONUtil类,自动生成id的GenerateID类等。通过applicationContext.xml,applicationContext-dataSource.xml,web.xml这三个配置文件来搭建本系统。

首先配置applicationContext.xml,主要是自动扫描控制器,视图模式,注解的启动。

applicationContext.xml是springMVC的一些相关配置数据。

    1. 系统功能结构

为了将系统从"做什么"落实到"怎么做",基于系统设计原则,对系统功能进行更适合编码实现的功能划分。根据上图的系统架构设计,整理出规范的系统功能结构图,为系统的实现编码做好准备。

如下图所示为系统功能结构图。

图4-2系统功能结构图

    1. 功能模块设计

用户管理针对所有用户和管理员。未注册用户点击注册,进入注册页面填写新用户信息,得到自定义生成账号后,注册完成。未注册用户注册的活动图如下图所示。

图4-3未注册用户注册活动图

用户可进行登录使用更多功能,首先进入用户登录界面,输入用户账号和密码,后台对账号和密码信息进行核对验证,验证成功则页面直接显示登录用户昵称代表登录成功,否则返回用户登录界面。用户登录活动图如下图。

图4-4用户登录活动图

用户登录后,进入功能页面,可对自己的信息进行管理,包括首页、宠物论坛、公告信息、宠物资讯、宠物商城、领养中心、分享中心。用户使用功能活动图如下图所示。

图4-5用户使用功能活动图

用户功能界面可对自己的密码进行修改。进入修改密码界面后核对当前密码,核对成功后填写新密码。修改密码活动图如下图所示。

图4-6修改密码活动图

    1. 数据库设计

宠物网站系统采用的数据库是MySQL,该部分将根据系统需求和设计,设计合理的数据库。本系统考虑到之后系统的扩展集群,数据库将不使用外键。此外,不用外键时数据管理也较为简单,操作更加方便,性能更高。

      1. E-R图

E-R图,更加直观的告诉开发人员系统的各个数据的属性,各个数据之间的联系,各个数据的类型。能通过该模型更直观地了解数据库的设计,并根据对其逐渐改善。

本系统图设计,如下图所示。

图4-7系统E-R图

      1. 表结构设计

本系统根据第三范式的思想设计数据库,减少最大程度的冗余,总共建立有多个表,用户表、管理员表、商品表、购买表、宠物领养表、评论表。

表结构如下所示。

表access_token (登陆访问时长)

|----|-------------|-----------|-------|-----|------|----|-------------------|------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | token_id | int | 10 | 0 | N | Y | | 临时访问牌ID |
| 2 | token | varchar | 64 | 0 | Y | N | | 临时访问牌 |
| 3 | info | text | 65535 | 0 | Y | N | | |
| 4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
| 5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |

表address (收货地址:)

|----|-------------|-----------|-----|-----|------|----|-------------------|----------------------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | address_id | int | 10 | 0 | N | Y | | 收货地址: |
| 2 | name | varchar | 32 | 0 | Y | N | | 姓名: |
| 3 | phone | varchar | 13 | 0 | Y | N | | 手机: |
| 4 | postcode | varchar | 8 | 0 | Y | N | | 邮编: |
| 5 | address | varchar | 255 | 0 | N | N | | 地址: |
| 6 | user_id | mediumint | 8 | 0 | N | N | | 用户ID:[0,8388607]用户获取其他与用户相关的数据 |
| 7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 9 | default | bit | 1 | 0 | N | N | 0 | 默认判断 |

表adoption_application (领养申请)

|----|-------------------------|-----------|-------|-----|------|----|-------------------|--------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | adoption_application_id | int | 10 | 0 | N | Y | | 领养申请ID |
| 2 | application_no | varchar | 64 | 0 | Y | N | | 申请编号 |
| 3 | pet_number | varchar | 64 | 0 | Y | N | | 宠物编号 |
| 4 | pet_name | varchar | 64 | 0 | Y | N | | 宠物名称 |
| 5 | type_of_pet | varchar | 64 | 0 | Y | N | | 宠物类型 |
| 6 | pet_age | varchar | 64 | 0 | Y | N | | 宠物年龄 |
| 7 | sex_of_pet | varchar | 64 | 0 | Y | N | | 宠物性别 |
| 8 | adoption_agreement | varchar | 255 | 0 | Y | N | | 领养协议 |
| 9 | application_user | int | 10 | 0 | Y | N | 0 | 申请用户 |
| 10 | reason_for_adoption | text | 65535 | 0 | Y | N | | 领养理由 |
| 11 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
| 12 | examine_reply | varchar | 16 | 0 | Y | N | | 审核回复 |
| 13 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
| 14 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
| 15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |

表adoption_center (领养中心)

|----|----------------------|-----------|------------|-----|------|----|-------------------|-------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | adoption_center_id | int | 10 | 0 | N | Y | | 领养中心ID |
| 2 | pet_number | varchar | 64 | 0 | Y | N | | 宠物编号 |
| 3 | cover | varchar | 255 | 0 | Y | N | | 封面 |
| 4 | pet_name | varchar | 64 | 0 | Y | N | | 宠物名称 |
| 5 | type_of_pet | varchar | 64 | 0 | Y | N | | 宠物类型 |
| 6 | pet_age | varchar | 64 | 0 | Y | N | | 宠物年龄 |
| 7 | sex_of_pet | varchar | 64 | 0 | Y | N | | 宠物性别 |
| 8 | adoption_agreement | varchar | 255 | 0 | Y | N | | 领养协议 |
| 9 | relevant_information | longtext | 2147483647 | 0 | Y | N | | 相关信息 |
| 10 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 11 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
| 12 | limit_times | int | 10 | 0 | N | N | 0 | 限制次数 |
| 13 | limit_type | tinyint | 4 | 0 | N | N | 2 | 限制次数类型1-每天次,2-总计次 |
| 14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |

表article (文章:用于内容管理系统的文章)

|----|-------------|-----------|------------|-----|------|----|-------------------|------------------------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | article_id | mediumint | 8 | 0 | N | Y | | 文章id:[0,8388607] |
| 2 | title | varchar | 125 | 0 | N | Y | | 标题:[0,125]用于文章和html的title标签中 |
| 3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
| 4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
| 5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 8 | source | varchar | 255 | 0 | Y | N | | 来源:[0,255]文章的出处 |
| 9 | url | varchar | 255 | 0 | Y | N | | 来源地址:[0,255]用于跳转到发布该文章的网站 |
| 10 | tag | varchar | 255 | 0 | Y | N | | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 |
| 11 | content | longtext | 2147483647 | 0 | Y | N | | 正文:文章的主体内容 |
| 12 | img | varchar | 255 | 0 | Y | N | | 封面图 |
| 13 | description | text | 65535 | 0 | Y | N | | 文章描述 |

表article_type (文章分类)

|----|-------------|-----------|-------|-----|------|----|-------------------|-------------------------------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | type_id | smallint | 5 | 0 | N | Y | | 分类ID:[0,10000] |
| 2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
| 3 | name | varchar | 16 | 0 | N | N | | 分类名称:[2,16] |
| 4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
| 5 | description | varchar | 255 | 0 | Y | N | | 描述:[0,255]描述该分类的作用 |
| 6 | icon | text | 65535 | 0 | Y | N | | 分类图标: |
| 7 | url | varchar | 255 | 0 | Y | N | | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 |
| 8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |

表auth (用户权限管理)

|----|----------------|-----------|-------|-----|------|----|-------------------|---------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | auth_id | int | 10 | 0 | N | Y | | 授权ID: |
| 2 | user_group | varchar | 64 | 0 | Y | N | | 用户组: |
| 3 | mod_name | varchar | 64 | 0 | Y | N | | 模块名: |
| 4 | table_name | varchar | 64 | 0 | Y | N | | 表名: |
| 5 | page_title | varchar | 255 | 0 | Y | N | | 页面标题: |
| 6 | path | varchar | 255 | 0 | Y | N | | 路由路径: |
| 7 | position | varchar | 32 | 0 | Y | N | | 位置: |
| 8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
| 9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
| 10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
| 11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
| 12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
| 13 | field_add | text | 65535 | 0 | Y | N | | 添加字段: |
| 14 | field_set | text | 65535 | 0 | Y | N | | 修改字段: |
| 15 | field_get | text | 65535 | 0 | Y | N | | 查询字段: |
| 16 | table_nav_name | varchar | 500 | 0 | Y | N | | 跨表导航名称: |
| 17 | table_nav | varchar | 500 | 0 | Y | N | | 跨表导航: |
| 18 | option | text | 65535 | 0 | Y | N | | 配置: |
| 19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |

表cart (购物车)

|----|-------------|-----------|-----|-----|------|----|-------------------|----------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | cart_id | int | 10 | 0 | N | Y | | 购物车ID: |
| 2 | title | varchar | 64 | 0 | Y | N | | 标题: |
| 3 | img | varchar | 255 | 0 | N | N | 0 | 图片: |
| 4 | user_id | int | 10 | 0 | N | N | 0 | 用户ID: |
| 5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 7 | state | int | 10 | 0 | N | N | 0 | 状态:使用中,已失效 |
| 8 | price | double | 9 | 2 | N | N | 0.00 | 单价: |
| 9 | price_ago | double | 9 | 2 | N | N | 0.00 | 原价: |
| 10 | price_count | double | 11 | 2 | N | N | 0.00 | 总价: |
| 11 | num | int | 10 | 0 | N | N | 1 | 数量: |
| 12 | goods_id | mediumint | 8 | 0 | N | N | | 商品id:[0,8388607] |
| 13 | type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
| 14 | description | varchar | 255 | 0 | Y | N | | 描述:[0,255]用于产品规格描述 |

表collect (收藏)

|----|--------------|-----------|-----|-----|------|----|-------------------|--------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | collect_id | int | 10 | 0 | N | Y | | 收藏ID: |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
| 3 | source_table | varchar | 255 | 0 | Y | N | | 来源表: |
| 4 | source_field | varchar | 255 | 0 | Y | N | | 来源字段: |
| 5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 6 | title | varchar | 255 | 0 | Y | N | | 标题: |
| 7 | img | varchar | 255 | 0 | Y | N | | 封面: |
| 8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |

表comment (评论)

|----|--------------|-----------|------------|-----|------|----|-------------------|----------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | comment_id | int | 10 | 0 | N | Y | | 评论ID: |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
| 3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
| 4 | content | longtext | 2147483647 | 0 | Y | N | | 内容: |
| 5 | nickname | varchar | 255 | 0 | Y | N | | 昵称: |
| 6 | avatar | varchar | 255 | 0 | Y | N | | 头像地址:[0,255] |
| 7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 9 | source_table | varchar | 255 | 0 | Y | N | | 来源表: |
| 10 | source_field | varchar | 255 | 0 | Y | N | | 来源字段: |
| 11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |

表forum (论坛)

|----|-------------|-----------|------------|-----|------|----|-------------------|-----------------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | forum_id | mediumint | 8 | 0 | N | Y | | 论坛id |
| 2 | display | smallint | 5 | 0 | N | N | 100 | 排序 |
| 3 | user_id | mediumint | 8 | 0 | N | N | 0 | 用户ID |
| 4 | nickname | varchar | 16 | 0 | Y | N | | 昵称:[0,16] |
| 5 | praise_len | int | 10 | 0 | Y | N | 0 | 点赞数 |
| 6 | hits | int | 10 | 0 | N | N | 0 | 访问数 |
| 7 | title | varchar | 125 | 0 | N | N | | 标题 |
| 8 | keywords | varchar | 125 | 0 | Y | N | | 关键词 |
| 9 | description | varchar | 255 | 0 | Y | N | | 描述 |
| 10 | url | varchar | 255 | 0 | Y | N | | 来源地址 |
| 11 | tag | varchar | 255 | 0 | Y | N | | 标签 |
| 12 | img | text | 65535 | 0 | Y | N | | 封面图 |
| 13 | content | longtext | 2147483647 | 0 | Y | N | | 正文 |
| 14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 16 | avatar | varchar | 255 | 0 | Y | N | | 发帖人头像: |
| 17 | type | varchar | 64 | 0 | N | N | 0 | 论坛分类:[0,1000]用来搜索指定类型的论坛帖 |

表forum_type (论坛分类)

|----|-------------|-----------|-----|-----|------|----|-------------------|-------------------------------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | type_id | smallint | 5 | 0 | N | Y | | 分类ID:[0,10000] |
| 2 | name | varchar | 16 | 0 | N | N | | 分类名称:[2,16] |
| 3 | description | varchar | 255 | 0 | Y | N | | 描述:[0,255]描述该分类的作用 |
| 4 | url | varchar | 255 | 0 | Y | N | | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 |
| 5 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
| 6 | icon | varchar | 255 | 0 | Y | N | | 分类图标: |
| 7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |

表goods (商品信息)

|----|-----------------|-----------|------------|-----|------|----|-------------------|------------------------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | goods_id | mediumint | 8 | 0 | N | Y | | 产品id:[0,8388607] |
| 2 | title | varchar | 125 | 0 | Y | N | | 标题:[0,125]用于产品和html的<title>标签中 |
| 3 | img | text | 65535 | 0 | Y | N | | 封面图:用于显示于产品列表页 |
| 4 | description | varchar | 255 | 0 | Y | N | | 描述:[0,255]用于产品规格描述 |
| 5 | price_ago | double | 8 | 2 | N | N | 0.00 | 原价:[1] |
| 6 | price | double | 8 | 2 | N | N | 0.00 | 卖价:[1] |
| 7 | sales | int | 10 | 0 | N | N | 0 | 销量:[0,1000000000] |
| 8 | inventory | int | 10 | 0 | N | N | 0 | 商品库存 |
| 9 | type | varchar | 64 | 0 | N | N | | 商品分类: |
| 10 | hits | int | 10 | 0 | N | N | 0 | 点击量:[0,1000000000]访问这篇产品的人次 |
| 11 | content | longtext | 2147483647 | 0 | Y | N | | 正文:产品的主体内容 |
| 12 | img_1 | text | 65535 | 0 | Y | N | | 主图1: |
| 13 | img_2 | text | 65535 | 0 | Y | N | | 主图2: |
| 14 | img_3 | text | 65535 | 0 | Y | N | | 主图3: |
| 15 | img_4 | text | 65535 | 0 | Y | N | | 主图4: |
| 16 | img_5 | text | 65535 | 0 | Y | N | | 主图5: |
| 17 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 19 | customize_field | text | 65535 | 0 | Y | N | | 自定义字段 |
| 20 | source_table | varchar | 255 | 0 | Y | N | | 来源表: |
| 21 | source_field | varchar | 255 | 0 | Y | N | | 来源字段: |
| 22 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 23 | user_id | int | 10 | 0 | Y | N | 0 | 添加人 |

表goods_type (商品类型)

|----|--------------|-----------|-----|-----|------|----|-------------------|--------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | type_id | int | 10 | 0 | N | Y | | 商品分类ID: |
| 2 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
| 3 | name | varchar | 255 | 0 | Y | N | | 商品名称: |
| 4 | desc | varchar | 255 | 0 | Y | N | | 描述: |
| 5 | icon | varchar | 255 | 0 | Y | N | | 图标: |
| 6 | source_table | varchar | 255 | 0 | Y | N | | 来源表: |
| 7 | source_field | varchar | 255 | 0 | Y | N | | 来源字段: |
| 8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |

表hits (用户点击)

|----|--------------|-----------|-----|-----|------|----|-------------------|-------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | hits_id | int | 10 | 0 | N | Y | | 点赞ID: |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
| 3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 5 | source_table | varchar | 255 | 0 | Y | N | | 来源表: |
| 6 | source_field | varchar | 255 | 0 | Y | N | | 来源字段: |
| 7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |

表notice (公告)

|----|-------------|-----------|------------|-----|------|----|-------------------|-------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | notice_id | mediumint | 8 | 0 | N | Y | | 公告id: |
| 2 | title | varchar | 125 | 0 | N | N | | 标题: |
| 3 | content | longtext | 2147483647 | 0 | Y | N | | 正文: |
| 4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |

表order (订单)

|----|-----------------|-----------|-----|-----|------|----|-------------------|--------------------------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | order_id | int | 10 | 0 | N | Y | | 订单ID: |
| 2 | order_number | varchar | 64 | 0 | Y | N | | 订单号: |
| 3 | goods_id | mediumint | 8 | 0 | N | N | | 商品id:[0,8388607] |
| 4 | title | varchar | 32 | 0 | Y | N | | 商品标题: |
| 5 | img | varchar | 255 | 0 | Y | N | | 商品图片: |
| 6 | price | double | 10 | 2 | N | N | 0.00 | 价格: |
| 7 | price_ago | double | 10 | 2 | N | N | 0.00 | 原价: |
| 8 | num | int | 10 | 0 | N | N | 1 | 数量: |
| 9 | price_count | double | 8 | 2 | N | N | 0.00 | 总价: |
| 10 | norms | varchar | 255 | 0 | Y | N | | 规格: |
| 11 | type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
| 12 | contact_name | varchar | 32 | 0 | Y | N | | 联系人姓名: |
| 13 | contact_email | varchar | 125 | 0 | Y | N | | 联系人邮箱: |
| 14 | contact_phone | varchar | 11 | 0 | Y | N | | 联系人手机: |
| 15 | contact_address | varchar | 255 | 0 | Y | N | | 收件地址: |
| 16 | postal_code | varchar | 9 | 0 | Y | N | | 邮政编码: |
| 17 | user_id | int | 10 | 0 | N | N | 0 | 买家ID: |
| 18 | merchant_id | mediumint | 8 | 0 | N | N | 0 | 商家ID: |
| 19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 21 | description | varchar | 255 | 0 | Y | N | | 描述:[0,255]用于产品规格描述 |
| 22 | state | varchar | 16 | 0 | N | N | 待付款 | 订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成 |

表pet_mall (宠物商城)

|----|-------------------------|-----------|------------|-----|------|----|-------------------|--------------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | pet_mall_id | int | 10 | 0 | N | Y | | 宠物商城ID |
| 2 | commodity_specification | varchar | 64 | 0 | Y | N | | 商品规格 |
| 3 | commodity_manufacturer | varchar | 64 | 0 | Y | N | | 商品厂家 |
| 4 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
| 5 | cart_title | varchar | 125 | 0 | Y | N | | 标题:[0,125]用于产品html的标签中 |
| 6 | cart_img | text | 65535 | 0 | Y | N | | 封面图:用于显示于产品列表页 |
| 7 | cart_description | varchar | 255 | 0 | Y | N | | 描述:[0,255]用于产品规格描述 |
| 8 | cart_price_ago | double | 8 | 2 | N | N | 0.00 | 原价:[1] |
| 9 | cart_price | double | 8 | 2 | N | N | 0.00 | 卖价:[1] |
| 10 | cart_inventory | int | 10 | 0 | N | N | 0 | 商品库存 |
| 11 | cart_type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
| 12 | cart_content | longtext | 2147483647 | 0 | Y | N | | 正文:产品的主体内容 |
| 13 | cart_img_1 | text | 65535 | 0 | Y | N | | 主图1: |
| 14 | cart_img_2 | text | 65535 | 0 | Y | N | | 主图2: |
| 15 | cart_img_3 | text | 65535 | 0 | Y | N | | 主图3: |
| 16 | cart_img_4 | text | 65535 | 0 | Y | N | | 主图4: |
| 17 | cart_img_5 | text | 65535 | 0 | Y | N | | 主图5: |
| 18 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 19 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |

表praise (点赞)

|----|--------------|-----------|-----|-----|------|----|-------------------|----------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | praise_id | int | 10 | 0 | N | Y | | 点赞ID: |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
| 3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 5 | source_table | varchar | 255 | 0 | Y | N | | 来源表: |
| 6 | source_field | varchar | 255 | 0 | Y | N | | 来源字段: |
| 7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |

表sharing_center (分享中心)

|----|----------------------|-----------|------------|-----|------|----|-------------------|--------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | sharing_center_id | int | 10 | 0 | N | Y | | 分享中心ID |
| 2 | pet_name | varchar | 64 | 0 | Y | N | | 宠物名称 |
| 3 | type_of_pet | varchar | 64 | 0 | Y | N | | 宠物类型 |
| 4 | cover | varchar | 255 | 0 | Y | N | | 封面 |
| 5 | pet_label | varchar | 64 | 0 | Y | N | | 宠物标签 |
| 6 | introduction_to_pets | text | 65535 | 0 | Y | N | | 宠物介绍 |
| 7 | pet_video | varchar | 255 | 0 | Y | N | | 宠物视频 |
| 8 | system_user | int | 10 | 0 | Y | N | 0 | 系统用户 |
| 9 | details | longtext | 2147483647 | 0 | Y | N | | 详情内容 |
| 10 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 11 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
| 12 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
| 13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |

表slides (轮播图)

|----|-------------|-----------|-----|-----|------|----|-------------------|--------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | slides_id | int | 10 | 0 | N | Y | | 轮播图ID: |
| 2 | title | varchar | 64 | 0 | Y | N | | 标题: |
| 3 | content | varchar | 255 | 0 | Y | N | | 内容: |
| 4 | url | varchar | 255 | 0 | Y | N | | 链接: |
| 5 | img | varchar | 255 | 0 | Y | N | | 轮播图: |
| 6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
| 7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |

表system_user (系统用户)

|----|----------------|-----------|----|-----|------|----|-------------------|--------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | system_user_id | int | 10 | 0 | N | Y | | 系统用户ID |
| 2 | user_name | varchar | 64 | 0 | Y | N | | 用户姓名 |
| 3 | gender | varchar | 64 | 0 | Y | N | | 性别 |
| 4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
| 5 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
| 6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
| 7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |

表type_of_pet (宠物类型)

|----|----------------|-----------|----|-----|------|----|-------------------|--------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | type_of_pet_id | int | 10 | 0 | N | Y | | 宠物类型ID |
| 2 | type_of_pet | varchar | 64 | 0 | Y | N | | 宠物类型 |
| 3 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
| 4 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |

表upload (文件上传)

|----|-----------|---------|-----|-----|------|----|-----|------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | upload_id | int | 10 | 0 | N | Y | | 上传ID |
| 2 | name | varchar | 64 | 0 | Y | N | | 文件名 |
| 3 | path | varchar | 255 | 0 | Y | N | | 访问路径 |
| 4 | file | varchar | 255 | 0 | Y | N | | 文件路径 |
| 5 | display | varchar | 255 | 0 | Y | N | | 显示顺序 |
| 6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
| 7 | dir | varchar | 255 | 0 | Y | N | | 文件夹 |
| 8 | type | varchar | 32 | 0 | Y | N | | 文件类型 |

表user (用户账户:用于保存用户登录信息)

|----|-------------|-----------|-----|-----|------|----|-------------------|-------------------------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | user_id | mediumint | 8 | 0 | N | Y | | 用户ID:[0,8388607]用户获取其他与用户相关的数据 |
| 2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
| 3 | user_group | varchar | 32 | 0 | Y | N | | 所在用户组:[0,32767]决定用户身份和权限 |
| 4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
| 5 | phone | varchar | 11 | 0 | Y | N | | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 |
| 6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
| 7 | username | varchar | 16 | 0 | N | N | | 用户名:[0,16]用户登录时所用的账户名称 |
| 8 | nickname | varchar | 16 | 0 | Y | N | | 昵称:[0,16] |
| 9 | password | varchar | 64 | 0 | N | N | | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 |
| 10 | email | varchar | 64 | 0 | Y | N | | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 |
| 11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
| 12 | avatar | varchar | 255 | 0 | Y | N | | 头像地址:[0,255] |
| 13 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |

表user_group (用户组:用于用户前端身份和鉴权)

|----|--------------|-----------|-----|-----|------|----|-------------------|----------------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | group_id | mediumint | 8 | 0 | N | Y | | 用户组ID:[0,8388607] |
| 2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
| 3 | name | varchar | 16 | 0 | N | N | | 名称:[0,16] |
| 4 | description | varchar | 255 | 0 | Y | N | | 描述:[0,255]描述该用户组的特点或权限范围 |
| 5 | source_table | varchar | 255 | 0 | Y | N | | 来源表: |
| 6 | source_field | varchar | 255 | 0 | Y | N | | 来源字段: |
| 7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
| 9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |

  1. 系统实现
    1. 开发工具

系统中应用的开发工具总结如下表所示。

表5-1开发工具

|----------------------------------------------|--------------------|---------------------|
| 名称 | 工具 | 版本 |
| 操作系统 IDE(Integrated Development Environment) | Windows Eclipse | 7/8/10 2017 |
| 服务器 | Tomcat | 9.10.7 |
| JDK(Java Development Kit) | JDK | Java SE 8.0 (1.8.0) |
| 数据库 浏览器 界面工具 | MySQL 谷歌 Photoshop | 5.7 6.0 2016 |

    1. 注册模块

未注册用户在用户注册界面uerRegister.jsp,输入新用户信息,点击注册后,新用户信息由界面传入控制层userAction,调用addUser(user)方法,通过userDAOImp向数据库用户表插入用户信息,由于用户账号是自动生成的,若成功则反馈注册成功,并提示新用户的用户账号;若失败则回到登录界面,并显示登录失败。

注册界面如下所示。

图5-1注册界面

注册代码如下:

/**

* 注册

* @return

*/

@PostMapping("register")

public Map<String, Object> signUp(HttpServletRequest request) throws IOException {

// 查询用户

Map<String, String> query = new HashMap<>();

Map<String,Object> map = service.readBody(request.getReader());

query.put("username",String.valueOf(map.get("username")));

List list = service.selectBaseList(service.select(query, new HashMap<>()));

if (list.size()>0){

return error(30000, "用户已存在");

}

map.put("password",service.encryption(String.valueOf(map.get("password"))));

service.insert(map);

return success(1);

}

public Map<String,Object> readBody(BufferedReader reader){

BufferedReader br = null;

StringBuilder sb = new StringBuilder("");

try{

br = reader;

String str;

while ((str = br.readLine()) != null){

sb.append(str);

}

br.close();

String json = sb.toString();

return JSONObject.parseObject(json, Map.class);

}catch (IOException e){

e.printStackTrace();

}finally{

if (null != br){

try{

br.close();

}catch (IOException e){

e.printStackTrace();

}

}

}

return null;

}

public void insert(Map<String,Object> body){

E entity = JSON.parseObject(JSON.toJSONString(body),eClass);

baseMapper.insert(entity);

log.info("[{}] - 插入操作:{}",entity);

}

    1. 登录/注销模块

用户在首页点击登录,进入用户登录界面uerLogin.jsp,输入用户账号和密码,点击登录,用户账号和密码信息由界面传入控制层userAction,调用userLogin(user)方法,通过userDAOImp向数据库用户表搜索该用户账号与密码,将最终结果反馈到前端。若成功则回到首页;用户成功登录,若失败则回到登录界面,并显示登录失败。

用户点击注销,清空浏览器session值,然后返回登录页或者首页。

登录界面如下所示。

图5-1登录界面

登录代码如下:

@Slf4j

public class LoginInterceptor implements HandlerInterceptor {

private String tokenName = "x-auth-token";

@Override

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

String token = request.getHeader(this.tokenName);

setHeader(request, response);

log.info("[请求接口] - {} , [请求类型] - {}",request.getRequestURL().toString(),request.getMethod());

if (request.getRequestURL().toString().contains("/api/user/login")){

return true;

}

else if (request.getRequestURL().toString().contains("/api/user/state")){

return true;

}

else if (request.getRequestURL().toString().contains("/api/user/register")){

return true;

}

if (token == null || "".equals(token)){

if ("POST".equals(request.getMethod())){

return false;

}else {

return true;

}

}else {

return true;

}

}

private void setHeader(HttpServletRequest request, HttpServletResponse response) {

//跨域的header设置

response.setHeader("Access-control-Allow-Origin", request.getHeader("Origin"));

response.setHeader("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH");

response.setHeader("Access-Control-Allow-Credentials", "true");

response.setHeader("Access-Control-Allow-Headers", request.getHeader("Access-Control-Request-Headers"));

response.setHeader("Access-Control-Max-Age", "1800");

//防止乱码,适用于传输JSON数据

response.setHeader("Content-Type", "application/json;charset=UTF-8");

response.setStatus(HttpStatus.OK.value());

}

    1. 用户模块
      1. 个人资料模块

登录用户在首页点击进入用户中心userCenter.jsp,再点击修改个人信息按钮进入userChangeInfo.jsp界面,系统根据session中存储的目前登录的用户的账号,向控制层userAction发送请求,搜索当前用户信息,userAction向userDAOImp调用queryByUserId(user),向数据库的用户表搜索当前用户信息并将用户信息以对象的形式层层返回到userChangeInfo.jsp界面,显示出当前用户的个人信息。

若用户要对个人信息进行修改,则通过修改当前信息之后点击确认,向控制层userAction发送更改后的用户信息,调用changeUser(user)方法,通过userDAOImp向数据库用户表更新用户信息,若成功则反馈注册成功,则返回的userChangeInfo.jsp界面被更改成功;若失败则显示修改失败。

      1. 评论模块

用户可以发表自己的评论。将页面session中的用户账号userId和发表评论文字框内容和评分传入控制层PinglunAction,调用addPinglun方法,通过PinglunDAOImp向数据库评论表插入,将结果返回Pinglun_list.jsp界面。

评论发表界面如下所示。

图5-1评论发表界面

      1. 商品搜索模块

用户可以在首页进行商品搜索,在搜索框输入关键词后,前台发起请求,将传递的keyword参数信息从前台传递ShangpinController类里,匹配到list()方法,list()方法调用ShangpinServiceImpl类的getShangpinByKeywordCategory()方法,如果没有该关键词,则返回空的结果集。

商品搜索界面如下。

图5-1商品搜索界面

      1. 商品购买模块

用户在登录状态下浏览商品时可将该商品加入商品购买订单,从session中取出该用户的信息,点击加入商品购买订单后前台发起请求,将对应的商品数量shuliang、id参数信息从前台传递GoumaiController类里,匹配到add()方法,add()方法调用GoumaiServiceImpl类的add()方法。

商品购买界面如下所示。

图5-1商品购买界面

      1. 领养申请模块

用户在登录状态下浏览领养申请时可将该领养申请加入领养申请记录,从session中取出该用户的信息,点击领养申请记录后前台发起请求,将对应的领养申请shenqing、id参数信息从前台传递lingyangController类里,匹配到add()方法,add()方法调用lingyangServiceImpl类的add()方法。

领养申请下单界面如下所示。

图5-1领养申请界面

    1. 管理员模块
      1. 商品管理模块

管理员在后台管理界面点击到所有商品界面shangpinxinxi_list.jsp,向控制层shangpinxinxiAction发送请求,搜索当前所有商品信息,shangpinxinxiAction向shangpinxinxiDAOImp调用搜索全部商品的请求,向数据库的商品表搜索当前所有商品并将商品信息以对象的形式层层返回到shangpinxinxi_list.jsp界面,显示出当前所有商品信息。若要对商品信息进行修改和删除,则分别进入shangpinxinxi_updt.jsp或shangpinxinxi_delete.jsp,通过shangpinxinxiAction向shangpinxinxiDAOImp调用对应的修改或删除方法,向数据库的商品表做相应的持久层操作。

商品管理界面如下所示。

图5-1商品管理界面

      1. 领养中心管理模块

管理员在后台管理界面点击到领养赵忠祥界面lingyangzhongxini_list.jsp,向控制层lingyangzhongxiniAction发送请求,搜索当前所有领养中心信息,lingyangzhongxiniAction向lingyangzhongxiniDAOImp调用搜索全部领养中心的请求,向数据库的领养中心表搜索当前所有领养中心并将宠物信息以对象的形式层层返回到lingyangzhongxini_list.jsp界面,显示出当前所有领养中心信息。

领养中心管理界面如下所示。

图5-1领养中心管理界面

  1. 系统测试
    1. 测试概述

软件测试是软件开发完成后必须经过的一道程序,它在软件开发过程中地位十分重要,需要由专业的测试工程师来对软件进行各方面的测试,大到功能模块测试,小到代码的单元测试,这对测试工程师来说需要有足够的耐心和专业的测试方案,软件测试归根结底就是对软件的结构和功能的综合测评,需要做到结构稳定和功能正确,二者兼顾。软件测试也叫寻找系统bug的过程,世界上没有完美无缺、不存在bug的软件,只能将软件的bug降到最低最小,来追求极致。

    1. 测试过程
      1. 登录测试

登录测试是系统最开始就要进行,测试用户能否登录,才能完成后续的功能操作。

登录测试用例表如下所示。

表6-1登录测试

|--------|------------------------|----------|----------------|
| 用例编号 | YL001 | 程序版本 | 1.00 |
| 功能名称 | 使用者登录测试 | 编制人 | 李铁蛋 |
| 功能描述 | 根据用户的登录情况测试 |||
| 用例目的 | 测试用户登录情况是否正确 |||
| 测试项 | 测试数据 | 测试结果 | 预期结果 |
| 用户名 | 为空 | 请输入用户名 | 请输入用户名 |
| 密码 | 为空 | 请输入密码 | 请输入密码 |
| 用户密码组合 | 用户名:klouse 密码 klouses | 用户与密码不匹配 | 用户与密码不匹配 |
| 用户密码组合 | 用户名 : klouse 密码 klouse | 进入系统 | 正确的用户名和密码 登录系统 |

      1. 信息录入测试

管理员在发布信息页面,通过按照预先格式发布信息,如果因为输入时候缺少相关内容,就不能发布成功,且有相应错误提示

信息录入发布测试用例表如下所示。

表6-1信息录入发布测试

|------|--------|-------------|-------------|
| 用例编号 | YL002 | 程序版本 | 1.00 |
| 功能名称 | 信息发布测试 | 编制人 | 李铁蛋 |
| 功能描述 | 对使用者发布或者录入信息进行测试,判断其功能是否达到预期的要求 |||
| 用例目的 | 对系统使用者录入发布信息进行原型测试。 |||
| 测试项 | 测试数据 | 测试结果 | 预期结果 |
| 属性1 | 为空 | 请输入属性1对应的数据 | 请输入属性1对应的数据 |
| 属性2 | 为空 | 请输入属性2对应的数据 | 请输入属性2对应的数据 |
| 属性3 | 为空 | 请输入属性3对应的数据 | 请输入属性3对应的数据 |
| 全部输入 | 数据均填入 | 录入发布成功 | 录入发布成功 |

      1. 信息更新测试

管理员在更新信息页面,通过按照预先格式更新信息,如果因为输入时候缺少相关内容或者更新的数据不符合当前规范的话,就不能更新成功,且有相应错误提示

信息更新测试用例表如下所示。

表6-1信息更新测试

|------|-------------|--------|--------|
| 用例编号 | YL003 | 程序版本 | 1.00 |
| 功能名称 | 信息更新测试 | 编制人 | 李铁蛋 |
| 功能描述 | 对使用者更新信息进行测试,判断其功能是否达到预期的要求 |||
| 用例目的 | 对系统使用者更新信息进行原型测试。 |||
| 测试项 | 测试数据 | 测试结果 | 预期结果 |
| 属性1 | 编号:321 | 编号更新成功 | 编号更新成功 |
| 属性2 | 名称:名称1 | 名称更新成功 | 名称更新成功 |
| 属性3 | 内容:内容1234内容 | 内容更新成功 | 内容更新成功 |
| 全部输入 | 数据均未更改 | 更新成功 | 更新成功 |

      1. 信息删除测试

管理员在信息页面,通过点击数据删除按钮来删除该条数据,如果该数据和其他数据有关联,则提示是否确定删除。

信息删除测试用例表如下所示。

表6-1信息删除测试

|------|--------------|---------|---------|
| 用例编号 | YL004 | 程序版本 | 1.00 |
| 功能名称 | 信息删除测试 | 编制人 | 李铁蛋 |
| 功能描述 | 对使用者删除信息进行测试,判断其功能是否达到预期的要求 |||
| 用例目的 | 对系统使用者删除信息进行原型测试。 |||
| 测试项 | 测试数据 | 测试结果 | 预期结果 |
| 数据1 | 无任何关联的数据1 | 数据删除成功 | 数据删除成功 |
| 数据2 | 和其他数据有关联的数据2 | 请确认是否删除 | 请确认是否删除 |

    1. 测试结果

在经过之前的所有的工作之后,通过对软件的测试方法、测试原则还有典型的测试用例进行全面的、深入的介绍。经过对系统的全面测试,系统目前所具有的所有功能均成功的实现并且通过了测试,整个系统实现了基于 Java 开发的期望。

  1. 总结与展望
    1. 总结

宠物网站系统采用MVC结构,该结构非常完美的集优点于一身,成熟、强大、易理解易使用,通过使用这个结构,降低了开发的难度。本系统实现了基于Java的宠物网站系统,将数据操作维护的过程转化成电脑操作流程,具体实现了对系统网站管理(轮播图、公告信息)人员管理(管理员、系统用户)内容管理(论坛列表、论坛分类、资讯列表、资讯分类)购物管理(宠物商城、分类列表、订单列表)模块管理(领养中心、领养申请、分享中心、宠物类型)个人管理、数据维护,并提供查询统计功能来对商品和购买的相关数据进行统计分析,让使用者能更清晰的掌握运营情况,帮助使用者进行数据操作维护,简化工作流程,提高工作效率和盈利。

    1. 展望

目前完成的宠物网站系统,还有许多有待改进的地方。一个是功能上的改进,用户理应可以修改自己的相关信息,故应增设个人中心功能;另外,系统如果能提供更多的功能就会使得系统更加丰富和多样化,比如数据当前分析和未来预测等。第二个是技术上的改进,由于对开发框架不太熟悉,权限管理这部分,本系统采用一个JSP页面来规定好导航栏,即跳转的页面,这相对比较不灵活,如果将URL路径记录到数据库并实现增删查改会比较好;另外就是对EasyUI的使用还不够熟练,视觉效果和界面观感有待提升,希望日后能对这个系统有所改进。

参考文献

[1]潘杨占胜.JSP中文乱码问题的探讨与解决方法[J].福建电脑,2020,36(04):36-41.

[2]蒋治学.JSP技术及其在动态网页开发中的应用分析[J].浙江水利水电学院学报,2020,32(02):75-77.

[3]刘小飞,李明杰.基于JSP和Servlet架构的新闻频道系统[J].电脑知识与技术,2020,16(12):82-83.

[4]曾晰,舒坚.基于JSP的养老院管理信息系统的设计与实现[J].信息通信,2017,(09):122-124.

[5]费扬,杜庆治.基于JSP的大学城外卖网的设计与实现[J].软件,2017,38(07):92-96.

[6]PANCai-hua,LYUJian-you.ResearchonDesignofDigitalDesignManagementSystemofElectronLinearAcceleratorBasedonJSP[J].AnnualReportofChinaInstituteofAtomicEnergy,2016,(00):204-205.

[7]张元刚.煤炭运销综合管理系统智能发运关键技术的研究[J].自动化技术与应用,2020,39(05):154-159.

[8]朱家全,韦海清.基于JSP技术开发计算机网络技术专业资源库平台[J].电子技术与软件工程,2017,(01):46-47.

[9]陆丽.MVC设计模式在JavaWeb开发中的应用研究[J].信息通信,2020(04):104-106.

[10]刘玉成.用jsp实现整个目录上传案例[J].金融科技时代,2017,(02):52-54.

[11]毋世晓.基于MVC的BBS论坛创建与实现[J].电脑编程技巧与维护,2019(12):21-23.

[13]任宪臻,梁宏英.JSP页面中文乱码解决方法[J].数字技术与应用,2017,(01):154+157.

[13]袁嘉欣,马佳琳.基于JSP的大学生活动管理平台的设计与实现[J].软件工程,2019,22(01):43-46.

[14]韩会雯.基于JSP的BBS论坛设计与实现[J].电脑编程技巧与维护,2017,(05):16-17+39.

[15]张文鹏,王兴.改进型蝙蝠算法在作业车间调度问题中的应用[J].计算机工程与应用,2017,53(08):137-140+153.

[16]MorisPieter,Bui-ThiDanh,LaukensKris,MeysmanPieter.MILES:aJavatooltoextractnode-specificenrichedsubgraphsinbiomolecularnetworks[J].Bioinformatics,2020,36(6).

[17]TakashiTomiyasu,YurikoKonoHamada,ChristineBaransano,HitoshiKodamatani,AkitoMatsuyama,RyusukeImura,NurilHidayati,JoeniSetijoRahajoe.Mercuryconcentrationsinpaddyfieldsoilandfreshwatersnailsaroundasmall-scalegoldminingarea,WestJava,Indonesia[J].ToxicologyandEnvironmentalHealthSciences,2020,12(prepublish).

[18]TropicalGeography;NewTropicalGeographyFindingsfromUniversityCollegeLondon(UCL)Reported(GrowthandGrowthConstraintsInCraftIndustryClusters:theBatikIndustriesofCentralJava)[J].ScienceLetter,2020.

[19]ChemicalResearch;InvestigatorsatSardarVallabhbhaiNationalInstituteofTechnologyReportFindingsinChemicalResearch(Improvedhydrodistillationprocessusingamphiphiliccompoundsforextractionofessentialoilfromjavacitronellagrass)[J].Chemicals&Chemistry,2020

[20]JoaquimPereiraCarvalho,HelberVérasNunes,DaniellaInácioBarros,EvandroAlvesRibeiro,Jo?oHenriquedaSilvaLuz,LayssaGabriellyBarbosaGarciaRamos,PauloVictorGomesSales,RicardoAlencarLiborio,BrunoHenriqueDiNapoliNunes.VigorofJavaPlumSeedlings,inthePresenceandAbsenceofMucilageSubmittedtoDifferentSubstrates[J].EuropeanJournalofMedicinalPlants,2020.

致谢

在老师的教导和帮助下,本人完成了本篇论文,老师对论文的内容、格式都有非常严格的要求,在我写毕业论文的过程中,他多次给出了建议,并定期检查,对我们严格要求,帮助我们在文档的编写上写到极致和正确,他这种教学和工作态度,让我对他产生无限的敬佩感和尊敬感。写毕业论文的同时,作为应届生,我也忙着找工作中,遇到了很多选择,感到困惑迷茫的时候,老师给了我很多意见,感谢老师的耐心开导,跟她的聊天我明白了许多。

我还要感谢我的父母,一直以来都非常支持和相信我,在精神和经济上给了我很多力量,如今我将毕业走上工作之路,终于能报答父母的养育教导之恩。还有我大学期间所有老师和全体同学,遇到问题时,这些老师同学总是无私地帮助我,真的非常感谢,我也会加油努力成长为一个有用的人。

免费领取项目源码,请关注❤点赞收藏并私信博主,谢谢-

相关推荐
小飞鹰工程师20 分钟前
基于Multisim拔河比赛游戏+计分电路(含仿真和报告)
课程设计·数字电路·multisim·模拟电路·数字电子技术
师太,答应老衲吧21 分钟前
SQL实战训练之,力扣:2020. 无流量的帐户数(递归)
数据库·sql·leetcode
码农小旋风1 小时前
详解K8S--声明式API
后端
Peter_chq1 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
Yaml41 小时前
Spring Boot 与 Vue 共筑二手书籍交易卓越平台
java·spring boot·后端·mysql·spring·vue·二手书籍
小小小妮子~1 小时前
Spring Boot详解:从入门到精通
java·spring boot·后端
hong1616881 小时前
Spring Boot中实现多数据源连接和切换的方案
java·spring boot·后端
阡之尘埃1 小时前
Python数据分析案例61——信贷风控评分卡模型(A卡)(scorecardpy 全面解析)
人工智能·python·机器学习·数据分析·智能风控·信贷风控
Channing Lewis1 小时前
salesforce case可以新建一个roll up 字段,统计出这个case下的email数量吗
数据库·salesforce
aloha_7892 小时前
从零记录搭建一个干净的mybatis环境
java·笔记·spring·spring cloud·maven·mybatis·springboot