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

【java+Mysql】学生信息管理系统

学生信息管理系统是一种用于管理学生信息的软件系统,旨在提高学校管理效率和服务质量。本课程设计报告旨在介绍设计和实现学生信息管理系统的过程。报告首先分析了系统的需求,包括学生基本信息管理、成绩管理等功能。接着介绍了系统的设计方案,包括系统架构、数据库设计和界面设计等内容。在实现部分,报告详细描述了系统的开发过程和关键技术,如数据库连接等。最后,报告总结了系统的特点和优势,并提出了进一步改进和发展的建议。通过本课程设计,我们深入理解了学生信息管理系统的设计与实现,提高了软件开发能力和团队合作能力。

1  引言

随着信息技术的飞速发展,学校管理也逐渐转向数字化和信息化方向。学生信息管理系统作为学校管理的重要组成部分,承担着学生信息录入、查询、统计等功能,为学校管理者提供了便捷高效的工具。本课程设计旨在通过设计和实现一个全功能的学生信息管理系统,深入理解数据库设计、编程开发等相关知识,提升学生的信息管理能力和实践能力。本课程设计将采用intelij idea、Navicat作为开发平台,以信息录入与管理、信息查询为设计目标,结合学生信息管理的实际需求,设计并实现一个易用可靠的学生信息管理系统。通过本课程设计,学生将深入了解数据库设计与管理、编程开发等相关技术,提升自身信息管理和系统开发能力。本报告将围绕学生信息管理系统的设计与实现展开,首先介绍系统的需求分析,然后详细阐述系统的设计思路和功能模块,最后给出系统的实现和测试情况,并总结本次课程设计的收获和不足之处。通过本报告的撰写,旨在全面展示学生信息管理系统课程设计的全过程和成果,为今后的学习和实践积累经验,提供参考和借鉴。

1.1  研究背景和意义

1.1.1研究背景

信息化教育发展: 随着信息技术的迅速发展,教育管理也逐步向数字化、信息化转变。学生信息管理系统作为教育信息化建设的重要组成部分,受到了广泛关注和重视。

教育管理需求: 高效、准确地管理学生信息对于教育管理工作至关重要。学校管理者和教师需要一个功能完备、易用可靠的学生信息管理系统来支持学校的日常教学和管理工作。

技术发展趋势: 数据库技术、网络技术、软件工程等方面的不断发展,为学生信息管理系统的设计与实现提供了技术保障和支持。

1.1.2研究意义

提高管理效率: 学生信息管理系统的建立可以使学校管理者和教师更加便捷地进行学生信息的录入、查询和统计,提高管理效率和工作质量。

信息共享与交流: 学生信息管理系统可以促进学校内部各部门之间的信息共享和交流,提升教育教学工作的整体协调性和效率。

1. 2  国内外现状发展及趋势 

国内:中国的学生信息管理系统在不断提升数据管理和教务管理的效率,越来越多的学校采用数字化、网络化的管理方式,以满足日益增长的学生数量和复杂的管理需求。国外:国外学生信息管理系统也经历了类似的发展过程,许多国家的学校和教育机构都使用自己定制的系统或者商用系统,以支持学生信息管理、教学计划和成绩跟踪等功能。

趋势:智能化和个性化:未来学生信息管理系统将更加智能化,利用人工智能和大数据技术为学生提供个性化的学习支持和建议。云端化和移动化:越来越多的学校将信息管理系统迁移到云端,以提高系统的可访问性和可扩展性,并且系统将更加注重移动端的用户体验,支持学生、教师和家长随时随地访问和管理信息。数据安全和隐私保护:随着数据泄露和隐私问题的日益突出,学生信息管理系统将更加注重数据安全和隐私保护,采取更加严格的措施保护学生和教育机构的数据安全。

2 系统需求分析

2.1系统总体需求目标

信息记录与管理:系统能够有效地记录和管理学生的基本信息,如姓名、性别、年龄、联系方式、成绩等。

用户权限管理:对用户登录设置权限。

查询:提供查询学生信息的功能。

易用性与界面友好:界面简洁直观,操作方便。

性能优化:系统能够稳定运行,响应速度快。

2.2系统业务流程分析

学生信息录入:管理员通过系统录入新生或转入学生的基本信息。

