Mongodb如何实现打卡签到系统
发表于:2025-01-27 作者:千家信息网编辑
千家信息网最后更新 2025年01月27日,小编这次要给大家分享的是Mongodb如何实现打卡签到系统,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。使用excel文件导入数据,整合mongodb实现打卡签
千家信息网最后更新 2025年01月27日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中的数据 ListattendList = 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安全错误
数据库的锁怎样保障安全
云计算时代网络技术
北京戴尔服务器虚拟化哪家好
腾讯微信语音聊天数据库能不能查
博山机械管理软件开发公司
关于软件开发的宏观论
网易软件开发培训班
数据库上课考试步骤
服务器内存功耗
数据库怎么转换word
选针器软件开发商
软件开发毕业自己可以开店吗
mp3数据库文件损坏
工业软件开发社区
工行软件开发研发待遇
录制指纹存入数据库
遵义网络安全系统哪个好用
棋牌类软件开发需要学什么
百度公司网络安全宣讲
红蓝网络技术有限公司
河北计算机软件开发哪家好
数据库安全分为
达梦数据库修改文件打开个数
天津数据库通用多路锁控板软件
网络技术部有哪些部门
怎样看网络安全二维码
和平精英登入显示无法连接服务器
网上机票订阅系统数据库部分
互联网汽车app斑马科技
盐田服务器系统运维
国内数据库有哪些