一、前言
随着人们对动物保护意识的不断提高,动物救助工作越来越受到关注。然而,目前动物救助工作主要依赖传统的线下方式,存在信息不畅通、资源分配不合理、救助效率低下等问题。为了解决这些问题,有必要开发一个基于 B/S 架构的动物救助平台,利用互联网技术实现动物救助信息的快速发布、共享和管理,提高动物救助工作的效率和质量。
本系统是基于 Java 语言的 SSM 框架进行设计和开发的,SSM 开发框架分别包括 Spring、Spring MVC、MyBatis,集Spring 和 MyBatis 两个开源框架而成,其中的 Spring MVC 是 Spring 框架中的部分内容。数据库使用 MySQL,数据库连接工具使用Navicat,项目管理工具使用 Tomcat7。前端采用 Bootstrap、JQuery 框架进行页面设计及交互,后台采用 SSM 框架实现主要业务流程代码,并以 MySQL 数据库进行数据存储。
二、功能设计图
2.1 管理员用例图如下图所示:
2.2 管理员用例图如下图所示:
2.3 系统总体模块架构如下图所示:
三、数据库设计
数据库的 E-R 图(实体 - 关系图)是一种强大的工具,用于直观地表示数据库中的实体及其之间的关系。在数据库设计中,E-R 图可以帮助我们清晰地理解数据的结构和流向。限于篇幅要求,仅列出关键部分实体属性图和E-R图,如下所述。
四、部分效果展示
4.1 用户在登录成功之后,跳转到系统用户端首页。用户端首页界面如下图所示:
4.2 用户在登录成功之后,可点击查看领养动物的相关知识。领养动物知识界面如下图所示:
4.3 用户在登录成功之后,可以在论坛发表自己的评论。论坛界面如下图所示:
4.4 用户在登录成功之后,可以报名参加救助动物活动。救助动物活动界面如下面两图所示:
4.6 用户在登录成功之后,可以参加捐款活动。付款采用支付宝沙箱支付,捐款活动界面如下图所示:
4.7 管理员登录后可查看所有的用户,并且对用户进行封禁等操作。具体界面如下图所示:
4.8 管理员可以维护所有的活动,并且对违规的活动进行删除等操作。具体界面如下图所示:
4.9 管理员可以审批宠物领养请求。具体界面如下图所示:
五、部分功能代码
5.1、查询流浪动物知识
<select id="list" resultType="com.company.project.model.Active">
select s.id as id,s.created_at as createdAt,s.created_by as createdBy,
s.updated_by as updatedBy,s.updated_at as updatedAt,s.status as status,
s.name as name,s.active_type_id as activeTypeId,s.address as address,
s.start_time as startTime,s.end_time as endTime,s.content as content,
s.image as image,s.project_personnel as projectPersonnel,s.area_id as areaId,
tat.name as activeTypeName
from t_active s
left join t_active_type tat on s.active_type_id = tat.id
where s.is_delete = 0
<if test="status != null">
and s.status = #{status}
</if>
<if test="name != null and name != ''">
and s.name like CONCAT('%',#{name},'%')
</if>
</select>
5.2、领养宠物详情
<select id="detail" resultType="com.company.project.model.PetInfo">
select s.id as id,s.created_at as createdAt,s.created_by as createdBy,
s.updated_by as updatedBy,s.updated_at as updatedAt,s.status as status,
s.user_id as userId,s.name as name,s.sex as sex,s.age as age,
s.kind_id as kindId,s.coat_color as coatColor,s.feature as feature,s.pet_info_type_id as petInfoTypeId,
s.vaccine_situation as vaccineSituation,s.money as money,s.address as address,s.img_url as imgUrl,
s.adoptive_person as adoptivePerson,s.state as state,s.content as content,
u.name as petInfoTypeName
from t_pet_info s
left join t_pet_info_type u on s.pet_info_type_id = u.id
where s.is_delete = 0
and s.id = #{id}
</select>
六、答辩可能出现的问题
🌟问题一
答辩老师:为什么选择SSM框架来开发咱们的系统呢?
同学可回答:选择SSM是因为Spring 的依赖注入和面向切面编程等特性,使得代码的编写更加简洁明了。可以通过配置文件或注解的方式轻松地管理对象之间的依赖关系,减少了繁琐的代码编写工作。SpringMVC 的控制器和视图分离的设计模式,使得页面展示和业务逻辑处理更加清晰,提高了开发效率。MyBatis 的 SQL 映射功能,使得数据库操作更加直观和高效,减少了 SQL 语句的编写和维护成本。