基于springboot+Vue前后端分离的招聘管理系统(程序+数据库+文档)

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路,向着优秀程序员前行!
🍅更多优质项目👇🏻👇🏻可点击下方获取🍅
文章底部或评论区获取🍅
Java项目精品实战案例《100套》


📣 有源码 查看源码

项目介绍

校园招聘系统为大家提供了快捷方便的招聘方式,随着社会的快速发展,计算机的影响是全面且深入的。人们的生活水平不断提高,日常生活中大学生对招聘平台方面的要求也在不断提高,需要招聘平台的人数更是不断增加,使得校园招聘平台的开发成为必需而且紧迫的事情。校园招聘平台主要是借助计算机,通过对学生信息招聘平台所需的信息管理,增加大学生选择,同时也方便对广大招聘平台的及时查询、修改以及对大学生信息的及时了解。校园招聘平台对大学生带来了更多的便利, 该系统通过和数据库管理系统软件协作来满足大学生的需求。
该系统以vue技术为支撑进行前端设计,后端数据库则采用MySQL,构建基于springboot的校园招聘系统.实验结果表明,该系统性能稳定,安全可靠,能够满足用户的需求。


一、选题背景意义

1.项目背景

校园的信息化招聘服务是高校信息技术管理的重要环节。而随着我国高等教育的发展,我国高等院校的数量变得越来越多,同时毕业生的人数也变得越来越多。所以在人员需求单位对毕业生进行招聘工作时会出现招聘时间过长、手续过于复杂、准备材料不充分等问题。如果仍然使用以前的招聘方式不仅会大大降低管理的效率而且不利于毕业生、招聘单位和管理工作人员之间的沟通,也不符合当今大量使用信息技术的趋势。因此,研究和开发一个高校校园招聘信息服务系统、实现高校毕业生招聘应聘流程的网络化跟踪,并通过网络搭建起毕业生、高校相关管理人员与人员需求单位的联系渠道,对于提高毕业生招应聘管理效率,减轻管理人员负担极具意义。

2.技术栈

开发系统:Windows
架构模式:MVC/前后端分离
JDK版本:Java JDK1.8(推荐)
开发工具:IDEA
数据库版本: mysql8.0(推荐)
数据库可视化工具: navicat
服务器:SpringBoot自带 apache tomcat
主要技术:Java,Springboot,mybatis,mysql,jquery,html,vue

二、系统开发平台

项目后端用springboot,前端使用vue编写。系统的用例模型和登录注册、修改信息、上传简历、消息管理等功能的业务流程图。在需求分析的基础上,采用分层架构的设计思想对系统总体架构进行了设计,构建基于springboot+vue模式设计模型系统的 B/S 架构,在这种开发框架之下,我们将校园招聘系统的数据、业务逻辑、控制以及页面展现分离,各自处理自己的任务,这样会大大提高应用的可扩展性和易维护性,给出了核心功能模块的类图,并利用时序图对每一个功能的实现进行了详细的设计。系统采用MySQL数据库来存储数据,本文在业务实体分析的基础上,给出了系统数据库的逻辑结构和物理结构。系统采用IDEA开发工具,以Tomcat作为Web应用服务器,前台采用vue,后台采用springboot框架。

1.springboot框架

Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。

2.Vue简介

Vue 是一套用于构建用户界面的渐进式 JavaScript 框架,也就是说,如果已经有一个现成的服务器端应用,可以将 Vue 作为该应用的一部分嵌入其中,从而带来更加丰富的交互体验,而不影响之前的应用功能。渐进式:用多少拿多少,不用全盘接收 Vue.js 的整个生态系统,即使使用 Vue.js 的一小部分功能,该功能也能独立运转,正常工作。和其他前端框架一样,使用 Vue 可以将一个网页分割成可复用的组件。每个组件都包含属于自己的 HTML、CSS 和 JavaScript与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

三、运行效果

1.登录注册

在这里插入图片描述

1.管理员

在这里插入图片描述

2.用户

在这里插入图片描述

3.企业

在这里插入图片描述

4.简历信息

加粗样式

5.招聘信息

在这里插入图片描述

6.文档目录

1绪论 1
1.1 开发背景 1
1.2 系统开发平台 2
1.2.1 springboot框架 2
1.2.2 Vue简介 2
1.2.3 MySQL数据库 3
1.3 系统开发环境 3
2 系统分析 4
2.1 系统需求分析 4
2.2 系统可行性分析 5
3 系统设计概要 6
3.1 设计思路 6
3.2 设计原理 6
3.3 业务流程分析 6
4 系统详细设计 8
4.1 系统数据库设计 8
4.2 系统功能结构图 8
4.3 系统功能设计 9
4.3.1 E-R模型 9
4.3.2 数据库表设计 9
5 系统开发与实现 11
6 系统测试 20
7 总结与展望 22
7.1 总结 22
7.2 展望 22
参考文献 23
致谢 24

四、部分代码实现

1.登录部分


    //管理员登录
    @PostMapping(value = "/admin")
    public RestResult adminLogin( HttpServletRequest request) {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        System.out.println(username);
        System.out.println(password);
        Map<String, String> map = new HashMap<>();
        map.put("username",username);
        map.put("password",password);
        QueryWrapper<TbAdmin> wrapper = new QueryWrapper<>();
        wrapper.allEq(map,false);
        if(tbAdminService.getMap(wrapper).size()!=3) return generator.getFailResult("登录失败~~");
        System.out.println(tbAdminService.getMap(wrapper).size());
        String token = JwtUtil.getToken(map);
        return generator.getTokenResult(token);
    }

