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

基于srpingboot高校智慧校园教学管理服务平台的设计与实现(源码+文档+部署讲解)

技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。

主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文降重、长期答辩答疑辅导、腾讯会议一对一专业讲解辅导答辩、模拟答辩演练、和理解代码逻辑思路。

🍅文末获取源码联系🍅
🍅文末获取源码联系🍅
🍅文末获取源码联系🍅

👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟

《课程设计专栏》
《Java专栏》
《Python专栏》
⛺️心若有所向往,何惧道阻且长

文章目录

    • 一、核心技术栈
      • (一)开发语言
      • (二)框架
      • (三)JDK 版本
    • 二、运行环境与工具
      • (一)服务器
      • (二)数据库
      • (三)数据库工具
      • (四)开发软件
      • (五)Maven 包
      • (六)浏览器
    • 三、访问路径
      • (一)后台路径
      • (二)前台路径
    • 四、初始账号信息
      • (一)管理员账号
      • (二)管理员密码
    • 五、功能概述
      • (一)管理员功能
      • (二)教师功能
      • (三)学生用户功能
    • 五、功能页面展示
    • 六、部分代码展示

在数字化教育浪潮中,高校智慧校园教学管理服务平台的构建成为提升教育质量与管理效率的关键。本次开发选用 Spring Boot 框架,精心搭建起功能完备、体验流畅的管理系统,以下为全面且详细的技术剖析。

一、核心技术栈

(一)开发语言

Java 语言以其卓越的跨平台特性、庞大的类库资源和稳定的性能,成为本次项目的开发基石。其面向对象的编程范式,使代码具备极高的可维护性与可扩展性。无论是复杂的业务逻辑实现,还是系统架构的搭建,Java 都能提供强大支持,确保系统在长期运行中稳定可靠。

(二)框架

Spring Boot 框架的引入,为项目开发注入了强大动力。它遵循 “约定优于配置” 的原则,极大减少了繁琐的配置工作,让开发者能够专注于业务逻辑实现。Spring Boot 集成了众多常用的功能模块,如数据访问、安全管理、事务处理等,通过简单的依赖引入即可快速使用。同时,其内置的服务器使得项目可以快速部署和运行,大大提高了开发效率,加速了项目迭代周期。

(三)JDK 版本

JDK1.8 作为 Java 开发的重要版本,带来了一系列新特性和性能优化。Lambda 表达式的引入,简化了代码编写,提高了代码的可读性和简洁性;Stream API 为集合操作提供了更高效、便捷的方式;此外,JDK1.8 在垃圾回收机制、编译优化等方面也有显著提升,为项目的高效运行提供了有力保障。

二、运行环境与工具

(一)服务器

Tomcat7 作为久经考验的 Java Web 服务器,承担着部署和运行项目的重任。它具有轻量级、高性能、可扩展性强等特点,能够稳定地处理大量并发请求。Tomcat7 对 Servlet 和 JSP 规范的良好支持,确保了项目中的 Web 应用能够顺畅运行,为用户提供稳定、高效的服务。

(二)数据库

MySQL 5.7 凭借其开源、高效、易于管理等优势,成为存储教学管理数据的理想选择。其具备强大的数据处理能力,支持事务处理、数据备份与恢复等功能,能够安全可靠地存储海量的学生信息、教师信息、课程信息以及成绩数据等。通过优化的查询引擎,MySQL 5.7 能够快速响应用户的数据请求,保障系统的数据交互效率。

(三)数据库工具

Navicat 作为一款功能强大的数据库管理工具,为开发人员和数据库管理员提供了便捷的操作界面。它支持与 MySQL 等多种数据库的连接,能够直观地进行数据库设计、表结构创建、数据导入导出以及 SQL 语句执行等操作。Navicat 的可视化界面大大降低了数据库管理的难度,提高了工作效率,使得开发人员能够更加专注于业务逻辑的实现。

(四)开发软件

