下面给你一套完整、结构清晰、适合课程设计 / 本科毕设的方案:

《基于 Java + MySQL 的宠物领养平台 —— 流浪动物登记 · 领养申请 · 回访跟踪》

内容覆盖:选题意义 → 技术栈 → 角色设计 → 数据库设计 → 核心业务流程 → 关键代码 → 论文结构 → 答辩亮点,可直接落地。


一、选题背景与意义(论文可直接用)

随着流浪动物数量持续增长,传统救助方式存在以下问题:

  • 流浪动物信息登记依赖纸质或表格,难以统一管理

  • 领养流程不规范,缺少审核与跟踪机制

  • 领养后回访困难,无法保障动物福利

  • 公益组织之间信息不互通

本系统基于 Java + MySQL,实现流浪动物从 登记 → 领养 → 回访​ 的全流程数字化管理,具有较强的社会意义和实用价值。


二、技术架构(可升级为 SpringBoot)

基础版(适合课程设计)

前端(JSP / HTML + CSS + JS)
↓
Servlet / SpringMVC
↓
Service(业务逻辑)
↓
DAO(JDBC / MyBatis)
↓
MySQL

推荐毕设版

层级

技术

前端

HTML + CSS + JS / Thymeleaf

控制层

SpringMVC / SpringBoot

业务层

Spring

持久层

MyBatis

数据库

MySQL 5.7+

构建工具

Maven

服务器

Tomcat


三、系统角色设计

1️⃣ 管理员

  • 动物信息审核与发布

  • 领养申请审批

  • 回访任务分配

  • 数据统计

2️⃣ 救助人员 / 志愿者

  • 流浪动物登记

  • 协助领养审核

  • 执行回访

3️⃣ 领养人(用户)

  • 浏览待领养动物

  • 提交领养申请

  • 查看领养状态

  • 配合回访


四、核心业务流程(答辩必画)

流浪动物登记
   ↓
管理员审核发布
   ↓
用户浏览 & 提交领养申请
   ↓
审核(资格 + 环境)
   ↓
签订领养协议 → 完成领养
   ↓
定期回访跟踪

五、数据库设计(核心表)

1️⃣ 用户表 user

CREATE TABLE user (
  id INT PRIMARY KEY AUTO_INCREMENT,
  username VARCHAR(50) UNIQUE,
  password VARCHAR(100),
  phone VARCHAR(20),
  address VARCHAR(200),
  role VARCHAR(20) -- admin/volunteer/adopter
);

2️⃣ 动物信息表 pet

CREATE TABLE pet (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(50),
  type VARCHAR(20),       -- 猫/狗/其他
  breed VARCHAR(50),
  age INT,
  gender CHAR(1),
  health_status VARCHAR(100),
  description TEXT,
  image VARCHAR(200),
  status INT DEFAULT 0
  -- 0-待审核 1-可领养 2-已领养 3-下架
);

3️⃣ 领养申请表 adoption_application

CREATE TABLE adoption_application (
  id INT PRIMARY KEY AUTO_INCREMENT,
  user_id INT,
  pet_id INT,
  reason TEXT,
  experience VARCHAR(200),
  status INT DEFAULT 0
  -- 0-待审核 1-通过 2-驳回
  create_time DATETIME
);

4️⃣ 领养记录表 adoption_record

CREATE TABLE adoption_record (
  id INT PRIMARY KEY AUTO_INCREMENT,
  application_id INT,
  pet_id INT,
  user_id INT,
  adopt_date DATE,
  agreement_url VARCHAR(200)
);

5️⃣ 回访记录表 follow_up

CREATE TABLE follow_up (
  id INT PRIMARY KEY AUTO_INCREMENT,
  record_id INT,
  visit_date DATE,
  pet_status VARCHAR(100),
  environment VARCHAR(200),
  remark TEXT,
  visitor_id INT
);

六、核心功能实现(关键代码)

1️⃣ 动物登记(Servlet / Controller)

@PostMapping("/pet/add")
public String addPet(Pet pet) {
    pet.setStatus(0); // 待审核
    petService.save(pet);
    return "redirect:/pet/list";
}

2️⃣ 领养申请

@PostMapping("/adoption/apply")
public String apply(
        Integer petId,
        HttpSession session) {

    User user = (User) session.getAttribute("user");

    AdoptionApplication app = new AdoptionApplication();
    app.setUserId(user.getId());
    app.setPetId(petId);
    app.setStatus(0); // 待审核

    adoptionService.apply(app);

    // 修改动物状态为「领养中」
    petService.updateStatus(petId, 2);

    return "redirect:/adoption/my";
}

3️⃣ 领养审核

@PostMapping("/adoption/audit")
public String audit(Integer appId, Integer status) {

    adoptionService.updateStatus(appId, status);

    if (status == 1) {
        // 审核通过 → 生成领养记录
        adoptionService.createRecord(appId);
    }
    return "redirect:/adoption/list";
}

4️⃣ 回访记录

@PostMapping("/followup/add")
public String addFollowUp(FollowUp followUp) {
    followUpService.save(followUp);
    return "redirect:/followup/list";
}

七、页面示例(Thymeleaf / JSP)

待领养动物列表

<table class="table">
  <tr>
    <th>名字</th>
    <th>品种</th>
    <th>状态</th>
    <th>操作</th>
  </tr>
  <tr th:each="p : ${pets}">
    <td th:text="${p.name}"></td>
    <td th:text="${p.breed}"></td>
    <td th:text="${p.status == 1 ? '可领养' : '已领养'}"></td>
    <td>
      <a th:href="@{/adoption/apply(petId=${p.id})}">申请领养</a>
    </td>
  </tr>
</table>

八、系统特色(⭐ 答辩亮点)

✅ 覆盖「登记 → 领养 → 回访」全流程

✅ 动物状态机设计(待审核 / 可领养 / 已领养)

✅ 领养申请分级审批

✅ 回访跟踪闭环管理

✅ 公益属性,社会意义突出

✅ 可扩展为 SpringBoot / 小程序


九、毕设论文结构建议

章节

内容

第1章

绪论

第2章

相关技术

第3章

需求分析

第4章

系统设计(E-R图、状态流转图)

第5章

系统实现(登记 / 领养 / 回访)

第6章

系统测试

第7章

总结与展望


十、可扩展方向(体现工作量)

✅ 前后端分离(Vue + Axios)

✅ 领养协议在线签署(PDF)

✅ 动物健康档案

✅ 数据可视化(ECharts)

✅ 微信小程序端

✅ 消息通知(邮件 / 短信)

更多推荐