//    //用户登录
    @PostMapping(value = "/user")
    public RestResult userLogin( HttpServletRequest request) {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        System.out.println(username);
        System.out.println(password);
        Map<String, String> map = new HashMap<>();
        map.put("username",username);
        map.put("password",password);
        QueryWrapper<TbUser> wrapper = new QueryWrapper<>();
        wrapper.allEq(map,false);
        Map<String, Object> userMap = tbUserService.getMap(wrapper);
        Object backname = userMap.get("username");
        if(userMap.size()!=12) return generator.getFailResult("登录失败~~");
        System.out.println(tbUserService.getMap(wrapper).size());
        String token = JwtUtil.getToken(map);
        return generator.getSuccessResult(backname,token);
    }
//    //企业登录
    @PostMapping(value = "/entr")
    public RestResult entrLogin( HttpServletRequest request) {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        System.out.println(username);
        System.out.println(password);
        Map<String, String> map = new HashMap<>();
        map.put("username",username);
        map.put("password",password);
        QueryWrapper<TbEnterprise> wrapper = new QueryWrapper<>();
        wrapper.allEq(map,false);
        Map<String, Object> entrMap = tbEnterpriseService.getMap(wrapper);
        Object backname = entrMap.get("username");
        if(entrMap.size()!=9) return generator.getFailResult("登录失败~~");
        System.out.println(tbEnterpriseService.getMap(wrapper).size());
        String token = JwtUtil.getToken(map);
        return generator.getSuccessResult(backname,token);
    }

2.用户部分

@RestController
@RequestMapping("/api/user")
public class TbUserController {
    @Autowired
    private ResultGenerator generator;
    @Autowired
    private TbUserService tbUserService;

    //查询用户账号的所有信息
    @PostMapping("/allInfo")
    public RestResult userAllInfo(HttpServletRequest request) {
        String username = request.getParameter("username");
        System.out.println(username);
        if (username != "") {
            return this.likeOneInfo(request);
        }
        List<TbUser> list = tbUserService.list();
        if (list != null) {
            return generator.getSuccessResult(list);
        } else {
            return generator.getFailResult("没有数据");
        }
    }

    //模糊查询用户一条信息,通过用户名
    @PostMapping("/likeOneInfo")
    public RestResult likeOneInfo(HttpServletRequest request) {
        String username = request.getParameter("username");
        QueryWrapper<TbUser> wrapper = new QueryWrapper<>();
        wrapper.likeRight("username", username);
        List<TbUser> list = tbUserService.list(wrapper);
        if (list != null) {
            return generator.getSuccessResult(list);
        } else {
            return generator.getFailResult("没有数据");
        }
    }

    //    用户注册
    @PostMapping("/register")
    public RestResult register(HttpServletRequest request) {
            TbUser tbUser = new TbUser();
            tbUser.setUsername(request.getParameter("username"));
            tbUser.setPassword(request.getParameter("password"));
            tbUser.setName(request.getParameter("name"));
            tbUser.setAge(request.getParameter("age"));
            tbUser.setGender(request.getParameter("gender"));
            tbUser.setBirthday(request.getParameter("birthday"));
            tbUser.setSchool(request.getParameter("school"));
            tbUser.setPhone(request.getParameter("phone"));
            tbUser.setEmail(request.getParameter("email"));
            tbUser.setSpecialty(request.getParameter("specialty"));
            tbUser.setEducation(request.getParameter("education"));
            String username = tbUser.getUsername();
            QueryWrapper<TbUser> wrapper = new QueryWrapper<>();
            wrapper.eq("username", username);
            List<TbUser> list = tbUserService.list(wrapper);
            if (!list.isEmpty()) {
                return generator.getFailResult("用户名重复,请重新输入");
            }
            boolean save = tbUserService.save(tbUser);
            if (save) {
                return generator.getSuccessResult("注册成功");
            } else {
                return generator.getFailResult("注册失败!!");
            }
    }

    //得到一条用户数据
    @PostMapping("/getOneInfo")
    public RestResult getUserOneInfo(HttpServletRequest request) {
        String username = request.getParameter("username");
        QueryWrapper<TbUser> wrapper = new QueryWrapper<>();
        wrapper.eq("username", username);
        TbUser one = tbUserService.getOne(wrapper);
        if (one != null) {
            return generator.getSuccessResult(one);
        } else {
            return generator.getFailResult("没有数据");
        }
    }

    //更新一条用户数据
    @PutMapping("/editOneInfo")
    public RestResult editUserOneInfo(TbUser tbUser){
        boolean update = tbUserService.updateById(tbUser);
        System.out.println(update);
        if (update) {
            return generator.getSuccessResult();
        } else {
            return generator.getFailResult("更新失败");
        }
    }

    //删除一条数据
    @PostMapping("/deleteInfo")
    public RestResult deleteInfo(HttpServletRequest request){
        String id = request.getParameter("id");
        System.out.println(id);
        QueryWrapper<TbUser> wrapper = new QueryWrapper<>();
        wrapper.eq("id",id);
        boolean remove = tbUserService.remove(wrapper);
        if(remove){
            return generator.getSuccessResult("删除成功");
        }else{
            return generator.getFailResult("删除失败");
        }
    }

}

📝分享的所有Java项目源码均包含(前端+后台+数据库),可做毕业设计或课程设计,欢迎留言分享问题,交流经验
🍅更多优质项目👇🏻👇🏻可点击下方获取🍅文章底部或评论区获取🍅
Java项目精品实战案例《100套》

总结

📣 有源码 查看源码

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CZ淡陌。

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

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

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

打赏作者

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

抵扣说明:

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

余额充值