为满足不同开发者的使用习惯,项目支持在 eclipse、myeclipse 或 idea 等主流开发工具中进行开发。Eclipse 以其开源、插件丰富而备受青睐,开发者可以根据项目需求自由扩展功能;MyEclipse 则在企业级开发方面表现出色,集成了众多企业级开发插件;Idea 凭借其智能的代码提示、高效的调试功能和强大的重构工具,成为许多 Java 开发者的首选。无论选择哪种开发工具,都能在本项目中发挥出最佳效能。

(五)Maven 包

Maven 作为项目构建和依赖管理工具,在项目开发中起着至关重要的作用。它通过简洁的 POM(Project Object Model)文件,对项目的依赖关系进行统一管理,自动下载和更新项目所需的各种库和插件。Maven 的生命周期管理功能,使得项目的编译、测试、打包和部署等操作变得标准化、自动化,大大简化了项目管理流程,提高了团队协作效率。

(六)浏览器

推荐使用谷歌浏览器作为访问平台的首选浏览器。谷歌浏览器以其快速的页面加载速度、良好的 JavaScript 性能和对 HTML5 等最新 Web 标准的支持而闻名。在高校智慧校园教学管理服务平台中,谷歌浏览器能够确保用户界面的流畅展示,提供最佳的用户体验,无论是复杂的页面交互还是数据查询操作,都能高效完成。

三、访问路径

(一)后台路径

管理员可通过访问 “localhost:8080/项目名称 /admin/dist/index.html” 进入管理后台。这一后台路径为管理员提供了一个集中管理系统的入口,管理员可以在此进行系统设置、用户管理、数据维护等重要操作,保障整个教学管理服务平台的正常运转。

(二)前台路径

普通用户可通过 “localhost:8080/项目名称 /front/index.html” 访问前台页面(若无前台功能则无需输入)。前台页面为学生和教师提供了便捷的服务入口,学生可以查看课程信息、个人成绩、校园资讯等;教师可以进行课程管理、成绩录入等操作。前台页面设计注重用户体验,界面简洁直观,方便用户快速找到所需功能。

四、初始账号信息

为方便系统部署和测试,预设了管理员初始账号信息。

(一)管理员账号

账号为 “abo”,此账号拥有系统的最高管理权限,可对系统中的所有数据和功能进行操作和管理。

(二)管理员密码

密码同样为 “abo”。管理员在首次登录后,建议及时修改密码,以保障系统安全。

五、功能概述

(一)管理员功能

管理员在系统中扮演着核心管理角色,其功能涵盖多个重要方面。通过管理员用例图,可以清晰地看到管理员具备对教师信息的全面管理能力,包括教师的入职、离职、信息更新以及权限分配等操作;对学生信息的管理,从学生的入学注册到毕业离校,全程跟踪管理学生的个人信息、学业成绩等;课程管理方面,管理员可以创建、编辑和删除课程,安排课程表,确保教学计划的顺利实施;轮播图信息管理,用于展示校园重要通知、活动信息等,吸引师生关注;此外,管理员还负责学生成绩信息的管理,确保成绩数据的准确性和安全性。管理员通过这些功能,全面把控整个教学管理服务平台的运行。

(二)教师功能

教师功能围绕教学工作展开,通过教师用例图可详细了解其操作权限。教师有权对学生成绩进行管理,包括成绩录入、成绩修改以及成绩查询等操作,确保学生成绩的及时更新和准确记录;对综合事项的管理,涵盖了教学过程中的各类日常事务,如教学进度调整、教学资源申请等;在课程信息管理方面,教师可以编辑课程内容、上传教学资料,丰富课程资源;赛事成绩管理功能,方便教师记录和管理学生在各类学科竞赛中的成绩;同时,教师还负责综合测评的管理,根据学生的学习表现、课堂参与度、作业完成情况等多方面因素,对学生进行全面综合评价。这些功能助力教师高效完成教学任务,提升教学质量。

(三)学生用户功能

