失物招领信息管理系统的设计与实现 (含源码+sql+视频导入教程+论文)

👉文末查看项目功能视频演示+获取源码+sql脚本+视频导入教程视频

1 、功能描述

  失物招领信息管理系统1拥有两种角色,分别为管理员和用户,具体功能如下:

管理员:招领信息管理、寻物信息管理、留言信息管理、申请信息管理、物品类型管理、学生管理、管理员管理、公告管理

用户:招领信息查看与发布、寻物信息查看与发布、留言查看与发布,个人信息查看及修改

1.1 背景描述

  失物招领信息管理系统是一款方便用户报告丢失物品并帮助找回的在线工具,提供快速的信息发布、搜索和匹配功能。通过该系统,失主可及时登记丢失物品信息,而拾到者可主动上传所拾物品,提高失物归还率,助力社区互助与诚信建设。

2、项目技术

后端框架:JFinal、 Servlet、mvc模式

前端框架:FreeMarker、html、css、JavaScript、JQuery

2.1 JFinal

  JFinal是一个基于Java语言的轻量级Web框架,它可以帮助开发者快速搭建Web应用程序。JFinal将Servlet API、Spring和MyBatis等技术进行整合,使得开发者能够更加高效地开发Web应用。JFinal还提供了丰富的插件和工具类,简化了开发过程,提高了开发效率。同时,JFinal还支持多种数据库访问方式,包括ORM、SQL语句等,方便开发者根据需求选择合适的访问方式。

2.2 mysql

  MySQL是一款Relational Database Management System,直译过来的意思就是关系型数据库管理系统,MySQL有着它独特的特点,这些特点使他成为目前最流行的RDBMS之一,MySQL想比与其他数据库如ORACLE、DB2等,它属于一款体积小、速度快的数据库,重点是它符合本次毕业设计的真实租赁环境,拥有成本低,开发源码这些特点,这也是选择它的主要原因。

3、开发环境

  • JAVA版本:JDK1.8,其它版本理论上可以
  • IDE类型:推荐IDEA
  • tomcat版本:Tomcat 7.x、8.x、9.x、10.x版本均可
  • 数据库版本:MySql 5.x、8.0都可
  • maven版本:无限制
  • 硬件环境:Windows 或者 Mac OS

4、功能截图+视频演示+文档目录

4.1 登录

登录

管理员和用户均可以通过此界面登录至系统,前端会自动校验信息

4.2用户 模块

首页

用户-查看个人发布的招领信息

用户-查看寻物信息

用户-查看寻物信息详情

用户-查看招领信息

用户-查看招领信息详情并申请认领

用户-发布感谢信息

用户-发布寻物信息

用户-发布找零信息

  • 招领信息查看预发布:用户可以发布招领信息,以及查看别人发布的招领信息和申请认领
  • 寻物信息查看与发布:用户可以发布寻物信息,以及查看别人发布的寻物信息
  • 留言查看与发布:用户可以查看留言墙,还可以发布留言
  • 个人信息查看及修改:用户可以修改个人信息

4.3 管理员模块

管理员-公告管理

管理员-管理员信息管理

管理员--留言信息管理

管理员-申请信息管理

管理员-物品类型管理

管理员-学生管理

管理员-寻物信息管理

管理员-招领信息管理

  • 招领信息管理:管理员可以通过物品类型筛选招领信息,还可以编辑和删除招领信息,已经找到丢失人的记录状态会被设置为“已找到失主”,且删除和编辑操作会被设置为无法执行。
  • 寻物信息管理:管理员可以通过物品类型筛选寻物信息,还可以编辑和删除寻物信息。其它同招领信息管理
  • 留言信息管理:管理员可以查看和删除留言
  • 申请信息管理:管理员可以查看和删除申请招领记录
  • 物品类型管理:管理员可以增删改查物品类型信息
  • 学生管理:管理员可以通过学号、姓名、专业查询学生,还可以增加、删除和修改学生信息
  • 管理员管理:管理员可以增删改查管理员信息
  • 公告管理:管理员可以查看和发布公告

4.4 文档目录

目录

5 、核心代码实现

5.1 配置代码

jdbcUrl=jdbc:mysql://localhost:3306/lostandfound?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
user=root
password=root
devMode=true
showSql=true


5.2 其它核心代码

package controller;