成绩录入与管理:管理员将学生的成绩录入系统。系统会根据录入的学生的成绩进行评测。

信息查询:管理员可以通过系统查询学生信息、成绩信息等。

2.3系统功能需求分析

2.3.1学生管理功能:

学生信息录入与修改:添加学生信息,修改、删除、更新学生信息。

学生信息查询:根据姓名、学号等条件查询学生信息。

学生信息统计:统计学生人数、男女比例、年龄分布等信息。

2.3.2 成绩管理功能:

成绩录入与修改:教师录入学生的考试成绩或作业成绩。

成绩查询:学生查询自己的成绩,教师查询所教授课程学生成绩。

成绩统计:统计班级或课程的平均成绩、及格率等信息。

2.4系统性能分析

响应时间:系统对用户请求的响应时间,包括页面加载、查询、修改等操作的耗时情况,以确保用户体验良好。

并发处理能力:系统在高并发情况下的稳定性和性能表现,确保能够同时处理多个用户的请求而不降低性能。

数据库性能:数据库的读写速度、索引效率、连接池管理等方面的性能表现,对系统整体性能有重要影响。

系统资源利用率:监控系统的 CPU、内存、磁盘等资源利用率,避免资源瓶颈影响系统性能。

3 系统总体设计

3.1系统功能结构设计

学生信息管理系统:由登陆子系统、查询子系统、管理子系统。功能结构图如图3-1。

(1)登录子系统分为超级管理员登录、管理员登录以及学生端登录。它主要提供用户登录功能,并按各用户的权限使用本系统。

(2)查询子系统包含根据相应的条件进行模糊查询查询到其想要的学生信息。

(3)管理子系统包括学生信息的增加、删除等管理学生信息。

图3-1

3.2数据库设计

3.2.1 概念结构设计

(1)学生管理子系统:

在进入页面之前需要进行登录,在学生在学号和密码正确的情况下进入系统。学生可以修改个人的密码,查询选修课程、学习成绩,还可以查询、选择课程。各实体之间的关系:学生和课程:多对多,学生和老师:多对多,学生和专业:多对一。

  1. 管理员管理子系统:

老师在工号和密码对应的情况下进入系统。

老师可以查询老师的个人信息和修改个人密码,可以查询授课课程信息,可以查询选修课程的学生,可以对学生的成绩进行录入、修改和查询。修改个人的密码

查询授课课程,查询选修课程的学生信息,对学生的成绩进行录入、修改和查询。各实体之间的关系:老师和课程:多对多,老师和专业:多对一。

E-R图:

图3-2

3.2.2 逻辑结构设计

关系模型

班级(编号,班级名称,备注)

学生(编号,姓名,学号,性别,所在院系,班级id,成绩等级)

用户(编号,用户名,密码)

学院(编号,学院名称)

关系模式

t_school_class(id,className,classDesc)

t_student(id,name,sn,sex,dept,classld,score)

t_user(id,userName,password)

dept(id,dept)

基础数据处理

1. t_school_class班级

2. t_student学生

3. t_user用户

4.dept学院

3.2.3 物理结构设计

数据库存储:在数据库服务器上,可以创建多个数据库实例来存储不同类型的数据,如学生信息、课程信息、成绩信息等。每个数据库实例包含多个表,每个表包含相应的字段来存储具体的数据。

3.2.4 数据库建设 

1.建立数据库

2.使用数据库

3.创建表

