为什么网站有不同的扩展名,军事新闻最新消息11,淘宝上有做网站的吗,地方门户网站如何推广随着信息技术和网络技术的飞速发展#xff0c;人类已进入全新信息化时代#xff0c;传统管理技术已无法高效#xff0c;便捷地管理信息。为了迎合时代需求#xff0c;优化管理效率#xff0c;各种各样的管理系统应运而生#xff0c;各行各业相继进入信息管理时代#xf…
随着信息技术和网络技术的飞速发展人类已进入全新信息化时代传统管理技术已无法高效便捷地管理信息。为了迎合时代需求优化管理效率各种各样的管理系统应运而生各行各业相继进入信息管理时代学生成绩管理系统就是信息时代变革中的产物之一。
任何系统都要遵循系统设计的基本流程本系统也不例外同样需要经过市场调研需求分析概要设计详细设计编码测试这些步骤基于java语言设计并实现了学生成绩管理系统。该系统基于B/S即所谓浏览器/服务器模式应用java技术选择MySQL作为后台数据库。系统主要包括首页、个人中心、学生管理、教师管理、班级管理、综合成绩管理、专业管理、课程信息管理等功能模块。
本文首先介绍了学生成绩管理的技术发展背景与发展现状然后遵循软件常规开发流程首先针对系统选取适用的语言和开发平台根据需求分析制定模块并设计数据库结构再根据系统总体功能模块的设计绘制系统的功能模块图流程图以及E-R图。然后设计框架并根据设计的框架编写代码以实现系统的各个功能模块。最后对初步完成的系统进行测试主要是功能测试、单元测试和性能测试。测试结果表明该系统能够实现所需的功能运行状况尚可并无明显缺点。
关键词学生成绩javaMySQL数据库
springboot学生成绩管理系统源码和论文309 Abstract
With the rapid development of information technology and network technology, human beings have entered a new information age, traditional management technology has been unable to efficiently and conveniently manage information. In order to meet the needs of The Times, optimize management efficiency, a variety of management systems emerged, all walks of life have entered the era of information management, student performance management system is one of the products of the information era change. Any system should follow the basic process of system design, this system is no exception, also need to go through market research, demand analysis, outline design, detailed design, coding, testing these steps, based on the Java language design and implementation of student performance management system. The system is based on B/S browser/server mode, the application of Java technology, MySQL as the background database. The system mainly includes home page, personal center, student management, teacher management, class management, comprehensive score management and other functional modules. This article first introduces the dormitory management technology development background and development of the status quo, and then follow the routine software development process, first of all, in view of the system and the selection of suitable language development platform, according to the requirement analysis module and database structure design, and then based on the systems overall function module design rendering system function module chart, flow diagram and e-r diagram. Then, design the framework and write code according to the designed framework to achieve each functional module of the system. Finally, the preliminary completed system is tested, mainly functional test, unit test and performance test. The test results show that the system can achieve the required functions, and the running condition is fair and there is no obvious defect. Key words: Student achievement; Java; The MySQL database package com.controller;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;import com.entity.XueshengEntity;
import com.entity.view.XueshengView;import com.service.XueshengService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
import java.io.IOException;/*** 学生* 后端接口* author * email * date 2022-04-29 14:55:00*/
RestController
RequestMapping(/xuesheng)
public class XueshengController {Autowiredprivate XueshengService xueshengService;Autowiredprivate TokenService tokenService;/*** 登录*/IgnoreAuthRequestMapping(value /login)public R login(String username, String password, String captcha, HttpServletRequest request) {XueshengEntity user xueshengService.selectOne(new EntityWrapperXueshengEntity().eq(xuehao, username));if(usernull || !user.getMima().equals(password)) {return R.error(账号或密码不正确);}String token tokenService.generateToken(user.getId(), username,xuesheng, 学生 );return R.ok().put(token, token);}/*** 注册*/IgnoreAuthRequestMapping(/register)public R register(RequestBody XueshengEntity xuesheng){//ValidatorUtils.validateEntity(xuesheng);XueshengEntity user xueshengService.selectOne(new EntityWrapperXueshengEntity().eq(xuehao, xuesheng.getXuehao()));if(user!null) {return R.error(注册用户已存在);}Long uId new Date().getTime();xuesheng.setId(uId);xueshengService.insert(xuesheng);return R.ok();}/*** 退出*/RequestMapping(/logout)public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok(退出成功);}/*** 获取用户的session用户信息*/RequestMapping(/session)public R getCurrUser(HttpServletRequest request){Long id (Long)request.getSession().getAttribute(userId);XueshengEntity user xueshengService.selectById(id);return R.ok().put(data, user);}/*** 密码重置*/IgnoreAuthRequestMapping(value /resetPass)public R resetPass(String username, HttpServletRequest request){XueshengEntity user xueshengService.selectOne(new EntityWrapperXueshengEntity().eq(xuehao, username));if(usernull) {return R.error(账号不存在);}user.setMima(123456);xueshengService.updateById(user);return R.ok(密码已重置为123456);}/*** 后端列表*/RequestMapping(/page)public R page(RequestParam MapString, Object params,XueshengEntity xuesheng,HttpServletRequest request){EntityWrapperXueshengEntity ew new EntityWrapperXueshengEntity();PageUtils page xueshengService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xuesheng), params), params));return R.ok().put(data, page);}/*** 前端列表*/IgnoreAuthRequestMapping(/list)public R list(RequestParam MapString, Object params,XueshengEntity xuesheng, HttpServletRequest request){EntityWrapperXueshengEntity ew new EntityWrapperXueshengEntity();PageUtils page xueshengService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xuesheng), params), params));return R.ok().put(data, page);}/*** 列表*/RequestMapping(/lists)public R list( XueshengEntity xuesheng){EntityWrapperXueshengEntity ew new EntityWrapperXueshengEntity();ew.allEq(MPUtil.allEQMapPre( xuesheng, xuesheng)); return R.ok().put(data, xueshengService.selectListView(ew));}/*** 查询*/RequestMapping(/query)public R query(XueshengEntity xuesheng){EntityWrapper XueshengEntity ew new EntityWrapper XueshengEntity();ew.allEq(MPUtil.allEQMapPre( xuesheng, xuesheng)); XueshengView xueshengView xueshengService.selectView(ew);return R.ok(查询学生成功).put(data, xueshengView);}/*** 后端详情*/RequestMapping(/info/{id})public R info(PathVariable(id) Long id){XueshengEntity xuesheng xueshengService.selectById(id);return R.ok().put(data, xuesheng);}/*** 前端详情*/IgnoreAuthRequestMapping(/detail/{id})public R detail(PathVariable(id) Long id){XueshengEntity xuesheng xueshengService.selectById(id);return R.ok().put(data, xuesheng);}/*** 后端保存*/RequestMapping(/save)public R save(RequestBody XueshengEntity xuesheng, HttpServletRequest request){xuesheng.setId(new Date().getTime()new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(xuesheng);XueshengEntity user xueshengService.selectOne(new EntityWrapperXueshengEntity().eq(xuehao, xuesheng.getXuehao()));if(user!null) {return R.error(用户已存在);}xuesheng.setId(new Date().getTime());xueshengService.insert(xuesheng);return R.ok();}/*** 前端保存*/RequestMapping(/add)public R add(RequestBody XueshengEntity xuesheng, HttpServletRequest request){xuesheng.setId(new Date().getTime()new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(xuesheng);XueshengEntity user xueshengService.selectOne(new EntityWrapperXueshengEntity().eq(xuehao, xuesheng.getXuehao()));if(user!null) {return R.error(用户已存在);}xuesheng.setId(new Date().getTime());xueshengService.insert(xuesheng);return R.ok();}/*** 修改*/RequestMapping(/update)Transactionalpublic R update(RequestBody XueshengEntity xuesheng, HttpServletRequest request){//ValidatorUtils.validateEntity(xuesheng);xueshengService.updateById(xuesheng);//全部更新return R.ok();}/*** 删除*/RequestMapping(/delete)public R delete(RequestBody Long[] ids){xueshengService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/RequestMapping(/remind/{columnName}/{type})public R remindCount(PathVariable(columnName) String columnName, HttpServletRequest request, PathVariable(type) String type,RequestParam MapString, Object map) {map.put(column, columnName);map.put(type, type);if(type.equals(2)) {SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd);Calendar c Calendar.getInstance();Date remindStartDate null;Date remindEndDate null;if(map.get(remindstart)!null) {Integer remindStart Integer.parseInt(map.get(remindstart).toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate c.getTime();map.put(remindstart, sdf.format(remindStartDate));}if(map.get(remindend)!null) {Integer remindEnd Integer.parseInt(map.get(remindend).toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate c.getTime();map.put(remindend, sdf.format(remindEndDate));}}WrapperXueshengEntity wrapper new EntityWrapperXueshengEntity();if(map.get(remindstart)!null) {wrapper.ge(columnName, map.get(remindstart));}if(map.get(remindend)!null) {wrapper.le(columnName, map.get(remindend));}int count xueshengService.selectCount(wrapper);return R.ok().put(count, count);}}package com.controller;import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.apache.commons.lang3.StringUtils;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import com.annotation.IgnoreAuth;
import com.baidu.aip.face.AipFace;
import com.baidu.aip.face.MatchRequest;
import com.baidu.aip.util.Base64Util;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.ConfigEntity;
import com.service.CommonService;
import com.service.ConfigService;
import com.utils.BaiduUtil;
import com.utils.FileUtil;
import com.utils.R;
/*** 通用接口*/
RestController
public class CommonController{Autowiredprivate CommonService commonService;private static AipFace client null;Autowiredprivate ConfigService configService; /*** 获取table表中的column列表(联动接口)* param table* param column* return*/IgnoreAuthRequestMapping(/option/{tableName}/{columnName})public R getOption(PathVariable(tableName) String tableName, PathVariable(columnName) String columnName,String level,String parent) {MapString, Object params new HashMapString, Object();params.put(table, tableName);params.put(column, columnName);if(StringUtils.isNotBlank(level)) {params.put(level, level);}if(StringUtils.isNotBlank(parent)) {params.put(parent, parent);}ListString data commonService.getOption(params);return R.ok().put(data, data);}/*** 根据table中的column获取单条记录* param table* param column* return*/IgnoreAuthRequestMapping(/follow/{tableName}/{columnName})public R getFollowByOption(PathVariable(tableName) String tableName, PathVariable(columnName) String columnName, RequestParam String columnValue) {MapString, Object params new HashMapString, Object();params.put(table, tableName);params.put(column, columnName);params.put(columnValue, columnValue);MapString, Object result commonService.getFollowByOption(params);return R.ok().put(data, result);}/*** 修改table表的sfsh状态* param table* param map* return*/RequestMapping(/sh/{tableName})public R sh(PathVariable(tableName) String tableName, RequestBody MapString, Object map) {map.put(table, tableName);commonService.sh(map);return R.ok();}/*** 获取需要提醒的记录数* param tableName* param columnName* param type 1:数字 2:日期* param map* return*/IgnoreAuthRequestMapping(/remind/{tableName}/{columnName}/{type})public R remindCount(PathVariable(tableName) String tableName, PathVariable(columnName) String columnName, PathVariable(type) String type,RequestParam MapString, Object map) {map.put(table, tableName);map.put(column, columnName);map.put(type, type);if(type.equals(2)) {SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd);Calendar c Calendar.getInstance();Date remindStartDate null;Date remindEndDate null;if(map.get(remindstart)!null) {Integer remindStart Integer.parseInt(map.get(remindstart).toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate c.getTime();map.put(remindstart, sdf.format(remindStartDate));}if(map.get(remindend)!null) {Integer remindEnd Integer.parseInt(map.get(remindend).toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate c.getTime();map.put(remindend, sdf.format(remindEndDate));}}int count commonService.remindCount(map);return R.ok().put(count, count);}/*** 单列求和*/IgnoreAuthRequestMapping(/cal/{tableName}/{columnName})public R cal(PathVariable(tableName) String tableName, PathVariable(columnName) String columnName) {MapString, Object params new HashMapString, Object();params.put(table, tableName);params.put(column, columnName);MapString, Object result commonService.selectCal(params);return R.ok().put(data, result);}/*** 分组统计*/IgnoreAuthRequestMapping(/group/{tableName}/{columnName})public R group(PathVariable(tableName) String tableName, PathVariable(columnName) String columnName) {MapString, Object params new HashMapString, Object();params.put(table, tableName);params.put(column, columnName);ListMapString, Object result commonService.selectGroup(params);SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd);for(MapString, Object m : result) {for(String k : m.keySet()) {if(m.get(k) instanceof Date) {m.put(k, sdf.format((Date)m.get(k)));}}}return R.ok().put(data, result);}/*** 按值统计*/IgnoreAuthRequestMapping(/value/{tableName}/{xColumnName}/{yColumnName})public R value(PathVariable(tableName) String tableName, PathVariable(yColumnName) String yColumnName, PathVariable(xColumnName) String xColumnName) {MapString, Object params new HashMapString, Object();params.put(table, tableName);params.put(xColumn, xColumnName);params.put(yColumn, yColumnName);ListMapString, Object result commonService.selectValue(params);SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd);for(MapString, Object m : result) {for(String k : m.keySet()) {if(m.get(k) instanceof Date) {m.put(k, sdf.format((Date)m.get(k)));}}}return R.ok().put(data, result);}/*** 按值统计时间统计类型*/IgnoreAuthRequestMapping(/value/{tableName}/{xColumnName}/{yColumnName}/{timeStatType})public R valueDay(PathVariable(tableName) String tableName, PathVariable(yColumnName) String yColumnName, PathVariable(xColumnName) String xColumnName, PathVariable(timeStatType) String timeStatType) {MapString, Object params new HashMapString, Object();params.put(table, tableName);params.put(xColumn, xColumnName);params.put(yColumn, yColumnName);params.put(timeStatType, timeStatType);ListMapString, Object result commonService.selectTimeStatValue(params);SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd);for(MapString, Object m : result) {for(String k : m.keySet()) {if(m.get(k) instanceof Date) {m.put(k, sdf.format((Date)m.get(k)));}}}return R.ok().put(data, result);}/*** 人脸比对* * param face1 人脸1* param face2 人脸2* return*/RequestMapping(/matchFace)IgnoreAuthpublic R matchFace(String face1, String face2,HttpServletRequest request) {if(clientnull) {/*String AppID configService.selectOne(new EntityWrapperConfigEntity().eq(name, AppID)).getValue();*/String APIKey configService.selectOne(new EntityWrapperConfigEntity().eq(name, APIKey)).getValue();String SecretKey configService.selectOne(new EntityWrapperConfigEntity().eq(name, SecretKey)).getValue();String token BaiduUtil.getAuth(APIKey, SecretKey);if(tokennull) {return R.error(请在配置管理中正确配置APIKey和SecretKey);}client new AipFace(null, APIKey, SecretKey);client.setConnectionTimeoutInMillis(2000);client.setSocketTimeoutInMillis(60000);}JSONObject res null;try {File path new File(ResourceUtils.getURL(classpath:static).getPath());if(!path.exists()) {path new File();}File upload new File(path.getAbsolutePath(),/upload/);File file1 new File(upload.getAbsolutePath()/face1);File file2 new File(upload.getAbsolutePath()/face2);String img1 Base64Util.encode(FileUtil.FileToByte(file1));String img2 Base64Util.encode(FileUtil.FileToByte(file2));MatchRequest req1 new MatchRequest(img1, BASE64);MatchRequest req2 new MatchRequest(img2, BASE64);ArrayListMatchRequest requests new ArrayListMatchRequest();requests.add(req1);requests.add(req2);res client.match(requests);System.out.println(res.get(result));} catch (FileNotFoundException e) {e.printStackTrace();return R.error(文件不存在);} catch (IOException e) {e.printStackTrace();} return R.ok().put(score, com.alibaba.fastjson.JSONObject.parse(res.getJSONObject(result).get(score).toString()));}
}