日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

第一行代码android网课,使用Mongodb实现打卡签到系统的实例代码

發布時間:2023/12/20 windows 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第一行代码android网课,使用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

代碼如下

考勤管理頁面

導入名單

班級名稱: 請選擇導入文件

未簽到的

已簽到

$.ajax({ type:"get", url:"/list", success:function(data){ console.log(data); var complete =""; var incomplete =""; $.each(data.complete,function (index,object) { complete += object.id +"?" +object.name +"
"; }) $("#complete p").html(complete); $.each(data.incomplete,function (index,object) { incomplete += object.id +"?" +object.name +"
"; }) $("#incomplete p").html(incomplete); } }); $("body").on("click","#upload",function(){ //將數據打包到formData對象中

var formData = new FormData(); formData.append("classes",$("#classes").val()); formData.append("nameListExcel",$("#nameList")[0].files[0]); $.ajax({ type:"post", url:"/upload", //dataType:"json",

data:formData, processData: false, contentType: false, success:function(data){ console.log(data); if(data=="ok"){ alert("上傳成功,即將刷新頁面") //刷新當前頁面

location.reload(); }else { alert("上傳失敗,請重新上傳") } } }); }) })

簽到打卡代碼如下:

8.sign-in.html

簽到頁面

location.reload(); }else { alert("簽到成功,請重新簽到") } } }); }) })

list.html頁面效果圖

工作表效果圖

遠程工具查詢剛導入的數據如下 數據后面有包的路徑是因為導入數據的時候沒有添加mongodb配置類,添加了就沒有了。

添加配置類之后的效果圖

注意:導入excel文件(xsl工作表)的時候使用2003之前版本的,后綴帶XLS。

有哪里不明白的地方記得下方留言哦。

項目已托管碼云

總結

到此這篇關于使用Mongodb實現打卡簽到系統的文章就介紹到這了,更多相關使用Mongodb實現打卡簽到系統內容請搜索我們以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持我們!

時間: 2020-05-05

總結

以上是生活随笔為你收集整理的第一行代码android网课,使用Mongodb实现打卡签到系统的实例代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。