Mongodb如何实现打卡签到系统
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,小编这次要给大家分享的是Mongodb如何实现打卡签到系统,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。使用excel文件导入数据,整合mongodb实现打卡签
千家信息网最后更新 2026年11月01日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安全错误
数据库的锁怎样保障安全
为想互联网科技怎么样
互联网科技活动banner
互联网科技官网
今日互联网科技
互联网 科技
互联网 科技公司
互联网科技金融公司
平安科技 互联网
互联网科技股票
万易互联网科技有限公司
狮子座互联网科技有限公司
润盈互联网科技
佰商互联网科技有限公司
哈尔滨新华互联网科技
科技与互联网的利与弊
互联网科技中介
互联网时代科技改变生活
福建互联网展示科技馆设计
绵阳真晨互联网科技有限公司
青岛互联网科技园
手磨咖啡
伟宏互联网科技
互联网金融监管科技数据
万达互联网科技
互联网养老 桔豆科技
辽宁互联网新科技
美国互联网科技公司
福州德业互联网科技
银川新华互联网科技学校是国营吗
互联网领先科技活动