学生用户功能旨在为学生提供便捷的学习和生活服务。在用户权限操作方面,学生可通过首页快速访问常用功能。综合测评模块,让学生了解自己在学业、品德、体育等方面的综合表现;校园资讯板块,及时推送校园新闻、活动通知等信息,使学生能够第一时间掌握校园动态;课程信息查询功能,方便学生查看课程安排、课程详情以及教师信息等;个人中心则是学生管理个人信息、查看成绩、设置个性化偏好的专属空间。通过这些功能,学生能够更好地规划学习生活,提升学习体验。

五、功能页面展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、部分代码展示

package com.cl.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;import com.cl.interceptor.AuthorizationInterceptor;@Configuration
public class InterceptorConfig extends WebMvcConfigurationSupport{@Beanpublic AuthorizationInterceptor getAuthorizationInterceptor() {return new AuthorizationInterceptor();}@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(getAuthorizationInterceptor()).addPathPatterns("/**").excludePathPatterns("/static/**");super.addInterceptors(registry);}/*** springboot 2.0配置WebMvcConfigurationSupport之后,会导致默认配置被覆盖,要访问静态资源需要重写addResourceHandlers方法*/@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/**").addResourceLocations("classpath:/resources/").addResourceLocations("classpath:/static/").addResourceLocations("classpath:/").addResourceLocations("classpath:/public/");super.addResourceHandlers(registry);}
}

package com.cl.controller;import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
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.ResponseBody;
import org.springframework.web.bind.annotation.RestController;import com.cl.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.cl.entity.TokenEntity;
import com.cl.entity.UsersEntity;
import com.cl.service.TokenService;
import com.cl.service.UsersService;
import com.cl.utils.CommonUtil;
import com.cl.utils.MPUtil;
import com.cl.utils.PageUtils;
import com.cl.utils.R;
import com.cl.utils.ValidatorUtils;/*** 登录相关*/
@RequestMapping("users")
@RestController
public class UsersController{@Autowiredprivate UsersService userService;@Autowiredprivate TokenService tokenService;/*** 登录*/@IgnoreAuth@RequestMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {UsersEntity user = userService.selectOne(new EntityWrapper<UsersEntity>().eq("username", username));if(user==null || !user.getPassword().equals(password)) {return R.error("账号或密码不正确");}String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());return R.ok().put("token", token);}/*** 注册*/@IgnoreAuth@PostMapping(value = "/register")public R register(@RequestBody UsersEntity user){
//    	ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UsersEntity>().eq("username", user.getUsername())) !=null) {return R.error("用户已存在");}userService.insert(user);return R.ok();}/*** 退出*/@GetMapping(value = "logout")public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok("退出成功");}/*** 密码重置*/@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request){UsersEntity user = userService.selectOne(new EntityWrapper<UsersEntity>().eq("username", username));if(user==null) {return R.error("账号不存在");}user.setPassword("123456");userService.update(user,null);return R.ok("密码已重置为:123456");}/*** 列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,UsersEntity user){EntityWrapper<UsersEntity> ew = new EntityWrapper<UsersEntity>();PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/list")public R list( UsersEntity user){EntityWrapper<UsersEntity> ew = new EntityWrapper<UsersEntity>();ew.allEq(MPUtil.allEQMapPre( user, "user")); return R.ok().put("data", userService.selectListView(ew));}/*** 信息*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") String id){UsersEntity user = userService.selectById(id);return R.ok().put("data", user);}/*** 获取用户的session用户信息*/@RequestMapping("/session")public R getCurrUser(HttpServletRequest request){Long id = (Long)request.getSession().getAttribute("userId");UsersEntity user = userService.selectById(id);return R.ok().put("data", user);}/*** 保存*/@PostMapping("/save")public R save(@RequestBody UsersEntity user){
//    	ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UsersEntity>().eq("username", user.getUsername())) !=null) {return R.error("用户已存在");}userService.insert(user);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody UsersEntity user){
//        ValidatorUtils.validateEntity(user);UsersEntity u = userService.selectOne(new EntityWrapper<UsersEntity>().eq("username", user.getUsername()));if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {return R.error("用户名已存在。");}userService.updateById(user);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){userService.deleteBatchIds(Arrays.asList(ids));return R.ok();}
}
package com.cl.controller;import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.text.ParseException;
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.cl.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.cl.annotation.IgnoreAuth;import com.cl.entity.ZongheshixiangEntity;
import com.cl.entity.view.ZongheshixiangView;import com.cl.service.ZongheshixiangService;
import com.cl.service.TokenService;
import com.cl.utils.PageUtils;
import com.cl.utils.R;
import com.cl.utils.MPUtil;
import com.cl.utils.CommonUtil;
import java.io.IOException;/*** 综合事项* 后端接口* @author * @email * @date 2024-04-08 14:45:26*/
@RestController
@RequestMapping("/zongheshixiang")
public class ZongheshixiangController {@Autowiredprivate ZongheshixiangService zongheshixiangService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,ZongheshixiangEntity zongheshixiang,HttpServletRequest request){String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("xuesheng")) {zongheshixiang.setXuehao((String)request.getSession().getAttribute("username"));}EntityWrapper<ZongheshixiangEntity> ew = new EntityWrapper<ZongheshixiangEntity>();PageUtils page = zongheshixiangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, zongheshixiang), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,ZongheshixiangEntity zongheshixiang, HttpServletRequest request){EntityWrapper<ZongheshixiangEntity> ew = new EntityWrapper<ZongheshixiangEntity>();PageUtils page = zongheshixiangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, zongheshixiang), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( ZongheshixiangEntity zongheshixiang){EntityWrapper<ZongheshixiangEntity> ew = new EntityWrapper<ZongheshixiangEntity>();ew.allEq(MPUtil.allEQMapPre( zongheshixiang, "zongheshixiang")); return R.ok().put("data", zongheshixiangService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(ZongheshixiangEntity zongheshixiang){EntityWrapper< ZongheshixiangEntity> ew = new EntityWrapper< ZongheshixiangEntity>();ew.allEq(MPUtil.allEQMapPre( zongheshixiang, "zongheshixiang")); ZongheshixiangView zongheshixiangView =  zongheshixiangService.selectView(ew);return R.ok("查询综合事项成功").put("data", zongheshixiangView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){ZongheshixiangEntity zongheshixiang = zongheshixiangService.selectById(id);zongheshixiang = zongheshixiangService.selectView(new EntityWrapper<ZongheshixiangEntity>().eq("id", id));return R.ok().put("data", zongheshixiang);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){ZongheshixiangEntity zongheshixiang = zongheshixiangService.selectById(id);zongheshixiang = zongheshixiangService.selectView(new EntityWrapper<ZongheshixiangEntity>().eq("id", id));return R.ok().put("data", zongheshixiang);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody ZongheshixiangEntity zongheshixiang, HttpServletRequest request){zongheshixiang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(zongheshixiang);zongheshixiangService.insert(zongheshixiang);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody ZongheshixiangEntity zongheshixiang, HttpServletRequest request){zongheshixiang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(zongheshixiang);zongheshixiangService.insert(zongheshixiang);return R.ok();}/*** 修改*/@RequestMapping("/update")@Transactionalpublic R update(@RequestBody ZongheshixiangEntity zongheshixiang, HttpServletRequest request){//ValidatorUtils.validateEntity(zongheshixiang);zongheshixiangService.updateById(zongheshixiang);//全部更新return R.ok();}/*** 审核*/@RequestMapping("/shBatch")@Transactionalpublic R update(@RequestBody Long[] ids, @RequestParam String sfsh, @RequestParam String shhf){List<ZongheshixiangEntity> list = new ArrayList<ZongheshixiangEntity>();for(Long id : ids) {ZongheshixiangEntity zongheshixiang = zongheshixiangService.selectById(id);zongheshixiang.setSfsh(sfsh);zongheshixiang.setShhf(shhf);list.add(zongheshixiang);}zongheshixiangService.updateBatchById(list);return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){zongheshixiangService.deleteBatchIds(Arrays.asList(ids));return R.ok();}}

相关文章:

基于srpingboot高校智慧校园教学管理服务平台的设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…...

【小白向】Word|Word怎么给公式标号、调整公式字体和花括号对齐

【小白向】Word&#xff5c;Word怎么给公式标号、调整公式字体和花括号对齐 我的版本&#xff1a;Word 2021 如需快速查看关键步骤&#xff0c;请直接阅读标红部分。 如果遇到无法调整的情况&#xff0c;可以直接下载我的示例文档进行参考&#xff1a;花括号和其他的示例公式.…...

uniapp-x vue 特性

生命周期 在组合式API中&#xff0c;组件可以监听应用和页面的生命周期。但由于应用和页面都有onShow和onHide&#xff0c;导致重名。所以在组合式的组件中监听页面的显示隐藏&#xff0c;改为了onPageShow和onPageHide。 这个和uniapp不一样&#xff0c;uniapp自定义组件无法…...

js逆向-下载某音乐

首先点击播放音乐&#xff0c;会拿到这样一个数据包 ​ 查看参数两个参数都是加密的 ​ 返回包里面有一个url&#xff0c;url拿到访问发现就是音频链接 ​ 访问直接下载下来 ​ 要逆向这两个参数采用xhr断点 ​ 这里加上路径的一部分 ​ 发现这些参数都是加密的 ​ 往下跟栈&am…...

百度OCR调用记录

根据说明&#xff0c;调用测试 设置注册的API Key和Secret Key 调用类&#xff08;官方文档中有&#xff09; 这里改传入路径&#xff1b; 测试问题 1.{"error_code":110,"error_msg":"Access token invalid or no longer valid"} 查到说是 …...

GraphDPI:通过互信息最大化进行图表示学习来消除部分标签歧义

论文源地址 1. 内容概要 本文提出了一种新的弱监督学习方法GraphDPI&#xff0c;解决部分标签学习&#xff08;Partial Label Learning&#xff0c;PLL&#xff09;中的标签歧义问题。GraphDPI结合了图表示学习和互信息最大化&#xff0c;通过图卷积网络&#xff08;GCN&…...

项目实战:基于瑞萨RA6M5构建多节点OTA升级-创建系统最小框架<三>

MCUBoot项目创建完成后,接下来我们需要搭建多节点OTA系统最小框架,再将系统分模块搭建逐层完善,直到实现最终完整系统。开始动手干吧! 目录 一、创建项目 ​二、配置FSP ​2.1 配置RS485属性 ​2.2 配置定时器0 2.3 创建初始化进程并配置属性 ​2.4 创建RS485进程并…...

C/C++模版初阶

文章目录 C/C模版初阶泛型编程函数模版函数模版概念函数模版格式函数模版的原理函数模版的实例化模版参数的匹配原则 类模版类模版的定义格式类模版的实例化 结语 我们今天又见面了&#xff0c;给生活加点<font colorred>impetus&#xff01;&#xff01;开启今天的编程之…...

1.FastAPI简介与安装

文章目录 为什么选择FastAPI&#xff1f;FastAPI支持的功能FastAPI的安装第一个FastAPI应用运行应用 为什么选择FastAPI&#xff1f; python web开发: Django: 适合大型复杂项目&#xff1b;Flask&#xff1a;适合灵活开发&#xff0c;搭建小型项目&#xff1b;FastAPI: 兼具开…...

重生之我在学Vue--第14天 Vue 3 国际化(i18n)实战指南

重生之我在学Vue–第14天 Vue 3 国际化(i18n)实战指南 文章目录 重生之我在学Vue--第14天 Vue 3 国际化(i18n)实战指南前言一、Vue I18n 核心配置1.1 基础环境搭建1.2 初始化配置1.3 全局挂载 二、多语言实现方案2.1 基础使用2.2 动态切换语言2.3 高级功能实现复数处理日期/货币…...

Java集合的底层原理

目录 Collection Arraylist HashSet 介绍 哈希值 哈希表的基本概念 HashSet 的内部实现 HashMap 哈希碰撞的处理 总结 TreeSet 特点 红黑树的特性 红黑规则 TreeSet 的内部实现 1. 存储结构 2. 添加元素&#xff08;重点&#xff09; 3. 查找元素 4. 删除元…...

SPI驱动(九) -- SPI_Master驱动程序

文章目录 参考资料&#xff1a;一、SPI传输概述二、SPI传输的两种方法2.1 旧方法2.2 新方法 参考资料&#xff1a; 参考资料&#xff1a; 参考内核源码: drivers\spi\spi.c 一、SPI传输概述 SPI控制器的作用是发起与它下面挂接的SPI设备之间的数据传输&#xff0c;那么控制…...

MySQL常用函数详解及SQL代码示例

MySQL常用函数详解及SQL代码示例 引言当前日期和时间函数字符串函数数学函数聚合函数结论 引言 MySQL作为一种广泛使用的关系型数据库管理系统&#xff0c;提供了丰富的内置函数来简化数据查询、处理和转换。掌握这些函数可以大大提高数据库操作的效率和准确性。本文将详细介绍…...

Linux 进程的创建、终止、等待与程序替换函数 保姆级讲解

目录 一、 进程创建 fork函数 二、进程的终止&#xff1a; 1. 想明白&#xff1a;终止是在做什么&#xff1f; 2.进程终止的3种情况&#xff1f; a.退出码是什么&#xff1f;存在原因&#xff1f;为什么int main&#xff08;&#xff09;return 0? b.第三种进程终止的情况…...

大数据(1.1)纽约出租车大数据分析实战:从Hadoop到Azkaban的全链路解析与优化

目录 一、背景与数据价值‌ ‌二、技术选型与组件分工‌ ‌三、数据准备与预处理‌ 四、实战步骤详解‌ ‌1. 数据上传至HDFS ‌2. Hive数据建模与清洗‌ 4‌.2.1 建表语句&#xff08;分区表按年份&#xff09;‌&#xff1a; ‌4‌.2.2 数据清洗&#xff08;剔除无效…...

BSCAN2-1:load design

1. DFT Flow Using Tessent Shell Tessent BoundaryScan 具有一个基本的高层次流程顺序。下图展示了将 Tessent BoundaryScan 插入设计所需的高层次步骤顺序。图中的每个步骤都链接到有关可测试性设计&#xff08;DFT&#xff09;流程的更详细信息&#xff0c;包括示例。 Desi…...

个人学习编程(3-18) leetcode刷题

爬楼梯&#xff1a; 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;2 解释&#xff1a;有两种方法可以爬到楼顶。 1. 1 阶 1 阶 2. 2 …...

【css酷炫效果】纯CSS实现立体旋转立方体

【css酷炫效果】纯CSS实现立体旋转立方体 缘创作背景html结构css样式完整代码效果图 想直接拿走的老板&#xff0c;链接放在这里&#xff1a;https://download.csdn.net/download/u011561335/90492014 缘 创作随缘&#xff0c;不定时更新。 创作背景 刚看到csdn出活动了&am…...

Android Fresco 框架兼容模块源码深度剖析(六)

Android Fresco 框架兼容模块源码深度剖析 一、引言 在 Android 开发的多元环境中&#xff0c;兼容性是衡量一个框架优劣的重要指标。Fresco 作为一款强大的图片加载框架&#xff0c;其兼容模块在确保框架能在不同 Android 版本、不同设备和不同图片格式下稳定运行方面发挥着…...

ABSD基于架构的软件设计

基于架构的设计&#xff08;ABSD&#xff09;Architecture-Based Software Design是一种软件设计方法&#xff0c;强调软件架构设计应该由商业、质量和功能需求共同驱动。这种方法允许设计活动在明确项目总体功能框架的前提下开始&#xff0c;并且需求抽取和分析活动应与设计活…...

LLM中lora的梯度更新策略公式解析

LLM中lora的梯度更新策略公式解析 目录 LLM中lora的梯度更新策略公式解析区别如何使用LoRA代码中的参数更新方式二阶导数(如右侧公式关联的Fisher信息)的作用区别 定义与理论来源: 左公式 F ( w i ) = 1 n...

开源数据仓库全解 — 从原理到实践

&#x1f3af; 一、什么是数据仓库&#xff1f; 数据仓库&#xff08;Data Warehouse&#xff0c;简称 DW&#xff09;是面向分析和决策的专门数据存储系统&#xff0c;旨在整合来自多个源的数据&#xff0c;支持复杂查询和大规模分析任务。 特点包括&#xff1a; 面向主题&…...

Mac下Ollama安装全攻略:开启本地大模型之旅

文章目录 Mac下Ollama安装全攻略&#xff1a;开启本地大模型之旅一、Ollama 是什么功能特点优势应用场景 二、安装前准备&#xff08;一&#xff09;系统要求&#xff08;二&#xff09;硬件要求 三、下载安装包&#xff08;一&#xff09;官网下载&#xff08;二&#xff09;其…...

线程大乱斗:从入门到精通,解锁Java并发编程的终极秘籍

目录 什么是线程&#xff1f; jave创建线程方式有几种&#xff1f; 线程中常用的方法 线程状态 多线程 解决线程安全问题 线程通信 何为并发编程&#xff1f; 并发执行和并行执行 线程的三个主要问题&#xff1a; 1、不可见性&#xff1a; 2、乱序性&#xff1a; …...

Web3游戏行业报告

一&#xff0c;gamefi经济 什么是gamefi GameFi是一个缩写&#xff0c;它结合了游戏和去中心化金融(“DeFi”)这两个术语&#xff0c;关注的是游戏玩法如何在去中心化系统中实现货币化。对于游戏而言&#xff0c;只要开放了交易市场&#xff0c;允许玩家自由买卖&#xff0c;…...

hibernate 自动生成数据库表和java类 字段顺序不一致 这导致添加数据库数据时 异常

hibernate 自动生成的数据库表和java类 字段顺序不一致 这导致该书写方式添加数据库数据时 异常 User user new User( null, username, email, phone, passwordEncoder.encode(password) ); return userRepository.save(user);Hibernate 默认不会保证数据库表字段的顺序与 Ja…...

bbbbb

import java.util.ArrayList; import java.util.List; public class KthPermutation { public static String getPermutation(int n, int k) { // 计算阶乘 int[] factorial new int[n]; factorial[0] 1; for (int i 1; i < n; i) …...

《基于Workspace.java的Launcher3改造:HotSeat区域动态阻断文件夹生成机制》

1. 需求背景与技术挑战 在Android 13系统Launcher3定制化开发中&#xff0c;需实现禁止HotSeat区域创建文件夹的功能。原始逻辑中&#xff0c;当用户拖拽应用图标至HotSeat区域相邻图标时&#xff0c;会触发FolderIcon的实例化。本文将深入分析Launcher3的文件夹创建机制&…...

Cursor在内网环境配置自定义DeepSeek API

关键字 Cursor、DeepSeek、API配置、内网代理、HTTP/2 背景环境 使用Cursor集成环境开发程序。但是我使用公司的内网并不能使用cursor自带的模型&#xff0c;于是我就想使用DeepSeek官方的API服务。 环境&#xff1a;Windows 11系统 解决过程 网络检测 首先进行环境检测&am…...

【数据库】掌握MySQL事务与锁机制-数据一致性的关键

在数据库的世界里&#xff0c;数据就是一切。而确保数据的准确性和一致性&#xff0c;则是数据库系统的核心任务之一。想象一下&#xff0c;如果没有合适的机制&#xff0c;当多个用户同时试图修改同一条数据时&#xff0c;会发生什么&#xff1f; chaos&#xff08;混乱&#…...