当前位置: 首页 > news >正文

学籍管理平台|在线学籍管理平台系统|基于Springboot+VUE的在线学籍管理平台系统设计与实现(源码+数据库+文档)

在线学籍管理平台系统

目录

基于Springboot+VUE的在线学籍管理平台系统设计与实现

一、前言

二、系统功能设计

 三、系统实现

 四、数据库设计

1、实体ER图

五、核心代码 

六、论文参考

七、最新计算机毕设选题推荐

八、源码获取:



博主介绍:✌️大厂码农|毕设布道师,阿里云开发社区乘风者计划专家博主,CSDN平台Java领域优质创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。✌️

主要项目:小程序、SpringBoot、SSM、Vue、Html、Jsp、Nodejs等设计与开发。

🍅文末获取源码联系🍅

基于Springboot+VUE的在线学籍管理平台系统设计与实现

一、前言

在设计在线学籍管理平台时,功能模块充分融合了用户与管理员的实际需求,实现了多元化且全面的学籍管理服务功能。在线学籍管理的流程进行科学整理、归纳和功能的精简,通过软件工程的研究方法,结合当下流行的互联网技术,最终设计并实现了一个简单、易操作的在线学籍管理系统。内容包括系统的设计思路、系统模块和实现方法。系统使用过程主要涉及到管理员、教师和学生三种角色,主要包含系统首页、个人中心、学生管理、教师管理、院校管理、专业管理、班级信息管理、课程信息管理、学生成绩管理、学生学籍管理等功能。

二、系统功能设计

在线学籍管理系统的建设可以为在线学籍管理提供帮助,通过对一些基础信息管理实现针对性的安排,可以按照用户的角色权限使不同用户角色看到不一样的信息界面。现根据需求阶段的分析,我们可以大致确定系统需要包含的功能如下图所示:

系统总体结构图如下

 三、系统实现

管理员点击教师管理。在教师页面输入教师工号和教师姓名进行查询教师列表,并根据需要对教师详情信息进行详情、修改或删除操作;如图5-4所示:

图5-4教师管理界面

管理员点击院校管理。在院校页面输入院校进行查询院校列表,并根据需要对院校详情信息进行详情、修改或删除操作;如图5-5所示:

图5-5院校管理界面

管理员点击专业管理。在专业页面输入专业进行查询专业列表,并根据需要对专业详情信息进行详情、修改或删除操作;如图5-6所示:

图5-6专业管理界面

管理员点击班级信息管理。在班级信息页面输入班级名称、院校和选择专业进行查询班级信息列表,并根据需要对班级详情信息进行详情、修改或删除操作;如图5-7所示:

图5-7班级信息管理界面

管理员点击课程信息管理。在课程信息页面输入课程名称、班级和专业进行查询课程信息列表,并根据需要对课程详情信息进行详情、修改或删除操作;如图5-8所示:

图5-8课程信息管理界面

教师点击课程信息管理。在课程信息页面输入课程名称、班级和选择专业进行查询或删除课程信息列表,并根据需要对课程详情信息进行详情操作;如图5-13所示:

图5-13课程信息管理界面

学生点击课程信息管理。在课程信息页面输入课程名称、班级和选择专业进行查询课程信息列表,并根据需要对课程详情信息进行详情操作;如图5-15所示:

图5-15课程信息管理界面

 四、数据库设计

1、实体ER图

(1)设计的学生实体,其具备的属性如下图。

课程信息实体属性图,

班级分类

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

leixing

varchar(200)

NULL

类型

课程信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

kechengmingcheng

varchar

200

课程名称

fengmian

longtext

4294967295

封面

keshi

varchar

200

课时

banji

varchar

200

班级

zhuanye

varchar

200

专业

shangkedidian

varchar

200

上课地点

shangkeshijian

longtext

4294967295

上课时间

xueqi

varchar

200

学期

nianxian

varchar

200

年限

kechengxiangqing

longtext

4294967295

课程详情

jiaoshigonghao

varchar

200

教师工号