import com.jfinal.aop.Before;
import com.jfinal.core.Controller;
import com.jfinal.kit.Kv;
import com.jfinal.kit.LogKit;
import com.jfinal.plugin.activerecord.Db;
import interceptor.LoginValidator;
import model.*;

import java.util.List;


public class MainController extends Controller {


    public void index() {
        renderFreeMarker("login.ftl");

    }

    public void register() {

        renderFreeMarker("register.ftl");
    }

    public void Stu_Register() {
        String stuName = getPara("stuName");
        String password = getPara("password");
        String gender = getPara("gender");
        String email = getPara("email");
        String tel = getPara("tel");
        String QQ = getPara("QQ");
        String major = getPara("major");
        int stuId = getParaToInt("stuId");

        Student student = new Student();
        student.setStuId(stuId);
        student.setStuName(stuName);
        student.setGender(gender);
        student.setEmail(email);
        student.setQQ(QQ);
        student.setTel(tel);
        student.setMajor(major);
        student.setPassword(password);

        boolean success = false;
        try {
            student.save();
            success = true;
        } catch (Exception e) {
            LogKit.error("用户注册失败,原因是:" + e.getMessage());
        }
        String message = success ? "success" : "failed";
        Kv result = Kv.by("success", success).set("message", message);
        renderJson(result);
    }

    public void login() {
        renderFreeMarker("login.ftl");
    }


    @Before(LoginValidator.class)
    public void loginCheck() {
        String username = getPara("username");
        String password = getPara("password");
        String usertype = getPara("usertype");
        boolean success = false;
        int flag = 0;
        if (usertype.equals("1")){
            String sql_stu = Db.getSql("check_login_stu");
            List<Student> students = Student.dao.find(sql_stu, username, password);
            System.out.println("1");
            if (students.size() != 0) {
                System.out.println("2");
                setSessionAttr("user", students.get(0));
                success = true;
                flag = 1;
            } else {

                    setAttr("errmsg", "用户名或密码错误");
                }
        }else if(usertype.equals("2")){
            String check_login_admin = Db.getSql("check_login_admin");
            List<Admin> admin = Admin.dao.find(check_login_admin, username, password);
            System.out.println("size"+admin.size());
            if (admin.size() != 0) {
                setSessionAttr("user", admin.get(0));
                success = true;
                flag = 2;
            } else {
                setAttr("errmsg", "用户名或密码错误");
            }

        }

        String message = success ? "登录成功" : "登录失败,密码或者用户名错误";
        Kv result = Kv.by("success", success).set("message", message).set("flag", flag);
        renderJson(result);
    }

    public void logout() {
        removeSessionAttr("users");
        redirect("/login");
    }


}

6 、功能视频演示

点击这里播放视频

7 、 获取方式

👇 大家点赞、收藏、关注、评论啦 👇🏻获取联系方式,后台回复关键词:失物招领👇🏻

在这里插入图片描述

  • 36
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
基于Spring Boot和Vue前后端分离的校园失物招领系统源码需要使用数据库来存储系统中的数据。常用的数据库选择有MySQL、Oracle、SQL Server等,根据实际需求和规模可以选择适合的数据库。 在校园失物招领系统中,需要设计多个数据表来存储不同的实体对象。比如,可以设计一个"用户"表来存储用户的信息,包括用户名、密码、电话号码等;设计一个"失物"表来存储失物的信息,包括失物名称、拾取地点、拾取时间等;设计一个"招领"表来存储招领的信息,包括拾取人的联系方式、拾取时间等。 除了基本的信息存储外,还可以采用关系型数据库的特性来实现一些高级功能。比如,可以采用外键关联"用户"表和"失物"表,建立一对多的关系,一个用户可以发布多个失物信息;还可以利用数据库的索引功能来实现数据的快速检索,提高查询效率。 在连接数据库时,可以使用Spring Boot中提供的JDBC或者ORM框架来实现数据库的交互。JDBC提供了一组操作数据库的接口,开发者可以直接使用原生的SQL语句来进行数据库操作;ORM框架如MyBatis或Hibernate可以帮助开发者更方便地进行数据的增删改查操作,通过配置对象映射关系,实现对象和数据库表之间的转换。 总之,基于Spring Boot和Vue前后端分离的校园失物招领系统源码需要使用数据库来存储系统中的数据,并且根据实际需求和规模选择适合的数据库,利用数据库的特性和框架来实现系统的各种功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员王不二buer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值