Mongodb如何实现打卡签到系统
发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,小编这次要给大家分享的是Mongodb如何实现打卡签到系统,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。使用excel文件导入数据,整合mongodb实现打卡签
千家信息网最后更新 2025年11月13日Mongodb如何实现打卡签到系统
小编这次要给大家分享的是Mongodb如何实现打卡签到系统,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。
使用excel文件导入数据,整合mongodb实现打卡签到系统
环境参数
- 开发工具:IDEA
- 基础环境:Maven+JDK8
- 主要技术:SpringBoot、Mongodb
- SpringBoot版本:2.2.6
实现步骤如下:
1.添加依赖
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-data-mongodb org.projectlombok lombok true org.apache.poi poi-ooxml 4.0.1 org.springframework.boot spring-boot-starter-test test org.junit.vintage junit-vintage-engine junit junit test
2.实体层

3.业务service层
4. service实现层
package com.ckf.mongodb_punch.service.impl; import com.ckf.mongodb_punch.mapper.AttendRepository; import com.ckf.mongodb_punch.entity.Attend; import com.ckf.mongodb_punch.service.AttendService; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.util.ArrayList; import java.util.List; @Service public class AttendServiceImpl implements AttendService { @Autowired private AttendRepository attendRepository; @Autowired private MongoTemplate mongoTemplate; /** * 上传文件 * @param classes * @param nameListExcel * @return */ @Override public String upload(String classes, MultipartFile nameListExcel) { String result = "no"; if (nameListExcel == null) { return result; } //实例化对象列表,用于存储Excel中的数据 List attendList = new ArrayList(); //读取文件对象nameListExcel 中的数据(读取Excel中每一行数据,存到对象,存到对象列表中) try { //根据路径获取这个操作excel的实例 HSSFWorkbook wb = new HSSFWorkbook(nameListExcel.getInputStream()); //根据页面index 获取sheet页 HSSFSheet sheet = wb.getSheetAt(0); HSSFRow row = null; //循环sesheet页中数据从第二行开始,第一行是标题 for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++) { //获取每一行数据 row = sheet.getRow(i); Attend attend = new Attend(); //下面cellnum对应着下标,id是第一位对应着下标为0,name是第二位对应的下标为1,等等.. attend.setId(Integer.valueOf((int) row.getCell(0).getNumericCellValue())); attend.setName(row.getCell(1).getStringCellValue()); attend.setSign(Integer.valueOf((int) row.getCell(2).getNumericCellValue())); attendList.add(attend); } } catch (IOException e) { e.printStackTrace(); } System.out.println("解析Excel中的数据:" + attendList); /** * 如果成功就,写入mongodb中 */ attendRepository.saveAll(attendList); result = "ok"; return result; } /** * 签到 * @param name * @return */ @Override public String sign(String name) { Query query = Query.query(Criteria.where("name").is(name)); //局部修改的内容 Update update = new Update(); update.set("sign", 1); //attend 集合名 对应实体的集合名 mongoTemplate.updateFirst(query, update, "attend"); return "ok"; } /** * 全查询学生信息 * @param sign * @return */ @Override public List findAllBySign(Integer sign) { return attendRepository.findAllBySign(sign); } } 5.controller层
package com.ckf.mongodb_punch.controller; import com.ckf.mongodb_punch.entity.Attend; import com.ckf.mongodb_punch.service.AttendService; import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.util.HashMap; import java.util.List; import java.util.Map; @RestController public class AttendController{ @Autowired private AttendService attendService;@GetMapping("/sign") public String sign(String name){ /** * 将名字传给服务层,mongodb修改登录状态 */ attendService.sign(name); return "ok"; } /** * 上传文件 * @param classes * @param nameListExcel * @return */ @PostMapping("/upload") public String upload(String classes, MultipartFile nameListExcel){/** * 接收到前台传过来的文件对象,交给service层或者Excel工具类来解析数据* System.out.println("接收前台表单提交数据:"+classes+nameListExcel);*/ String result = attendService.upload(classes,nameListExcel);return result;} /** * 查询未签到同学 和已签到同学* @return */ @GetMapping("/list")public Map list(){ Map result = new HashMap(); /** * 已签到 */ List complete = attendService.findAllBySign(1);result.put("complete",complete); /** * 未签到 */ List incomplete = attendService.findAllBySign(0);result.put("incomplete",incomplete); return result;} } 6.application.yml
这里使用的是mongodb的安全认证配置
spring: data: mongodb: uri: mongodb://ckf_user:123456@192.168.85.154:27017/attend_db
默认单例配置如下
spring: data: mongodb: uri:mongodb://localhost:27017/attend_db
这里使用的是异步实现的
7.list.html
代码如下
考勤管理页面 导入名单
班级名称: 请选择导入文件
未签到的
已签到
签到打卡代码如下:
8.sign-in.html
签到页面 请输入你的姓名:
list.html页面效果图
工作表效果图
远程工具查询刚导入的数据如下 数据后面有包的路径是因为导入数据的时候没有添加mongodb配置类,添加了就没有了。
添加配置类之后的效果图
注意:导入excel文件(xsl工作表)的时候使用2003之前版本的,后缀带XLS。
看完这篇关于Mongodb如何实现打卡签到系统的文章,如果觉得文章内容写得不错的话,可以把它分享出去给更多人看到。
数据
页面
文件
对象
打卡
成功
查询
配置
系统
一行
下标
内容
工具
效果
效果图
文章
代码
前台
同学
实体
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发变现
关于网络安全微网文
hp 服务器cpu 虚拟化
p700服务器开机时间
服务器的文章
浙江菜鸟网络技术公司
档案网络安全注意什么意思
大学生网络安全知识心得体会
长沙讯禾网络技术有限公司
无锡软件开发教程
大学生如何营造网络安全环境
哪个数据库可以查阅外文文献
国企做软件开发好吗
深圳软件开发法定人陈磊合伙
兰州网络安全实战特训营
江苏专业软件开发预算
java上传文件至服务器
海康监控管理平台服务器
网络安全第二十一条规定
智能家居视频服务器
软件开发企业收入确认方法
迁移服务器数据快不快
画网络安全手抄报有字
实时型数据库排名
数据库删除某一行
成都学校数显钟服务器
北京直播软件开发价格
增值税发票代理服务器怎么填
浙江互联网软件开发价钱
网络技术承担的作用是什么