jiaoshixingming

varchar

200

教师姓名

教师

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

jiaoshigonghao

varchar

200

教师工号

mima

varchar

200

密码

touxiang

longtext

4294967295

头像

jiaoshixingming

varchar

200

教师姓名

xingbie

varchar

200

性别

lianxidianhua

varchar

200

联系电话

youxiang

varchar

200

邮箱

五、核心代码 

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.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.BumenEntity;
import com.entity.view.BumenView;import com.service.BumenService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;/*** 部门* 后端接口* @author * @email * @date 2021-05-07 10:42:31*/
@RestController
@RequestMapping("/bumen")
public class BumenController {@Autowiredprivate BumenService bumenService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,BumenEntity bumen,HttpServletRequest request){EntityWrapper<BumenEntity> ew = new EntityWrapper<BumenEntity>();PageUtils page = bumenService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, bumen), params), params));return R.ok().put("data", page);}/*** 前端列表*/@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,BumenEntity bumen, HttpServletRequest request){EntityWrapper<BumenEntity> ew = new EntityWrapper<BumenEntity>();PageUtils page = bumenService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, bumen), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( BumenEntity bumen){EntityWrapper<BumenEntity> ew = new EntityWrapper<BumenEntity>();ew.allEq(MPUtil.allEQMapPre( bumen, "bumen")); return R.ok().put("data", bumenService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(BumenEntity bumen){EntityWrapper< BumenEntity> ew = new EntityWrapper< BumenEntity>();ew.allEq(MPUtil.allEQMapPre( bumen, "bumen")); BumenView bumenView =  bumenService.selectView(ew);return R.ok("查询部门成功").put("data", bumenView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){BumenEntity bumen = bumenService.selectById(id);return R.ok().put("data", bumen);}/*** 前端详情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){BumenEntity bumen = bumenService.selectById(id);return R.ok().put("data", bumen);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody BumenEntity bumen, HttpServletRequest request){bumen.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(bumen);bumenService.insert(bumen);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody BumenEntity bumen, HttpServletRequest request){bumen.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(bumen);bumenService.insert(bumen);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody BumenEntity bumen, HttpServletRequest request){//ValidatorUtils.validateEntity(bumen);bumenService.updateById(bumen);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){bumenService.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 Map<String, 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));}}Wrapper<BumenEntity> wrapper = new EntityWrapper<BumenEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}int count = bumenService.selectCount(wrapper);return R.ok().put("count", count);}}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.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.GangweiEntity;
import com.entity.view.GangweiView;import com.service.GangweiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;/*** 岗位* 后端接口* @author * @email * @date 2021-05-07 10:42:31*/
@RestController
@RequestMapping("/gangwei")
public class GangweiController {@Autowiredprivate GangweiService gangweiService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,GangweiEntity gangwei,HttpServletRequest request){EntityWrapper<GangweiEntity> ew = new EntityWrapper<GangweiEntity>();PageUtils page = gangweiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, gangwei), params), params));return R.ok().put("data", page);}/*** 前端列表*/@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,GangweiEntity gangwei, HttpServletRequest request){EntityWrapper<GangweiEntity> ew = new EntityWrapper<GangweiEntity>();PageUtils page = gangweiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, gangwei), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( GangweiEntity gangwei){EntityWrapper<GangweiEntity> ew = new EntityWrapper<GangweiEntity>();ew.allEq(MPUtil.allEQMapPre( gangwei, "gangwei")); return R.ok().put("data", gangweiService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(GangweiEntity gangwei){EntityWrapper< GangweiEntity> ew = new EntityWrapper< GangweiEntity>();ew.allEq(MPUtil.allEQMapPre( gangwei, "gangwei")); GangweiView gangweiView =  gangweiService.selectView(ew);return R.ok("查询岗位成功").put("data", gangweiView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){GangweiEntity gangwei = gangweiService.selectById(id);return R.ok().put("data", gangwei);}/*** 前端详情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){GangweiEntity gangwei = gangweiService.selectById(id);return R.ok().put("data", gangwei);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody GangweiEntity gangwei, HttpServletRequest request){gangwei.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(gangwei);gangweiService.insert(gangwei);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody GangweiEntity gangwei, HttpServletRequest request){gangwei.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(gangwei);gangweiService.insert(gangwei);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody GangweiEntity gangwei, HttpServletRequest request){//ValidatorUtils.validateEntity(gangwei);gangweiService.updateById(gangwei);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){gangweiService.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 Map<String, 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));}}Wrapper<GangweiEntity> wrapper = new EntityWrapper<GangweiEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}int count = gangweiService.selectCount(wrapper);return R.ok().put("count", count);}}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.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.JixiaokaoheEntity;
import com.entity.view.JixiaokaoheView;import com.service.JixiaokaoheService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;/*** 绩效考核* 后端接口* @author * @email * @date 2021-05-07 10:42:31*/
@RestController
@RequestMapping("/jixiaokaohe")
public class JixiaokaoheController {@Autowiredprivate JixiaokaoheService jixiaokaoheService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,JixiaokaoheEntity jixiaokaohe,HttpServletRequest request){String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("yuangong")) {jixiaokaohe.setYuangonggonghao((String)request.getSession().getAttribute("username"));}EntityWrapper<JixiaokaoheEntity> ew = new EntityWrapper<JixiaokaoheEntity>();PageUtils page = jixiaokaoheService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jixiaokaohe), params), params));return R.ok().put("data", page);}/*** 前端列表*/@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,JixiaokaoheEntity jixiaokaohe, HttpServletRequest request){EntityWrapper<JixiaokaoheEntity> ew = new EntityWrapper<JixiaokaoheEntity>();PageUtils page = jixiaokaoheService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jixiaokaohe), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( JixiaokaoheEntity jixiaokaohe){EntityWrapper<JixiaokaoheEntity> ew = new EntityWrapper<JixiaokaoheEntity>();ew.allEq(MPUtil.allEQMapPre( jixiaokaohe, "jixiaokaohe")); return R.ok().put("data", jixiaokaoheService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(JixiaokaoheEntity jixiaokaohe){EntityWrapper< JixiaokaoheEntity> ew = new EntityWrapper< JixiaokaoheEntity>();ew.allEq(MPUtil.allEQMapPre( jixiaokaohe, "jixiaokaohe")); JixiaokaoheView jixiaokaoheView =  jixiaokaoheService.selectView(ew);return R.ok("查询绩效考核成功").put("data", jixiaokaoheView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){JixiaokaoheEntity jixiaokaohe = jixiaokaoheService.selectById(id);return R.ok().put("data", jixiaokaohe);}/*** 前端详情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){JixiaokaoheEntity jixiaokaohe = jixiaokaoheService.selectById(id);return R.ok().put("data", jixiaokaohe);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody JixiaokaoheEntity jixiaokaohe, HttpServletRequest request){jixiaokaohe.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(jixiaokaohe);jixiaokaoheService.insert(jixiaokaohe);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody JixiaokaoheEntity jixiaokaohe, HttpServletRequest request){jixiaokaohe.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(jixiaokaohe);jixiaokaoheService.insert(jixiaokaohe);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody JixiaokaoheEntity jixiaokaohe, HttpServletRequest request){//ValidatorUtils.validateEntity(jixiaokaohe);jixiaokaoheService.updateById(jixiaokaohe);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){jixiaokaoheService.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 Map<String, 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));}}Wrapper<JixiaokaoheEntity> wrapper = new EntityWrapper<JixiaokaoheEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("yuangong")) {wrapper.eq("yuangonggonghao", (String)request.getSession().getAttribute("username"));}int count = jixiaokaoheService.selectCount(wrapper);return R.ok().put("count", count);}}

六、论文参考

七、最新计算机毕设选题推荐

最新计算机软件毕业设计选题大全-CSDN博客

八、源码获取:

 大家点赞、收藏、关注、评论啦 、👇🏻获取联系方式在文章末尾👇🏻

相关文章:

学籍管理平台|在线学籍管理平台系统|基于Springboot+VUE的在线学籍管理平台系统设计与实现(源码+数据库+文档)

在线学籍管理平台系统 目录 基于SpringbootVUE的在线学籍管理平台系统设计与实现 一、前言 二、系统功能设计 三、系统实现 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大…...

JDBC编程

前言&#xff1a; 你是否见过用Java连接数据库的操作&#xff0c;对没错&#xff0c;今天我们要讲的就是这个“高级”操作&#xff0c;做好准备全程高速。 API&#xff1a; 什么是API&#xff1f;我喜欢先把它的全称说一下&#xff1a;Application Programming Interface。简…...

Python : 类变量、静态方法、类方法

文章目录 前言1 类变量(Java静态变量)2 Python中的静态方法(使用 @staticmethod 装饰器声明)3 类方法(使用 @classmethod 装饰器声明)4 静态方法和类方法的区别前言 学完Java过后,对python中有了一些疑惑。Java中有static修饰的静态变量和静态方法这两个很用用的知识点…...

大厂笔试现已经禁用本地IDE怎么看

如果我说本来面试做题这种事情就是反人类你相信吗&#xff1f; 这个罪恶的源头就是 Google&#xff0c;说是为了选择高素质的计算机编程水平的人才&#xff0c;然后把面试就变成了考试&#xff0c;最大的受益者当然是印度人了。 当把一个考察过程变成标准化的考试过程&#x…...

【PostgreSQL】入门篇——如何创建、删除和管理数据库及其用户,包括权限设置和角色管理

PostgreSQL 数据库及用户管理 1. 创建数据库 1.1 使用 SQL 命令创建数据库 在 PostgreSQL 中&#xff0c;可以使用 CREATE DATABASE 命令来创建数据库。以下是基本语法&#xff1a; CREATE DATABASE database_name;示例&#xff1a; CREATE DATABASE my_database;1.2 使用…...

网络安全:保护数字时代的堡垒

网络安全&#xff1a;保护数字时代的堡垒 引言&#xff1a; 在数字化时代&#xff0c;网络安全的重要性日益凸显。它不仅关系到个人隐私保护&#xff0c;还涉及国家安全和经济发展。随着技术的发展&#xff0c;网络安全的威胁也在不断进化&#xff0c;从个人设备到企业网络&am…...

【rCore OS 开源操作系统】Rust 字符串(可变字符串String与字符串切片str)

【rCore OS 开源操作系统】Rust 语法详解: Strings 前言 这次涉及到的题目相对来说比较有深度&#xff0c;涉及到 Rust 新手们容易困惑的点。 这一次在直接开始做题之前&#xff0c;先来学习下字符串相关的知识。 Rust 的字符串 Rust中“字符串”这个概念涉及多种类型&…...

远程过程调用RPC知识科普

文章目录 什么是RPCRPC的基本原理RPC的应用场景RPC的优势常见的RPC框架 常见的RPC协议1. gRPC2. Apache Thrift3. Dubbo4. JSON-RPC5. XML-RPC6. SOAP springboot环境下常用的RPC框架使用1. Apache Dubbo2. Apache Thrift3. gRPC4. Spring Cloud OpenFeign 什么是RPC RPC&…...

Java - LeetCode面试经典150题 - 区间 (三)

区间 228. 汇总区间 题目 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说&#xff0c;nums 的每个元素都恰好被某个区间范围所覆盖&#xff0c;并且不存在属于某个范围但不属于 nums 的数字 x 。 列表中…...

NVIDIA网卡系列之ConnectX-6 DX规格信息(200G-PCIe 4.0x16-8PF1000VF-2019年发布)

背景 NVIDIA ConnectX-6是最大支持200G的产品&#xff0c;有DX LX等系列。LX一般是25G比较便宜。 核心关键点 200GbpsPCIe 4.0&#xff0c;最大lane: x16 (4.0的lane速 16GT/s * 16 256T/s&#xff0c;所以支持的是200G的网卡用PCIe4.0)QSFPPF&#xff0c;VF数量&#xff1…...

【案例】平面云

教程案例视频&#xff1a;Unity Shader Graph - 云教程 开发平台&#xff1a;Unity 2022 开发工具&#xff1a;Unity ShaderGraph   一、效果展示 二、ShaderGraph 路线图 三、案例分析 核心思路&#xff1a;使用 Noise&#xff08;噪声&#xff09;模拟云层状态   3.1 说明…...

测试用例的进阶二

1. 按开发阶段划分 1.1 测试金字塔 从上到下&#xff0c;对于测试人员代码就是要求越来越低&#xff1b; 从下到上&#xff0c;越来越靠近用户&#xff1b; 从下到上&#xff0c;定位问题的成本越来越高&#xff1b; 1.2 单元测试(Unit Testing) 单元测试是对软件组成单元进…...

zotero WebDAV同步忘记密码

https://www.jianguoyun.com/#/safety 找到应用密码...

如何在 SQL 中创建一个新的数据库?

在SQL中创建一个新的数据库&#xff0c;首先你需要有一个可以执行SQL语句的环境。 这通常意味着你已经有了一个数据库管理系统&#xff08;DBMS&#xff09;&#xff0c;如MySQL、PostgreSQL、Oracle或Microsoft SQL Server等。 不同的DBMS可能有不同的细节&#xff0c;但基本…...

《Linux从小白到高手》理论篇:Linux的进程管理详解

本篇将介绍Linux的进程管理相关知识&#xff0c;并将深入介绍Linux的进程间相互通信。 进程就是运行中的程序&#xff0c;一个运行着的程序&#xff0c;可能有多个进程。 比如Oracle DB&#xff0c;启动Oracle实例服务后&#xff0c;就会有多个进程。 Linux进程分类 在 Linux…...

【Qt】控件概述(3)—— 显示类控件

显示类控件 1. QLabel——标签1.1 setPixmap设置图片1.2 setAlignment设置文本对齐方式1.3 setWordWrap设置自动换行1.4 setIndent设置缩进1.5 setMargin设置边距1.6 body 2. QLCDNumber2.1 使用QTimer实现一个倒计时效果2.2 使用循环的方式实现倒计时 3. QProgressBar——进度…...

数据库管理-第247期 23ai:全球分布式数据库-Schema对象(20241004)

数据库管理247期 2024-10-04 数据库管理-第247期 23ai&#xff1a;全球分布式数据库-Schema对象&#xff08;20241004&#xff09;1 分区、表空间和Chunk&#xff08;块&#xff09;2 表空间组3 分片表4 分片表族5 复制表6 在所有分片上创建的非表对象总结 数据库管理-第247期 …...

Docker搭建一款开源的文档管理系统

1.系统介绍 Wizard是一款开源的文档管理系统&#xff0c;它支持多种格式类型的文档管理&#xff0c;包括Markdown、Swagger和Table&#xff0c;以适应不同场景和需求下的文档管理需求。 1.1功能特点 开源免费&#xff1a;Wizard是一款完全免费的开源项目&#xff0c;用户可以…...

软件验证与确认实验一:静态分析

目录 1. 实验目的及要求.................................................................................................... 3 2. 实验软硬件环境.................................................................................................... 3 …...

基于SpringBoot+Vue的高校运动会管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…...

Java 25虚拟线程资源隔离配置,深度剖析JEP 477 ScopedValue与CarrierThread绑定机制

第一章&#xff1a;Java 25虚拟线程资源隔离配置概览Java 25正式将虚拟线程&#xff08;Virtual Threads&#xff09;纳入长期支持特性&#xff0c;并强化了其在高并发场景下的资源隔离能力。虚拟线程本身轻量、按需调度&#xff0c;但若缺乏显式资源约束&#xff0c;仍可能因共…...

UE5 GAS调试技巧:巧用ASC的‘Attribute Test’面板,5分钟搞定角色属性配置与验证

UE5 GAS高效调试指南&#xff1a;利用Attribute Test面板快速验证角色属性配置 在虚幻引擎5的游戏开发中&#xff0c;Gameplay Ability System (GAS)作为构建复杂角色能力与属性的核心框架&#xff0c;其调试效率直接影响着RPG类项目的开发进度。本文将深入探讨如何利用Ability…...

企业如何防御LockBit 3.0?从IOC到实战检测规则编写指南

企业级防御实战&#xff1a;LockBit 3.0勒索病毒全维度对抗指南 1. 勒索病毒威胁态势与企业防御挑战 2023年全球网络安全报告显示&#xff0c;勒索软件攻击同比增长47%&#xff0c;其中LockBit系列占比高达28%。不同于传统恶意软件&#xff0c;LockBit 3.0采用模块化设计&#…...

Cookie 和 Session 分别存储在客户端还是服务端?

从“存包凭条”到“后台存包柜”&#xff1a;Cookie 与 Session 的存储位置深度剖析1. 引言&#xff1a;超市存包处的“凭条”与“存包柜”2. 前置知识&#xff1a;HTTP 的“健忘症”3. Cookie&#xff1a;客户端的“小凭条”3.1 是什么&#xff1f;3.2 解决什么问题&#xff1…...

运维工程师必看:如何用因果AI+DeepSeek实现3分钟精准故障定位(实战案例)

运维工程师必看&#xff1a;如何用因果AIDeepSeek实现3分钟精准故障定位&#xff08;实战案例&#xff09; 在当今复杂的云原生和微服务架构环境中&#xff0c;运维工程师面临的挑战前所未有。系统组件间的依赖关系错综复杂&#xff0c;一个微小的故障可能引发连锁反应&#xf…...

PyTorch 3.0静态图分布式训练:如何用3行torch.compile + 2行DTensor替代自研调度器?一线大厂已全面切换

第一章&#xff1a;PyTorch 3.0静态图分布式训练概览 PyTorch 3.0 引入了原生静态图&#xff08;Static Graph&#xff09;支持&#xff0c;通过 TorchDynamo Inductor 后端实现高效图捕获与跨设备编译&#xff0c;为大规模分布式训练提供低开销、高一致性的执行基础。静态图模…...

LSM303DLHC六轴IMU硬件设计与磁场校准实战指南

1. LSM303DLHC 器件概述与工程定位LSM303DLHC 是意法半导体&#xff08;STMicroelectronics&#xff09;推出的一款高集成度、低功耗的六轴惯性测量单元&#xff08;6-DoF IMU&#xff09;&#xff0c;由独立封装的三轴加速度计&#xff08;LIS3DH 兼容架构&#xff09;和三轴磁…...

Spring AI MCP实战避坑指南:从部署到调试的常见问题解析

1. Spring AI MCP部署前的环境准备 第一次接触Spring AI MCP时&#xff0c;我像大多数开发者一样直接跳过了环境检查环节&#xff0c;结果在后续部署过程中踩了不少坑。这里分享几个必须提前确认的关键点&#xff1a; 操作系统兼容性是首要考虑因素。虽然Spring AI MCP理论上支…...

5个秘诀:如何快速生成专业艺术二维码的完整指南

5个秘诀&#xff1a;如何快速生成专业艺术二维码的完整指南 【免费下载链接】amazing-qr &#x1f4ae; amazing QRCode generator in Python (supporting animated gif) - Python amazing 二维码生成器&#xff08;支持 gif 动态图片二维码&#xff09; 项目地址: https://g…...

Web3j区块链开发实战:Java开发者的以太坊交互指南

Web3j区块链开发实战&#xff1a;Java开发者的以太坊交互指南 【免费下载链接】web3j Lightweight Java and Android library for integration with Ethereum clients 项目地址: https://gitcode.com/gh_mirrors/we/web3j 1. 核心价值解析&#xff1a;Web3j为何成为Java…...