DROP TABLE IF EXISTS `dept`;CREATE TABLE `dept`  (`id` int(11) NOT NULL COMMENT '编号',`dept` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '学院',PRIMARY KEY (`id`) USING BTREE,INDEX `dept`(`dept` ASC) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;DROP TABLE IF EXISTS `t_school_class`;CREATE TABLE `t_school_class`  (`id` int(11) NOT NULL AUTO_INCREMENT,`className` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`classDesc` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB AUTO_INCREMENT = 20 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;DROP TABLE IF EXISTS `t_student`;CREATE TABLE `t_student`  (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`sn` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`sex` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`dept` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`classId` int(11) NULL DEFAULT NULL,`score` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE,INDEX `classId`(`classId` ASC) USING BTREE,INDEX `t_student_ibfk_2`(`dept` ASC) USING BTREE,CONSTRAINT `t_student_ibfk_1` FOREIGN KEY (`classId`) REFERENCES `t_school_class` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;DROP TABLE IF EXISTS `t_user`;CREATE TABLE `t_user`  (`id` int(11) NOT NULL AUTO_INCREMENT,`userName` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`password` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

3.3 系统安全性设计

在系统功能的安全性需求上,应该从保密性、完整性、身份可认性、可用性以及可控性等多个角度进行分析。具体有!

(1)保密性。对于系统中涉及的信息对没有授权的实体,不可进行对信息的查看与修改。

(2)完整性。信息在存储和上传过程中不会发生改变。

(3)身份可认性。在使用系统时应对用户信息进行确认,避免信息混乱,导致信息泄露

(4)可用性。保证授权的用户在使用时不会发生不能使用的情况。

3.4 本章小结

系统总体设计主要由系统功能结构设计,数据库设计和系统安全性设计组成,以此来满足用户在使用时的体验感,提高系统使用时的稳定性。

4 系统实现

 4.1 系统架构实现

本系统主要包括三种业务流程:登陆业务流程、学生个人信息业务流程、班级业务流程。该系统采用多层架构,视图类用作表示层。除了向客户提供信息之外,它还获得管理员或教师或学生输入的信息。用户输入的简单控制。表单获得用户输入信息后,提交给视图,在这里首先转换获得的数据,然后将相应的数据封装为数据传输对象。视图将封装的数据提交给模型,并使用提交给视图的数据对象来执行复杂的业务逻辑操作。对数据库的访问是在DAO级别。DAO层实现特定的数据库操作方法,服务层调用DAO层方法来实现数据库操作。通过应用这种多层体系结构,提高了系统的可维护性、可扩展性和可移植性。

登陆业务流程概述:输入用户名、密码,登录到系统,对相关信息进行增、删、改、查以及导入和导出。进行完操作之后,点击安全退出,退出系统。管理员业务流程图如图3-2所示。

图4.1.1业务流程图

从功能模块上可以分为如下几大模块:学生信息的导入、导出模块、删除学生信息模块、修改学生信息模块、查询学生信息模块、添加学生信息模块。主要功能模块如图4.1.2所示。

 

 

   

图4.1.2 学生个人信息模块图

班级信息模块类似有删除班级信息模块、修改班级信息模块、查询班级信息模块、添加班级信息模块。主要功能模块如图4.1.3所示。 

图4.1.3 班级信息模块图

4.2 系统功能实现

4.2.1登录界面实现

首先新建用户登录所对应的实体user类,一个user对象代表一个用户,此外,用户表中有的字段,都需要在这个类中反应出来,并且创建空参和满参构造方法,以及set、get和toString方法。

用户实体类:

public class User {private int id; // 编号private String userName; // 用户名private String password; // 密码public User() {super();// TODO Auto-generated constructor stub}public User(String userName, String password) {super();this.userName = userName;this.password = password;}

(set和get方法以及同toString方法省略)

第二步就是对登录的逻辑处理,首先是登陆名以及密码的非空校验,两者有一个为空就不继续访问数据库,直接返回给用户错误的信息,提醒用户更正登录信息。

图4.2.1.1登录界面图

当用户名或者密码为空的时候点击登录就会出现提示信息,如图4.2.1.2

图4.2.1.2登录界面提示信息图

代码部分的实现是使用了awt框架中的事件处理函数

private void loginActionPerformed(ActionEvent evt) {String userName=this.userNameTxt.getText();String password=new String(this.passwordTxt.getPassword());if(StringUtil.isEmpty(userName)){JOptionPane.showMessageDialog(null, "用户名不能为空!");return;}if(StringUtil.isEmpty(password)){JOptionPane.showMessageDialog(null, "密码不能为空!");return;}User user=new User(userName,password);Connection con=null;try {con=dbUtil.getCon();User currentUser=userDao.login(con, user);if(currentUser!=null){dispose();new MainFrm().setVisible(true);}else{JOptionPane.showMessageDialog(null, "用户名或者密码错误!");}} catch (Exception e) {e.printStackTrace();}finally{try {dbUtil.closeCon(con);} catch (Exception e) {e.printStackTrace();}}}

4.2.2 班级信息模块设计

首先新建班级所对应的实体studentClass类,一个studentClass对象代表一个班级,此外,班级表中有的字段,都需要在这个类中反应出来,并且创建空参和满参构造方法,以及set、get和toString方法。

班级实体类:

public class SchoolClass {private int id; // 编号private String className; // 班级名称private String calssDesc; // 备注public SchoolClass() {super();}public SchoolClass(String className, String calssDesc) {super();this.className = className;this.calssDesc = calssDesc;}public SchoolClass(int id, String className, String calssDesc) {super();this.id = id;this.className = className;this.calssDesc = calssDesc;}

(set和get方法以及同toString方法省略)

第二步就是对班级信息逻辑部分的实现了,包括增加删除修改查询,其中添加是单独放在了一个界面,而查询、修改以及删除放在了同一个界面,这样便于维护,如图所示

图4.2.2.1班级信息界面图

点击添加则会调用添加部分的界面函数,弹出信息添加的界面如图所示,可以输入班级的名称,以及对班级的详细描述进行添加,在输入错误的情况下也可以点击重置,就会清空所有填写的信息,这样便于操作。

图4.2.2.2班级信息界面图

点击维护则会调用维护部分的界面函数,弹出信息维护的界面如图所示,可以修改班级的名称,以及对班级的详细描述进行修改。

图4.2.2.2班级信息界面图

实现班级信息维护的代码如下,其中也是使用了awt中的事件处理函数,以及swing中的函数实现界面的显示跳转弹框等交互的操作。

private void bookTypeAddActionPerformed(ActionEvent evt) {String className=this.classNameTxt.getText();String classDesc=this.classDescTxt.getText();if(StringUtil.isEmpty(className)){JOptionPane.showMessageDialog(null, "班级信息名称不能为空!");return;}SchoolClass schoolClass=new SchoolClass(className,classDesc);Connection con=null;try{con=dbUtil.getCon();int n=schoolClassDao.add(con, schoolClass);if(n==1){JOptionPane.showMessageDialog(null, "班级信息添加成功!");resetValue();}else{JOptionPane.showMessageDialog(null, "班级信息添加失败!");}}catch(Exception e){e.printStackTrace();JOptionPane.showMessageDialog(null, "班级信息添加失败!");}finally{try {dbUtil.closeCon(con);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

4.2.3 学生信息模块设计

首先新建学生所对应的实体student类,一个student对象代表一个用户,此外,用户表中有的字段,都需要在这个类中反应出来,并且创建空参和满参构造方法,以及set、get和toString方法。

用户实体类:

public class Student {private int id; // 编号private String name; // 姓名private String sn; // 学号private String sex; // 性别private String dept; // 所在院系private Integer classId; // 班级Idprivate String className; // 班级名称private String score; // 成绩等级public Student() {super();}public Student(String name, String sn, String sex, String dept, Integer calssId, String address) {super();this.name = name;this.sn = sn;this.sex = sex;this.dept = dept;this.classId = calssId;this.score = score;}

(set和get方法以及同toString方法省略)

第二步就是对学生个人信息逻辑部分的实现了,包括增加删除修改查询,其中添加是单独放在了一个界面,而查询、修改以及删除放在了同一个界面,这样便于维护,如图所示

图4.2.3.1学生信息界面图

其中手工填写学生的姓名学号、所在院系和成绩等级,性别通过单选框选择,班级通过下拉菜单进行选择。

图4.2.3.2学生信息添加界面图

在学生信息维护的界面可以对学生信息进行检索,可以通过学生的姓名、学生的编号、学生所在的班级进行筛选,点击选择某位学生的信息,就可以对该学生的信息进行操作了,可以修改其名字、性别、所在的学院、学生的学号、所属的班级以及家庭住址。也可以点击删除、删除该学生的信息。

图4.2.3.3学生信息修改/删除界面图

实现个人信息维护的代码如下,其中也是使用了awt中的事件处理函数,以及swing中的函数实现界面的显示跳转弹框等交互的操作,学生信息的字段信息比较多需要注意要对应字段赋值。

private void studentUpdateActionPerformed(ActionEvent evt) {String id=this.idTxt.getText();if(StringUtil.isEmpty(id)){JOptionPane.showMessageDialog(null, "请选择要修改的记录");return;}String sname=this.nameTxt.getText();String sn=this.snTxt.getText();String dept=this.deptTxt.getText();String address=this.addressTxt.getText();if(StringUtil.isEmpty(sname)){JOptionPane.showMessageDialog(null, "学生信息名称不能为空!");return;}if(StringUtil.isEmpty(sn)){JOptionPane.showMessageDialog(null, "学生学号不能为空!");return;}if(StringUtil.isEmpty(dept)){JOptionPane.showMessageDialog(null, "学生学院不能为空!");return;}String sex="";if(manJrb.isSelected()){sex="男";}else if(femaleJrb.isSelected()){sex="女";}SchoolClass schoolClassTmp=(SchoolClass) schoolClassJcb.getSelectedItem();int scId=schoolClassTmp.getId();Student book=new Student(Integer.parseInt(id),  sname, sn, sex, dept,  scId,  address);Connection con=null;try{con=dbUtil.getCon();int addNum=studentDao.update(con, book);if(addNum==1){JOptionPane.showMessageDialog(null, "学生信息修改成功!");resetValue();this.fillTable(new Student());}else{JOptionPane.showMessageDialog(null, "学生信息修改失败!");}}catch(Exception e){e.printStackTrace();JOptionPane.showMessageDialog(null, "学生信息修改失败!");}finally{try {dbUtil.closeCon(con);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

学生的编号是信息维护逻辑操作的关键所在,首先需要通过学生的编号id查出该学生的各类信息反显在前台界面,然后根据前台更新后的信息,先映射到学生的实体类然后通过数据库dao层同步更新数据库的信息,最后达到学生信息的维护。

5 测试

5.1.1数据一致性测试

本次测试主要检测添加和修改班级信息的功能部分是否符合预期,通过输入不同的班级信息确认表的建立

表5.1.1 添加和修改班级信息

班级名称

班级信息

是否成功

计科1班

某个班级

计科2班

老师带的最好班级

null

某个班级

本次测试主演检测添加班级功能部分是否符合预期,通过输入班级名称为空的情况,如表5.1.2所示,若班级名称为空都能添加成功,所以这个系统的数据库在后期的维护中要进行修改,不符合实际情况,实际情况就是,在学校内,班级名称是必不可少的。当然,本小组成员在后期维护中会不定期检查系统,完善系统。

表5.1.2 添加和修改班级测试表

班级名称

班级信息

是否通过

计科1班

某个班级

计科2班

最好的班级

null

某个班级

本次测试主要检测学生信息添加部分是否符合预期,通过输入不同的名字和学号,包括两者为空的情况,如表5.1.3所示,当学号、名字、学院有一者为空时,均无法实现信息的添加,符合实际情况,而当输入的成绩为空时,这段信息符合部分考生因缺考等原因无成绩,符合预期。

表5.1.3 输入学生成绩信息测试表

名字

学号

学生学院

成绩等级

是否通过

小鸣

20209054

信工院

A

null

12345678

传艺院

B

陈哥

null

信工院

A

张三

23145678

null

A

李四

45678912

经管院

null

本次测试主要检测学生信息的查询功能部分是否符合预期,通过输入不同的姓名、学号、班级包括为空的情况,测试它的实体完整性。如表5.1.4所示,当输入学生姓名,学号,班级为空时,可以出现该学生的相关信息;输入学生学号。而姓名班级为空时,同样可以出现该学生信息,而姓名学号为空时,输入如班级,则显示为2班全班信息,当姓名、学号、班级全为空时,则显示所有数据。符合预期。

表5.1.4 学生信息查询测试

姓名

学号

班级

学院

是否通过

陈璆鸣

null

null

null

null

12345678

null

null

null

null

计科2班

null

null

null

null

信工院

null

null

null

null

本次测试主要检测管理员操作修改学生信息功能部分是否符合预期,在选择相应的信息后,在相关内容里进行修改,测试实体完整性。如表5.1.7所示,若没有选择相应的信息则无法进行修改。所以,只有当数据库内有相应的信息,并且选择了相应信息并进行输入才能判断正确,通过测试。

表5.1.7 修改学生成绩信息测试表

选择

姓名

性别

学院

学号

班级

成绩

是否通过

陈璆鸣

信工

12345678

计科1班

A+

null

null

null

null

null

null

否(未选择内容

5.1.2数据库的性能测试

应用软件除了功能外,很重要的一部分就是软件的性能,而对于数据库系统,数据库性能的好坏会直接影响应用软件的性能,这部分的测试,一般手工测试就显得无能为力了,这时就要借助自动化的测试软件,例如:DataFactory,DataFactory 是一种强大的数据产生器,它允许开发人员和测试人员很容易产生百万行有意义的正确的测试数据库,该工具支持DB2、Oracle、Sybase、SQL Server 数据库。这样,就可以模拟出应用软件长期使用后,海量数据存储的数据库的性能状况。从而尽早发现问题,进行数据库性能的优化。(未来的设想和维护)

相关文章:

【java+Mysql】学生信息管理系统

学生信息管理系统是一种用于管理学生信息的软件系统,旨在提高学校管理效率和服务质量。本课程设计报告旨在介绍设计和实现学生信息管理系统的过程。报告首先分析了系统的需求,包括学生基本信息管理、成绩管理等功能。接着介绍了系统的设计方案&#xff0…...

小白从0学习网站搭建的关键事项和避坑指南(2)

以下是针对小白从零学习网站搭建的 进阶注意事项和避坑指南(第二期),覆盖开发中的高阶技巧、常见陷阱及解决方案,帮助你在实战中提升效率和质量: 一、进阶技术选型避坑 1. 前端框架选择 误区:盲目追求最新…...

Windows 10 上安装 Spring Boot CLI详细步骤

在 Windows 10 上安装 Spring Boot CLI 可以通过以下几种方式完成。以下是详细的步骤说明: 1. 手动安装(推荐) 步骤 1:下载 Spring Boot CLI 访问 Spring Boot CLI 官方发布页面。下载最新版本的 .zip 文件(例如 sp…...

spring boot -- 配置文件application.properties 换成 application.yml

在Spring Boot项目中,application.properties和application.yml是两种常用的配置文件格式,它们各自具有不同的特点和适用场景2。以下是它们之间的主要差异2: 性能差异 4: 加载机制 2: application.properties文件会被加载到内存中,并且只加载一次,之后直接从内存中读取…...

Spring Boot实战:基于策略模式+代理模式手写幂等性注解组件

一、为什么需要幂等性? 核心定义:在分布式系统中,一个操作无论执行一次还是多次,最终结果都保持一致。 典型场景: 用户重复点击提交按钮网络抖动导致的请求重试消息队列的重复消费支付系统的回调通知 不处理幂等的风…...

【Rust 精进之路之第14篇-结构体 Struct】定义、实例化与方法:封装数据与行为

系列: Rust 精进之路:构建可靠、高效软件的底层逻辑 作者: 码觉客 发布日期: 2025-04-20 引言:超越元组,给数据赋予意义 在之前的学习中,我们了解了 Rust 的基本数据类型(标量)以及两种基础的复合类型:元组 (Tuple) 和数组 (Array)。元组允许我们将不同类型的值组合…...

postgres 数据库信息解读 与 sqlshell常用指令介绍

数据库信息: sqlshell Server [localhost]: 192.168.30.101 Database [postgres]: Port [5432]: 5432 Username [postgres]: 用户 postgres 的口令: psql (15.12, 服务器 16.8 (Debian 16.8-1.pgdg120+1)) 警告:psql 主版本15,服务器主版本为16.一些psql功能可能无法正常使…...

论文阅读:2024 arxiv DeepInception: Hypnotize Large Language Model to Be Jailbreaker

总目录 大模型安全相关研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 DeepInception: Hypnotize Large Language Model to Be Jailbreaker DeepInception:催眠大型语言模型,助你成为越狱者 https://arxiv.org/pdf/2311.0…...

vue2技术练习-开发了一个宠物相关的前端静态商城网站-宠物商城网站

为了尽快学习掌握相关的前端技术,最近又实用 vue2做了一个宠物行业的前端静态网站商城。还是先给大家看一下相关的网站效果: 所以大家如果想快速的学习或者掌握一门编程语言,最好的方案就是通过学习了基础编程知识后,就开始利用…...

嵌入式学习——远程终端登录和桌面访问

目录 通过桥接模式连接虚拟机和Windows系统 1、桥接模式 2、虚拟机和Windows连接(1) 3、虚拟机和Windows连接(2) 在Linux虚拟机中创建新用户 Windows系统环境下对Linux系统虚拟机操作 远程登录虚拟机(1&#xff…...

wpf stylet框架 关于View与viewmodel自动关联绑定的问题

1.1 命名规则 Aview 对应 AVIewModel, 文件夹 views 和 viewmodels 1.2 需要注册服务 //RootViewModel是主窗口 public class Bootstrapper : Bootstrapper<RootViewModel>{/// <summary>/// 配置IoC容器。为数据共享创建服务/// </summary…...

如何新建一个空分支(不继承 master 或任何提交)

一、需求分析&#xff1a; 在 Git 中&#xff0c;我们通常通过 git branch 来新建分支&#xff0c;这些分支默认都会继承当前所在分支的提交记录。但有时候我们希望新建一个“完全干净”的分支 —— 没有任何提交&#xff0c;不继承 master 或任何已有内容&#xff0c;这该怎么…...

HarmonyOS-ArkUI-动画分类简介

本文的目的是,了解一下HarmonyOS动画体系中的分类。有个大致的了解即可。 动效与动画简介 动画,是客户端提升界面交互用户体验的一个重要的方式。可以使应用程序更加生动灵越,提高用户体验。 HarmonyOS对于界面的交互方面,围绕回归本源的设计理念,打造自然,流畅品质一提…...

Qt编写推流程序/支持webrtc265/从此不用再转码/打开新世界的大门

一、前言 在推流领域&#xff0c;尤其是监控行业&#xff0c;现在主流设备基本上都是265格式的视频流&#xff0c;想要在网页上直接显示监控流&#xff0c;之前的方案是&#xff0c;要么转成hls&#xff0c;要么魔改支持265格式的flv&#xff0c;要么265转成264&#xff0c;如…...

[第十六届蓝桥杯 JavaB 组] 真题 + 经验分享

A&#xff1a;逃离高塔(AC) 这题就是简单的签到题&#xff0c;按照题意枚举即可。需要注意的是不要忘记用long&#xff0c;用int的话会爆。 &#x1f4d6; 代码示例&#xff1a; import java.io.*; import java.util.*; public class Main {public static PrintWriter pr ne…...

深⼊理解 JVM 执⾏引擎

深⼊理解 JVM 执⾏引擎 其中前端编译是在 JVM 虚拟机之外执⾏&#xff0c;所以与 JVM 虚拟机没有太⼤的关系。任何编程语⾔&#xff0c;只要能够编译出 满⾜ JVM 规范的 Class ⽂件&#xff0c;就可以提交到 JVM 虚拟机执⾏。⾄于编译的过程&#xff0c;如果你不是想要专⻔去研…...

iwebsec靶场 文件包含关卡通关笔记11-ssh日志文件包含

目录 日志包含 1.构造恶意ssh登录命令 2.配置ssh日志开启 &#xff08;1&#xff09;配置sshd &#xff08;2&#xff09;配置rsyslog &#xff08;3&#xff09;重启服务 3.写入webshell木马 4.获取php信息渗透 5.蚁剑连接 日志包含 1.构造恶意ssh登录命令 ssh服务…...

kafka菜鸟教程

一、kafka原理 1、kafka是一个高性能的消息队列系统&#xff0c;能够处理大规模的数据流&#xff0c;并提供低延迟的数据传输&#xff0c;它能够以每秒数十万条消息的速度进行读写操作。 二、kafka优点 1、服务解耦 &#xff08;1&#xff09;提高系统的可维护性‌ 通过服务…...

应用镜像是什么?轻量应用服务器的镜像大全

应用镜像是轻量应用服务器专属的&#xff0c;镜像就是轻量应用服务器的装机盘&#xff0c;应用镜像在原有的纯净版操作系统上集成了应用程序&#xff0c;例如WordPress应用镜像、宝塔面板应用镜像、WooCommerce等应用&#xff0c;阿里云服务器网aliyunfuwuqi.com整理什么是轻量…...

深入理解分布式缓存 以及Redis 实现缓存更新通知方案

一、分布式缓存简介 1. 什么是分布式缓存 分布式缓存&#xff1a;指将应用系统和缓存组件进行分离的缓存机制&#xff0c;这样多个应用系统就可以共享一套缓存数据了&#xff0c;它的特点是共享缓存服务和可集群部署&#xff0c;为缓存系统提供了高可用的运行环境&#xff0c…...

Spring Boot 中的自动配置原理

2025/4/6 向全栈工程师迈进&#xff01; 一、自动配置 所谓的自动配置原理就是遵循约定大约配置的原则&#xff0c;在boot工程程序启动后&#xff0c;起步依赖中的一些bean对象会自动的注入到IOC容器中。 在讲解Spring Boot 中bean对象的管理的时候&#xff0c;我们注入bean对…...

软考高级-系统架构设计师 论文范文参考(一)

文章目录 论SOA技术的应用论SOA在企业信息化中的应用论UP&#xff08;统一过程方法&#xff09;的应用论分布式数据库的设计与实现论改进Web服务器性能的有关技术论基于UML的需求分析论基于构件的软件开发论基于构件的软件开发(二) 论SOA技术的应用 摘要&#xff1a;  本人于…...

剑指Offer(数据结构与算法面试题精讲)C++版——day16

剑指Offer&#xff08;数据结构与算法面试题精讲&#xff09;C版——day16 题目一&#xff1a;序列化和反序列化二叉树题目二&#xff1a;从根节点到叶节点的路径数字之和题目三&#xff1a;向下的路径节点值之和附录&#xff1a;源码gitee仓库 题目一&#xff1a;序列化和反序…...

windows server C# IIS部署

1、添加IIS功能 windows server 2012、windows server 2016、windows server 2019 说明&#xff1a;自带的是.net 4.5 不需要安装.net 3.5 尽量使用 windows server 2019、2016高版本&#xff0c;低版本会出现需要打补丁的问题 2、打开IIS 3、打开iis应用池 .net 4.5 4、添…...

Android: gradient 使用

在 Android 中使用 gradient&#xff08;渐变&#xff09; 通常是通过 drawable 文件来设置背景。下面是可以直接用的几种用法汇总&#xff0c;包括线性渐变、径向渐变、扫描渐变&#xff08;sweep&#xff09;等&#xff1a; ✅ 1. Linear Gradient&#xff08;线性渐变&#…...

【教程】PyTorch多机多卡分布式训练的参数说明 | 附通用启动脚本

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 目录 torchrun 一、什么是 torchrun 二、torchrun 的核心参数讲解 三、torchrun 会自动设置的环境变量 四、torchrun 启动过程举例 机器 A&#…...

Neo4j初解

Neo4j 是目前应用非常广泛的一款高性能的 NoSQL 图数据库&#xff0c;其设计和实现专门用于存储、查询和遍历由节点&#xff08;实体&#xff09;、关系&#xff08;边&#xff09;以及属性&#xff08;键值对&#xff09;构成的图形数据模型。它的核心优势在于能够以一种自然且…...

学习笔记二十——Rust trait

&#x1f9e9; Rust Trait 彻底搞懂版 &#x1f440; 目标读者&#xff1a;对 Rust 完全陌生&#xff0c;但想真正明白 “Trait、Trait Bound、孤岛法则” 在做什么、怎么用、为什么这样设计。 &#x1f6e0; 方法&#xff1a; 先给“心里模型”——用生活类比把抽象概念掰开揉…...

音视频小白系统入门课-2

本系列笔记为博主学习李超老师课程的课堂笔记&#xff0c;仅供参阅 课程传送门&#xff1a;音视频小白系统入门课 音视频基础ffmpeg原理 往期课程笔记传送门&#xff1a; 音视频小白系统入门笔记-0音视频小白系统入门笔记-1 课程实践代码仓库&#xff1a;传送门 音视频编解…...

Linux:安装 CentOS 7(完整教程)

文章目录 一、简介二、安装 CentOS 72.1 虚拟机配置2.2 安装CentOS 7 三、结语 一、简介 CentOS&#xff08;Community ENTerprise Operating System&#xff09;是一个基于 Linux 的发行版之一&#xff0c;旨在提供一个免费的、企业级的计算平台&#xff0c;因其稳定性、安全…...