基于JavaSpringMVC+Mybatis+Jquery高校毕业设计管理系统设计和实现
基于JavaSpringMVC+Mybatis+Jquery高校毕业设计管理系统设计和实现
博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域
作者主页 超级帅帅吴
Java项目精品实战案例《500套》
欢迎点赞 收藏 ⭐留言
文末获取源码联系方式
文章目录
- 基于JavaSpringMVC+Mybatis+Jquery高校毕业设计管理系统设计和实现
- 前言:
- 功能设计:
- 功能截图:
- 系统首页
- 管理员主要功能设计
- 学生用户主要功能:
- 老师端主要功能设计:
- 主要数据库设计:
- 部分代码:
- 论文报告:
- 总结:
- 获取源码:
前言:
随着信息时代计算机网络技术的发展给人们带来了极大的方便,传统的毕业设计过程在很大程度上给学生、教师和管理人员带来了不便。而毕业论文对于高校学生而言是对自己在学校所学的专业知识和技能的总结,对高校的教育而言是对毕业学生最后的一次全面的考核。在毕业论文完成整个的过程中,需要学生与导师、人员的密切合作。但在现实中,某个环节内的角色由于某些原因不能一直保持着工作状态,会导致毕业论文完成的停滞。为了避免这种情况的发生,为方便教师、学生和管理者顺利完成对应角色的任务,高校需要一个专业的针对毕业论文的管理系统把完成毕业论文的所有操作都集中到一个系统中。与此同时,各种信息网站的普及给许多企业或用户带来了良好的体验和高效的管理。本系统针对现代高校计算机技术的发展,为了应对过去高校毕业生在毕业设计管理过程中遇到的效率低、交互性差、工作量大等问题而采用软件工程的设计思想,构建一个适合高校使用的基于javaweb的毕业设计管理系统。本系统是基于Windows操作系统作为服务平台,后台数据库采用MySQL数据库,服务器使用Tomcat容器、Eclipse开发工具创建java语言来构建服务页面。选择毕业设计课题管理、绩效管理等功能模块及其关系。本次毕业设计的目的是运用现代网络管理技术解决毕业设计管理中存在的问题,减少学生选择毕业设计选题的时间,和加强毕业设计过程的监控,降低教师和管理人员的工作强度。采用SpringMVC框架提高了系统开发的效率,降低了系统的复杂性,使数据库访问更加灵活。通过测试,系统的应用方便了教师和学生之间的交流,加强了过程管理,方便了结果的保存和显示。
功能设计:



1.用户模块管理:用户登录、多角色登录、用户的查询、删除操作、用户分为不同权限、可以通过角色来灵活控制。
2.导师管理:管理员登录后可以对导师信息进行管理和添加。
3.学生管理:管理员以及老师登录后可以对学生信息进行管理和添加。
4.公告管理:管理员及老师登录后可以对公告进行管理和添、学生可以查看。
5.数据分析:管理员登录后可以查看数据分析和分数占比等。
6.审核选题:管理员登录后可以进行审核操作、同意或拒绝。
7.论文管理:管理员登录后可以查看下载论文
8.修改资料:用户可以修改自己的密码。
9.课程管理:老师上传选题课程、及查看改课程是否通过选题。
10.发布内容:老师发布任务书、开题报告、需求分析和数据库设计等。
11.审核文档:老师可以审核任务书、开题报告、需求分析和数据库设计等。
12.文档管理:老师可以查看和上传学生的论文文档。
13.提问管理:老师可以查看和回答学生的提问信息、学生可以提问
14.成绩管理:老师可以管理和查看学生的成绩信息。
15.毕业设计管理:老师可以审核学生论文及查看答辩资格名单。
16.进度管理:学生可以查看各文档的进度完成情况、比如任务书、开题等。
功能截图:
系统首页

分角色登录、不同角色不同权限功能

管理员主要功能设计

数据分析:

审核选题:

学生管理:

添加导师:

学生用户主要功能:


修改个人资料:

查看选题:

文档管理:各文档完成情况、查看课题资料和下载等


上传各阶段文档:和查看已经上传的文档

毕业设计提问以及查看问题老师回答

查看公告信息、成绩信息和自己的答辩资格

老师端主要功能设计:


课题管理:

学生管理:

发布内容:

审核文档:

文档管理:

成绩管理:

公告管理:

论文审核及查看答辩资格:

主要数据库设计:

部分代码:
@Controller
@RequestMapping(value="/teacher")
public class TeacherController {@Autowiredprivate ITeacherService teacherService;@Autowiredprivate IStudentService studentService;@Autowiredprivate IDepartmentService departmentService;@Autowiredprivate IAnnouncementService announcementService;/*@RequestMapping(value="/add",method=RequestMethod.GET)public String addTeacherForm(Model model) {return "teacher/addTeacher.jsp";}@RequestMapping(value="/add",method=RequestMethod.POST)public String addTeacher(HttpServletRequest request,String teacherNo, String teacherName,String sex,String inputMan,String phone,String department,Model model) throws Exception {teacherNo = new String(teacherNo.getBytes("iso-8859-1"),"utf-8");teacherName = new String(teacherName.getBytes("iso-8859-1"),"utf-8");sex = new String(sex.getBytes("iso-8859-1"),"utf-8");inputMan = new String(inputMan.getBytes("iso-8859-1"),"utf-8");phone = new String(phone.getBytes("iso-8859-1"),"utf-8");department = new String(department.getBytes("iso-8859-1"),"utf-8");Date currentTime = new Date();Teacher teacher = new Teacher();teacher.setTeacherNo(teacherNo);teacher.setTeacherName(teacherName);teacher.setDepartmentId(Integer.parseInt(department));teacher.setSex(sex);teacher.setInputMan(inputMan);teacher.setLastModifyTime(currentTime);teacher.setPhone(phone);int addNum = teacherService.addTeacher(teacher);System.out.println("添加数目:"+addNum);return "teacher/addSuccess.jsp";}*/@RequestMapping(value="/main",method=RequestMethod.GET)public String teacherMainForm() {return "teacher/main.jsp";}@RequestMapping(value="/modifyInfo",method=RequestMethod.GET)public String teacherModifyInfoForm() {return "teacher/teacherModifyInfo.jsp";}@RequestMapping(value="/modifyPassword",method=RequestMethod.GET)public String teacherModifyPasswordForm() {return "teacher/teacherModifyPassword.jsp";}@RequestMapping(value="/uploadThesisTitle",method=RequestMethod.GET)public String teacherUploadThesisTitleForm() {return "teacher/teacherUploadThesisTitle.jsp";}@RequestMapping(value="/modifyThesisTitle",method=RequestMethod.GET)public String teacherModifyThesisTitleForm() {return "teacher/teacherModifyThesisTitle.jsp";}@RequestMapping(value="/thesisResult",method=RequestMethod.GET)public String teacherThesisResultForm(Model model,HttpServletRequest request) {teacherShowAllThesisTitle(model, request);return "teacher/teacherThesisResult.jsp";}@RequestMapping(value="/uploadTaskBook",method=RequestMethod.GET)public String teacherUploadTaskBookForm() {return "teacher/teacherUploadTakeBook.jsp";}@RequestMapping(value="/uploadOpening",method=RequestMethod.GET)public String teacherUploadOpeningForm() {return "teacher/teacherUploadOpeningReport.jsp";}@RequestMapping(value="/uploadKeXingXing",method=RequestMethod.GET)public String teacherUploadKeXingXingForm() {return "teacher/teacherUploadKeXingXing.jsp";}@RequestMapping(value="/uploadXuQiu",method=RequestMethod.GET)public String teacherUploadXuQiuForm() {return "teacher/teacherUploadXuQiu.jsp";}@RequestMapping(value="/uploadGaiYao",method=RequestMethod.GET)public String teacherUploadGaiYaoForm() {return "teacher/teacherUploadGaiYao.jsp";}@RequestMapping(value="/uploadShuJuKu",method=RequestMethod.GET)public String teacherUploadShuJuKuForm() {return "teacher/teacherUploadShuJuKu.jsp";}@RequestMapping(value="/checkOppening")public String teacherCheckOppeningForm(HttpServletRequest request,Model model) {Teacher currentTeacher = (Teacher)request.getSession().getAttribute("teacher");int teacherId = currentTeacher.getId();List<Student> students = teacherService.getAllStudentInfo(teacherId);for(int i=0;i<students.size();i++) {int studentId = students.get(i).getId();StudentTaskBookOpening STBO = teacherService.getStudentOpeningByStudentId(studentId);if(STBO == null || "".equals(STBO)) {}else {String openingPath = STBO.getStudentOpeningResport();if(openingPath==null) {students.get(i).setStudentOpeningName("未上传");students.get(i).setOpenscore("未上传");}else {students.get(i).setStudentOpeningPath(openingPath);String[] str = openingPath.split("\\\\");String fileName = str[str.length-1].toString();students.get(i).setStudentOpeningName(fileName);students.get(i).setOpenscore(STBO.getOpenscore());}// int completion = STBO.getCompletion();
// if(completion==0) {
// students.get(i).setCompletionName("未审核");
// }else if(completion==1) {
// students.get(i).setCompletionName("未通过");
// }else {
// students.get(i).setCompletionName("审核通过");;
// }}}model.addAttribute("studentList", students);return "teacher/teacherCheckOpeningReport.jsp";}@RequestMapping(value="/checkKexing")public String teacherCheckKexingForm(HttpServletRequest request,Model model) {Teacher currentTeacher = (Teacher)request.getSession().getAttribute("teacher");int teacherId = currentTeacher.getId();List<Student> students = teacherService.getAllStudentInfo(teacherId);for(int i=0;i<students.size();i++) {int studentId = students.get(i).getId();StudentTaskBookOpening STBO = teacherService.getStudentOpeningByStudentId(studentId);if(STBO == null || "".equals(STBO)) {}else {String kexingPath = STBO.getStudentKeXingXing();if(kexingPath==null) {students.get(i).setStudentKexingName("未上传");students.get(i).setKexingscore("未上传");}else {students.get(i).setStudentKexingPath(kexingPath);String[] str = kexingPath.split("\\\\");String fileName = str[str.length-1].toString();students.get(i).setStudentKexingName(fileName);students.get(i).setKexingscore(STBO.getKexingscore());}}}model.addAttribute("studentList", students);return "teacher/teacherCheckKeXing.jsp";}@RequestMapping(value="/checkXuqiu")public String teacherCheckXuqiuForm(HttpServletRequest request,Model model) {Teacher currentTeacher = (Teacher)request.getSession().getAttribute("teacher");int teacherId = currentTeacher.getId();List<Student> students = teacherService.getAllStudentInfo(teacherId);for(int i=0;i<students.size();i++) {int studentId = students.get(i).getId();StudentTaskBookOpening STBO = teacherService.getStudentOpeningByStudentId(studentId);if(STBO == null || "".equals(STBO)) {}else {String xuqiuPath = STBO.getStudentXuQiu();if(xuqiuPath==null) {students.get(i).setStudentXuqiuName("未上传");students.get(i).setXuqiuscore("未上传");}else {students.get(i).setStudentXuqiuPath(xuqiuPath);System.out.println(xuqiuPath);String[] str = xuqiuPath.split("\\\\");String fileName = str[str.length-1].toString();students.get(i).setStudentXuqiuName(fileName);students.get(i).setXuqiuscore(STBO.getXuqiuscore());}}}model.addAttribute("studentList", students);return "teacher/teacherCheckXuQiu.jsp";}@RequestMapping(value="/uploadThesisTitle",method=RequestMethod.POST)public String teacherUploadThesisTitle(Model model,HttpServletRequest request,String thesisTitle,String nandu,String liang,String from,String leixing,String thesisDesc) throws Exception {thesisTitle = new String(thesisTitle.getBytes("iso-8859-1"),"utf-8");nandu = new String(nandu.getBytes("iso-8859-1"),"utf-8");liang = new String(liang.getBytes("iso-8859-1"),"utf-8");from = new String(from.getBytes("iso-8859-1"),"utf-8");leixing = new String(leixing.getBytes("iso-8859-1"),"utf-8");thesisDesc = new String(thesisDesc.getBytes("iso-8859-1"),"utf-8");if(thesisTitle == null || "".equals(thesisTitle)) {model.addAttribute("message", "上传课题题目不能为空");return "teacher/main.jsp";}else if(thesisDesc == null || "".equals(thesisDesc)) {model.addAttribute("message", "上传课题描述不能为空");return "teacher/main.jsp";}else if(nandu == null || "".equals(nandu)) {model.addAttribute("message", "上传课题难度不能为空");return "teacher/main.jsp";}else if(liang == null || "".equals(liang)) {model.addAttribute("message", "上传课题工作量不能为空");return "teacher/main.jsp";}else if(from == null || "".equals(from)) {model.addAttribute("message", "上传课题来源不能为空");return "teacher/main.jsp";}else if(leixing == null || "".equals(leixing)) {model.addAttribute("message", "上传课题类型不能为空");return "teacher/main.jsp";}else {Teacher currentTeacher = (Teacher)request.getSession().getAttribute("teacher");int teacherId = currentTeacher.getId();String teacherName = currentTeacher.getTeacherName();Date time = new Date();ThesisTitle thesis = new ThesisTitle();thesis.setThesisName(thesisTitle);thesis.setTeacherId(teacherId);thesis.setSubmitTime(time);thesis.setInputMan(teacherName);thesis.setNandu(nandu);thesis.setLiang(liang);thesis.setFrom(from);thesis.setLeixing(leixing);thesis.setDescription(thesisDesc);int num = teacherService.uploadThesisTitle(thesis);System.out.println("添加的课题数:"+num);model.addAttribute("message", "上传成功");return "teacher/teacherUploadThesisTitle.jsp";}}@RequestMapping(value="/uploadThesis4pass")public String teacherUploadThesis4pass(HttpServletRequest request,@RequestParam("studentList")int studentList,@RequestParam("file") MultipartFile file, Model model) throws Exception, IOException {// System.out.println("上传课题id:"+topic4Teacher);Teacher currentTeacher = (Teacher)request.getSession().getAttribute("teacher");String teacherName = currentTeacher.getTeacherName();String studentId = String.valueOf(studentList);// System.out.println("当前用户:"+teacherNo);if(!file.isEmpty()) {File fileRoot = new File("E:\\BSM\\thesis");File fileDb = new File(fileRoot, studentId);String fileName = file.getOriginalFilename();File filePath = new File(fileDb, fileName);// filePath 是必须的 , 文件保存的路径,若是注释掉会出现,空文件异常if(!filePath.getParentFile().exists()) {filePath.getParentFile().mkdirs();}file.transferTo(new File(fileDb+File.separator+fileName));ThesisPaper paper = new ThesisPaper();paper.setStudentId(studentList);paper.setPaperInfo(filePath.toString());teacherService.uploadThesis4Pass(paper);model.addAttribute("message", "上传学生论成功");return "teacher/main.jsp";}else {model.addAttribute("message", "上传任务书出错");return "error.jsp";}}@RequestMapping(value="/checkDoubt")public String teacherCheckDoubtForm(HttpServletRequest request,Model model) {Teacher currentTeacher = (Teacher)request.getSession().getAttribute("teacher");int teacherId = currentTeacher.getId();List<Student> students = teacherService.getAllStudentInfo(teacherId);List<Doubt> doubtList = new ArrayList<Doubt>();for(int i=0;i<students.size();i++) {int studentId = students.get(i).getId();List<Doubt> doubts = teacherService.getAllDoubtByStudentId(studentId);int nn = doubts.size();for(int j=0;j<nn;j++) {Doubt db = doubts.get(j);String answer = db.getAnswer();if(answer == null || "".equals(answer)) {doubtList.add(db);}}}model.addAttribute("doubtList", doubtList);return "teacher/teacherCheckDoubt.jsp";}@RequestMapping(value="/answerDoubtForm")public String teacherAnswerDoubtForm() {return "teacher/teacherAnswerDoubt.jsp";}@RequestMapping(value="/answerDoubt")public String teacherAnswerDoubt(Model model,int id,String answer) throws Exception {answer = new String(answer.getBytes("iso-8859-1"),"utf-8");Doubt doubt = new Doubt();doubt.setId(id);doubt.setAnswer(answer);int num = teacherService.updateDoubt(doubt);if(num == 1) {model.addAttribute("message", "回复成功");}else {model.addAttribute("message", "回复失败");}return "teacher/main.jsp";}
论文报告:

总结:
经过近期对 java 面向对象程序设计、前端知识以及JAVA 框架的掌握和学习,以及这段时间这个毕业设计管理系统的开发,让我更加了解到 java 学习的重要性。在开发这个系统是哪个,我完成了多个实验以及毕业设计管理平台的功能测试,阶段的系统开发学习当中,我从认识到熟悉java,而后到能够自主运用相关技术,我发现了它确实有很多方便之处,比如java集抽象性和封装性以及继承性和多态性于一体,实现了对代码重用和代码扩充功能,提高了整体软件开发的速度和效率。比如管理员添加用户的时候报java.lang.NullPointException、解决的方法:查看控制台打印信息、发现添加的时候未填写相关信息、报java.lang.NullPointException、通过断电调试发现用户信息为空的数据项、在前端保存的时候必须填写用户完整相关信息或者数据库设置字段可以为空都可以解决、 我学习程序设计的主要目的就是提高自己实际问题的程序解决方案的关键技能和技术。
获取源码:
大家点赞、收藏、关注、评论啦
🍅查看下方微信号获取联系方式 📝
🚀🚀🚀精彩系列推荐
Java毕设项目精品实战案例《500套》
精彩专栏推荐订阅:在下方专栏
相关文章:
基于JavaSpringMVC+Mybatis+Jquery高校毕业设计管理系统设计和实现
基于JavaSpringMVCMybatisJquery高校毕业设计管理系统设计和实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码…...
问题排查记录-ffmpeg链接libavfilter和libavcodec:未定义的引用
目录 一、问题背景 二、问题现象 2.1 ffmpeg测试例程 2.2 编译脚本 2.3 错误提示 三、问题排查 3.1 关于提示找不到“stdio" "iostream"头文件的问题 3.1.1查看工具链头文件检索位置 3.1.2 根据工具链路径查找头文件 3.1.3 在编译脚本中指定头文件路径…...
打印流,Properties类
打印流只有输出流,没有输入流 package com.hspedu.printstream;import java.io.IOException; import java.io.PrintStream;/*** author 韩顺平* version 1.0* 演示PrintStream (字节打印流/输出流)*/ public class PrintStream_ {public stat…...
TinyOS 配置教程
系列文章目录 TinyOS 系列文章【一】:TinyOS 配置教程 TinyOS 系列文章【二】:Tossim 教程 文章目录 系列文章目录前言1. 安装1.1. 实验环境1.2. TinyOS基础工作1.3. TinyOS 的配置1.4. 安装 java1.5. 安装编译器 2. 测试仿真程序总结 前言 本文主要用…...
【工作总结】后端开发人员的坏习惯
文章目录 前言一、不遵循项目规范二、用复杂SQL语句来解决问题三、缺少全局把控思维,只关注某一块业务四、函数复杂冗长,逻辑混乱五、缺乏主动思考,拿来主义六、核心业务逻辑,缺少相关日志和注释七、修改代码,缺少必要测试八、需求没理清&…...
review
review post提交方式下的设置编码,防止中文乱码 request.setCharaterEncoding(“utf-8”); get提交方式,tomcat8开始,编码不需要设置 tomcat8之前,get方式设置比较麻烦: String fname request.getParameter("f…...
【人工智能概论】 用Python实现数据的归一化
【人工智能概论】 用Python实现数据的归一化 文章目录 【人工智能概论】 用Python实现数据的归一化一. 数据归一化处理的意义二. 常见的归一化方法2.1 最大最小标准化(Min-Max Normalization)2.2 z-score 标准化 三. 用sklearn实现归一化 一. 数据归一化…...
【Python】matplotlib设置图片边缘距离和plt.lengend图例放在图像的外侧
一、问题提出 我有这样一串代码: import matplotlib.pyplot as plt plt.figure(figsize (10, 6)) " 此处省略代码 " legend.append("J") plt.legend(legend) plt.xlabel(recall) plt.ylabel(precision) plt.grid() plt.show()我们得到的图像…...
oracle 11g等保加固
有个单机环境需要做个等保加固 1、执行如下sql ?/rdbms/admin/utlpwdmg.sql --alter profile default limit password_verify_function null; Alter PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME 90; alter profile DEFAULT limit password_lock_time 30; alter profile DEFAU…...
【设计模式】设计模式之解释器模式
文章目录 前言一、解释器模式二、最佳实践总结 前言 本节给大家讲一下设计模式中的解释器模式,并结合实际业务场景给大家讲解如何使用~ 所有案例代码主要以Java语言为主, 好了, 废话不多说直接开整~ 一、解释器模式 解释器模式(Interpreter Pattern)…...
leetcode551. 学生出勤记录 I
题目描述解题思路执行结果 leetcode551. 学生出勤记录 I . 题目描述 给你一个字符串 s 表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤、迟到、到场)。记录中只含下面三种字符: A:Absentÿ…...
flume拦截器介绍
Flume是一个开源的、分布式的、可靠的、高效的海量数据采集、聚合和传输系统。其中,拦截器(Interceptor)是Flume中的一种组件,可以在数据(Event)流动的各个阶段对数据进行处理、过滤或转换,从而实现更为灵活、高效的数据采集和传输。 1、拦截…...
5.4、服务器编程基本框架和两种高效的事件处理模式
5.4、服务器编程基本框架和两种高效的事件处理模式 1.服务器编程基本框架2.两种高效的事件处理模式①Reactor模式②Proactor模式③模拟Proactor模式 1.服务器编程基本框架 模块功能I/O 处理单元处理客户连接,读写网络数据逻辑单元业务进程或线程网络存储单元数据库、…...
Flink主要有两种基础类型的状态:operator state。
Flink主要有两种基础类型的状态:keyed state 和operator state。 Operator State 对于Operator State(或者non-keyed state),每个operator state绑定到一个并行operator实例上。在Flink中,Kafka Connector是一个使用Operator State的很好的例…...
【vue2】使用vue-admin-template动态添加路由的思路/addRoutes的使用
😉博主:初映CY的前说(前端领域) ,📒本文核心:用原生js实现省市区联动 【前言】在通用的后台管理项目的开发中,不仅仅是会涉及到对表单数据等的增删改查操作还会涉及到一些关于权限管理的问题。我们将基于一个RBAC的思维…...
Python语言中的注释方法应用
Python语言中的注释方法 在Python编程中,与其他编程语言一样,有良好的注释部分,会让你的程序在后续的改进或优化中,变得便利。同时,给自己培养了良好的编程习惯。 在Python语言中,有两种注释方法。 1.单行…...
Google浏览器翻译无法正常使用解决
1.查找可用服务器地址 按WinR键打开运行→输入cmd回车,打开命令提示符→输入ping google.cn 回车。记录一下下图红框里的ip地址,一会要用到 最近自己ping出来的ip可能不能用了,可以尝试用下面的ip 142.251.163.90 142.250.113.90 142.251.…...
ETCD(三)操作指令
1. put put #将给定的key写入到存储 --ignore-lease[false] #使用当前租约更新key --ignore-value[false] #使用当前值更新key --lease"0" # 要附加到key的租约ID(十六进制) --prev-kv[false] # 返回修改前的上一个键值对2. get get #获取给…...
小白学Pytorch系列--Torch.optim API Base class(1)
小白学Pytorch系列–Torch.optim API Base class(1) torch.optim是一个实现各种优化算法的包。大多数常用的方法都已得到支持,而且接口足够通用,因此将来还可以轻松集成更复杂的方法。 如何使用优化器 使用手torch.optim您必须构造一个优化器对象&…...
flac格式如何转mp3,3招帮你搞定
flac格式如何转mp3,3招帮你搞定的方法来啦。当你的音频是flac格式是不是很头疼,又不知道怎么转mp3 。然后网上搜索出很多方法又不知道从哪个下手,是不是很疑惑?那今天就来看看小编推荐的方法吧,一定让你眼前一亮&#…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...
tauri项目,如何在rust端读取电脑环境变量
如果想在前端通过调用来获取环境变量的值,可以通过标准的依赖: std::env::var(name).ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...
微服务通信安全:深入解析mTLS的原理与实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言:微服务时代的通信安全挑战 随着云原生和微服务架构的普及,服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...
