Springboot+vue个人健康管理系统的设计与实现

文章目录

    • 前言
    • 详细视频演示
    • 具体实现截图
      • 后端框架SpringBoot
      • 前端框架Vue
      • 持久层框架MyBaits
    • 成功系统案例:
    • 代码参考
    • 数据库
    • 源码获取

前言

博主介绍:CSDN特邀作者、985高校计算机专业毕业、现任某互联网大厂高级全栈开发工程师、Gitee/掘金/华为云/阿里云/GitHub等平台持续输出高质量技术内容、深耕Java、小程序、前端、python等技术领域和毕业项目实战,以及程序定制化开发、全栈讲解。

💯文末获取源码+数据库💯
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以找我咨询,希望帮助更多的人。

详细视频演示

视频演示

具体实现截图

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

后端框架SpringBoot

Spring Boot允许开发者快速构建出既可以独立运行又满足生产级别标准的Spring基础应用程序。此框架通过提供一系列便捷的工具和服务,极大地促进了基于Spring的应用开发工作的效率和质量。通过提供一系列大型项目中常用的默认配置,Spring Boot最大化减少配置文件的使用,开发者能够迅速启动和运行Spring应用程序。

Spring Boot通过约定优于配置的原则,避免了许多传统Spring应用开发时繁琐的配置,该框架支持对内嵌服务器的自动配置,如Tomcat、Jetty或Undertow,从而简化了Web应用的部署过程。

前端框架Vue

Vue.js是一种流行的JavaScript框架,它具有许多优势。其中,Vue.js的核心优势之一是虚拟DOM技术。虚拟DOM是一个内存中的数据结构,它在实现高效的DOM操作方面发挥了重要作用。

Vue.js采用了响应式数据绑定、虚拟DOM、组件化等现代化技术,为开发者提供了一种灵活、高效、易于维护的开发模式。当数据发生变化时,Vue.js能够自动更新UI,开发者无需手动更新UI,从而能够更加专注于数据处理。

持久层框架MyBaits

MyBatis是一个开源的持久层框架,它可以帮助开发者简化数据库操作的编写和管理。MyBatis的核心思想是将SQL语句和Java代码分离,通过XML或注解的方式来描述数据库操作,从而实现了数据访问层的解耦和灵活性。

MyBatis的优势主要包括以下几点:

简化数据库操作:MyBatis通过提供强大的SQL映射功能,可以将Java对象与数据库表进行映射,开发者无需手动编写繁琐的SQL语句,大大简化了数据库操作的编写和维护。

灵活的SQL控制:MyBatis支持动态SQL,可以根据不同的条件和逻辑来动态生成SQL语句,使得查询、更新等操作更加灵活和可控。

缓存支持:MyBatis提供了一级缓存和二级缓存的支持,可以有效减少数据库的访问次数,提高系统性能。

可扩展性强:MyBatis采用插件机制,可以方便地扩展和定制自己的功能,满足各种不同的业务需求。

所有项目均为博主亲自收集、开发并严格测试,确保源码完整、可运行,无缺失依赖或兼容性问题!同学们拿到后就能使用!博主具备多年高级开发经验,能深入讲解代码架构、核心逻辑及技术难点,助你高效掌握项目精髓。

成功系统案例:

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

代码参考

package com.jyx.healthsys.controller;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.conditions.query.ChainQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jyx.Data_unification.Unification;
import com.jyx.healthsys.entity.*;
import com.jyx.healthsys.service.IDetailService;
import com.jyx.healthsys.service.ISportInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;import java.util.HashMap;
import java.util.List;
import java.util.Map;@RestController
@RequestMapping("/sport")
public class SportInfoController {@Autowiredprivate ISportInfoService sportInfoService;//获取所有运动知识@GetMapping("/getAllSportInfo")public Map<String, Object> getAllSportInfo() {List<SportInfo> sportInfos = sportInfoService.getAllSportInfos();Map<String, Object> response = new HashMap<>();Map<String, Object> data = new HashMap<>();data.put("sportInfos", sportInfos);response.put("code", 20000);response.put("message", "success");response.put("data", data);return response;}@GetMapping("/getSportList")public Unification<Map<String,Object>> getSportList(@RequestParam(value = "sportType", required = false) String sportType,@RequestParam("pageNo") Long pageNo,@RequestParam("pageSize") Long pageSize) {LambdaQueryWrapper<SportInfo> wrapper = new LambdaQueryWrapper<>(); // 构建查询条件wrapper.eq(StringUtils.hasLength(sportType), SportInfo::getSportType, sportType); // 如果sportType参数不为空,则添加运动类型查询条件Page<SportInfo> page = new Page<>(pageNo, pageSize); // 构建分页对象,指定页码和每页大小sportInfoService.page(page, wrapper); // 调用userService的分页查询方法,查询指定页码、每页大小和查询条件的用户列表Map<String, Object> data = new HashMap<>(); // 创建响应数据对象data.put("total", page.getTotal()); // 将查询到的用户总数放入响应数据中data.put("rows", page.getRecords()); // 将查询到的用户列表放入响应数据中return Unification.success(data); // 返回成功响应和响应数据}@PostMapping("/add")public Unification<?> addSport(@RequestBody SportInfo sport) {boolean isSuccess = sportInfoService.addSport(sport);if (isSuccess) {return Unification.success("新增成功");} else {return Unification.fail("新增失败,运动类型已存在");}}@PutMapping("/update")public Unification<?> updateSport(@RequestBody SportInfo sport){sportInfoService.updateSport(sport);return Unification.success("修改成功");}@GetMapping("/{id}")public Unification<SportInfo> getSportById(@PathVariable("id") Integer id){// 通过用户id调用userService的getUserById方法获取用户信息SportInfo sportInfo = sportInfoService.getSportById(id);// 将获取到的用户信息封装成Unification类型并返回return  Unification.success(sportInfo);}@DeleteMapping("/{id}")public Unification<SportInfo> deletSportById(@PathVariable("id") Integer id){sportInfoService.deletUserById(id);return  Unification.success("删除成功");}}

数据库

DROP TABLE IF EXISTS `detail`;
CREATE TABLE `detail`  (`id` int(5) NOT NULL AUTO_INCREMENT,`sport_type` varchar(255) CHARACTER SET utf8  NOT NULL,`disease` varchar(255) CHARACTER SET utf8  NULL DEFAULT NULL,`method` varchar(255) CHARACTER SET utf8  NULL DEFAULT NULL,`notes` varchar(255) CHARACTER SET utf8  NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 29 CHARACTER SET = utf8  ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of detail
-- ----------------------------
INSERT INTO `detail` VALUES (1, '体操', '心脏病', '适度运动,不要剧烈运动,保持心情愉快', '避免在气温过高或过低的环境下运动');
INSERT INTO `detail` VALUES (2, '太极拳', '高血压', '轻柔的动作,缓慢而稳定的呼吸', '保持心情平稳,不要过度紧张');
INSERT INTO `detail` VALUES (3, '快跑', '关节炎', '选择跑步道或软质地面进行,适当热身', '避免过度的冲击力,注意饮食,保持合理体重');
INSERT INTO `detail` VALUES (4, '慢跑', '哮喘', '避免在雾霾天气、气温过高或过低的环境下运动', '控制呼吸,使用合适的防护装备');
INSERT INTO `detail` VALUES (6, '抖空竹', '眼疾', '注意眼睛的休息和保护,不要盯着空竹太久', '避免在光线昏暗的环境下玩抖空竹');
INSERT INTO `detail` VALUES (7, '抽陀螺', '高血压', '避免剧烈运动,不要在悬崖陡坡等高度场所运动', '避免在气温过高或过低的环境下运动');
INSERT INTO `detail` VALUES (8, '拔河', '心脏病', '注意不要过度用力,保持呼吸稳定', '人数相对平衡,避免人数不足或过多');
INSERT INTO `detail` VALUES (9, '排球', '扭伤', '注意热身,保持肌肉灵活', '避免在硬地面和湿滑地面上运动,注意落地姿势');
INSERT INTO `detail` VALUES (10, '放风筝', '过敏性鼻炎', '避免在花粉高发季节和污染严重的地区放风筝', '选择空气清新的场地,不要在风力过大的环境下放风筝');
INSERT INTO `detail` VALUES (11, '橄榄球', '骨折', '选择合适的防护装备,不要使用过度生硬的球', '规范比赛流程,避免激烈对抗');
INSERT INTO `detail` VALUES (12, '游泳', '心脏病、心律失常、哮喘、高血压', '游泳是一项全身性运动,但对于患有心脏病、心律失常、哮喘等疾病的人来说,游泳容易加重病情,甚至引发突发病情,因此应该避免。而患有高血压的人可以适当游泳,但是游泳时间和强度不宜过大。', '游泳时一定要注意安全,避免溺水事故的发生;同时注意保持游泳池的清洁卫生,避免感染泳池病毒。');
INSERT INTO `detail` VALUES (13, '滑冰', '骨折、关节炎、心脏病、高血压', '滑冰是一项高风险运动,容易导致骨折、关节炎等损伤,对于患有心脏病、高血压等疾病的人来说,也需要注意保护自己,避免剧烈运动。', '滑冰时要穿好防护装备,注意自己的身体状况,避免过度运动造成身体损伤。');
INSERT INTO `detail` VALUES (14, '爬山', '高血压、心脏病、脑血管疾病', '选择较平缓的山路,避免过于陡峭的路段;掌握正确的呼吸方法,避免缺氧;', '切勿贪多嚼不烂,随时可以补充水分和能量;注意天气变化,避免在大雾、大风、雷雨天气攀登;');
INSERT INTO `detail` VALUES (15, '瑜伽', '脊椎病、膝盖受伤、关节病变', '选择适合自己身体情况的瑜伽动作;呼吸要自然流畅,不要憋气或过度呼吸;动作要准确,避免造成不必要的压力或伤害;', '练习前应注意饮食、排便,不宜在空腹或饱腹时练习;练习时注意周围环境,保持安静的氛围;练习后应适当休息,以便身体恢复;');
INSERT INTO `detail` VALUES (16, '篮球', '心脏病、脑血管疾病、骨折', '保持适度的身体活动,不要过度用力;掌握正确的篮球技巧,避免不必要的伤害;在比赛中要遵守规则,注意安全;', '合理安排练球时间和强度,不要过度训练;练球时应注意防护措施,如佩戴护具等;注意饮食,保证充足的营养摄入;');
INSERT INTO `detail` VALUES (17, '网球', '肩部受伤、腕关节疼痛、脱臼', '掌握正确的发球姿势和击球技巧;加强肌肉的训练,提高关节的灵活性;注意休息,避免过度疲劳;', '选择合适的球拍和鞋子,避免不必要的伤害;保持场地干燥,防止滑倒;定期进行身体检查,及时发现问题;');
INSERT INTO `detail` VALUES (18, '羽毛球', '肌肉劳损', '逐渐增加训练量,充足的热身与休息,避免过度用力', '注意营养、充足的睡眠,避免疲劳、缺氧');
INSERT INTO `detail` VALUES (19, '越野跑', '膝盖疼痛', '选择软质路面,加强膝关节周围肌肉的锻炼', '注意营养、饮食的平衡,避免过度减重、缺氧');
INSERT INTO `detail` VALUES (20, '足球', '膝盖疼痛', '选择软质路面,加强膝关节周围肌肉的锻炼', '注意营养、饮食的平衡,避免过度减重、缺氧');
INSERT INTO `detail` VALUES (21, '跆拳道', '扭伤、拉伤', '逐渐增加训练量,充足的热身与休息,避免过度用力', '注意营养、充足的睡眠,避免疲劳、缺氧');
INSERT INTO `detail` VALUES (22, '跑步', '膝盖疼痛', '选择软质路面,加强膝关节周围肌肉的锻炼', '注意营养、饮食的平衡,避免过度减重、缺氧');
INSERT INTO `detail` VALUES (23, '跳板', '脊椎损伤', '注意技术细节,逐渐增加训练难度,避免过度用力', '可选择针对脊柱的力量训练,加强腰背肌群的锻炼');
INSERT INTO `detail` VALUES (24, '跳皮筋', '肌肉劳损', '逐渐增加训练量,充足的热身与休息,避免过度用力', '注意营养、充足的睡眠,避免疲劳、缺氧');
INSERT INTO `detail` VALUES (25, '跳绳', '膝盖或脚踝疼痛、肌肉酸痛、运动损伤', '手持跳绳,双脚交替跳跃,以规定时间内跳跃次数最多者获胜。', '需要注意跳绳时的姿势和呼吸。');
INSERT INTO `detail` VALUES (26, '跳高', '扭伤、肌肉拉伤、腰椎间盘突出、关节炎', '又称跳高栏,运动员在助跑后跳过竞赛高度悬挂的水平杠,以完成跳高动作,高度逐渐升高,未能过去的选手则被淘汰。', '需要注意跳高时的跑道、助跑和跳跃姿势。');
INSERT INTO `detail` VALUES (27, '踢毽子', '扭伤、拉伤', '将毽子踢起来并在空中进行一系列动作,规定时间内完成动作最多的人获胜。', '需要注意毽子的质量和天气情况。');
INSERT INTO `detail` VALUES (28, '长跑', '心脏病、高血压、哮喘、慢性阻塞性肺疾病', '一项有氧耐力运动,比赛时要跑过规定的路程,规定时间内到达终点的人获胜。', '需要注意长跑时的呼吸和水分补给。');-- ----------------------------
-- Table structure for j_body
-- ----------------------------
DROP TABLE IF EXISTS `j_body`;
CREATE TABLE `j_body`  (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(255) CHARACTER SET utf8  NULL DEFAULT NULL,`age` int(11) NULL DEFAULT NULL,`gender` varchar(10) CHARACTER SET utf8  NULL DEFAULT NULL,`height` float NULL DEFAULT NULL,`weight` float NULL DEFAULT NULL,`bloodSugar` float NULL DEFAULT NULL,`bloodPressure` varchar(10) CHARACTER SET utf8  NULL DEFAULT NULL,`bloodLipid` float NULL DEFAULT NULL,`heart_rate` decimal(10, 0) NULL DEFAULT NULL,`vision` int(10) NULL DEFAULT NULL,`sleep_duration` decimal(10, 0) NULL DEFAULT NULL,`sleep_quality` text CHARACTER SET utf8  NULL,`smoking` tinyint(1) NULL DEFAULT NULL,`drinking` tinyint(1) NULL DEFAULT NULL,`exercise` tinyint(1) NULL DEFAULT NULL,`food_types` text CHARACTER SET utf8  NULL,`water_consumption` decimal(10, 0) NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 32 CHARACTER SET = utf8  ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of j_body
-- ----------------------------
INSERT INTO `j_body` VALUES (1, 'admin', 18, '男', 1.8, 50, 25, '16', 25, 80, 220, 8, '好', 0, 0, 0, '蔬菜', 1500);
INSERT INTO `j_body` VALUES (13, 'Alice', 18, '男', 1.8, 50, 20, '24', 15, 65, 200, 8, '好', 0, 0, 0, '水果', 1500);
INSERT INTO `j_body` VALUES (31, 'test', 18, '男', 1.8, 50, 20, '20', 15, 80, 200, 7, '好', 0, 0, 0, '水果', 2000);-- ----------------------------
-- Table structure for j_body_notes
-- ----------------------------
DROP TABLE IF EXISTS `j_body_notes`;
CREATE TABLE `j_body_notes`  (`notes_id` int(255) NOT NULL AUTO_INCREMENT,`id` int(11) NULL DEFAULT NULL,`name` varchar(255) CHARACTER SET utf8  NULL DEFAULT NULL,`age` int(11) NULL DEFAULT NULL,`gender` varchar(10) CHARACTER SET utf8  NULL DEFAULT NULL,`height` float NULL DEFAULT NULL,`weight` float NULL DEFAULT NULL,`bloodSugar` float NULL DEFAULT NULL,`bloodPressure` varchar(10) CHARACTER SET utf8  NULL DEFAULT NULL,`bloodLipid` float NULL DEFAULT NULL,`heart_rate` decimal(10, 0) NULL DEFAULT NULL,`vision` int(10) NULL DEFAULT NULL,`sleep_duration` decimal(10, 0) NULL DEFAULT NULL,`sleep_quality` text CHARACTER SET utf8  NULL,`smoking` tinyint(1) NULL DEFAULT NULL,`drinking` tinyint(1) NULL DEFAULT NULL,`exercise` tinyint(1) NULL DEFAULT NULL,`food_types` text CHARACTER SET utf8  NULL,`water_consumption` decimal(10, 0) NULL DEFAULT NULL,`Date` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (`notes_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 42 CHARACTER SET = utf8  ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of j_body_notes
-- ----------------------------
INSERT INTO `j_body_notes` VALUES (20, 13, 'Alice', 25, '男', 1.8, 80, 20, '20', 20, 100, 100, 9, '好', 0, 0, 0, '豆类', 3000, '2023-04-13 06:01:06');
INSERT INTO `j_body_notes` VALUES (21, 13, 'Alice', 25, '男', 1.8, 80, 20, '25', 23, 80, 120, 9, '好', 0, 0, 0, '豆类', 3000, '2023-04-13 06:01:52');
INSERT INTO `j_body_notes` VALUES (25, 1, 'admin', 20, '男', 1.7, 56, 10, '15', 20, 80, 20, 10, '好', 1, 1, 1, '鱼类', 1500, '2023-04-14 17:36:29');
INSERT INTO `j_body_notes` VALUES (26, 1, 'admin', 20, '男', 1.7, 56, 8, '13', 20, 120, 50, 10, '好', 1, 1, 1, '鱼类', 1500, '2023-04-14 17:36:31');
INSERT INTO `j_body_notes` VALUES (27, 1, 'admin', 20, '男', 1.7, 56, 15, '20', 20, 70, 65, 10, '好', 1, 1, 1, '鱼类', 1500, '2023-04-15 17:36:32');
INSERT INTO `j_body_notes` VALUES (28, 1, 'admin', 20, '男', 1.7, 56, 21, '8', 20, 80, 75, 10, '好', 1, 1, 1, '鱼类', 1500, '2023-04-16 17:36:34');
INSERT INTO `j_body_notes` VALUES (29, 1, 'admin', 20, '男', 1.7, 56, 15, '10', 20, 110, 80, 10, '好', 1, 1, 1, '鱼类', 1500, '2023-04-17 17:36:38');
INSERT INTO `j_body_notes` VALUES (30, 1, 'admin', 20, '男', 1.7, 56, 17, '16', 20, 75, 120, 10, '好', 1, 1, 1, '鱼类', 1500, '2023-04-18 17:36:40');
INSERT INTO `j_body_notes` VALUES (31, 1, 'admin', 20, '男', 1.7, 56, 8, '25', 20, 130, 150, 10, '好', 1, 1, 1, '鱼类', 1500, '2023-04-19 17:36:43');
INSERT INTO `j_body_notes` VALUES (32, 1, 'admin', 20, '男', 1.7, 56, 11, '7', 20, 80, 150, 10, '好', 0, 0, 0, '鱼类', 1500, '2023-04-20 17:36:45');
INSERT INTO `j_body_notes` VALUES (34, 31, 'test', 18, '男', 1.8, 50, 20, '20', 15, 80, 50, 7, '好', 0, 0, 0, '水果', 2000, '2023-05-02 18:04:57');
INSERT INTO `j_body_notes` VALUES (35, 31, 'test', 18, '男', 1.8, 50, 20, '20', 15, 80, 100, 7, '好', 0, 0, 0, '水果', 2000, '2023-05-02 18:05:03');
INSERT INTO `j_body_notes` VALUES (36, 31, 'test', 18, '男', 1.8, 50, 20, '20', 15, 80, 150, 7, '好', 0, 0, 0, '水果', 2000, '2023-05-02 18:05:05');
INSERT INTO `j_body_notes` VALUES (37, 31, 'test', 18, '男', 1.8, 50, 20, '20', 15, 80, 200, 7, '好', 0, 0, 0, '水果', 2000, '2023-05-02 18:05:08');
INSERT INTO `j_body_notes` VALUES (38, 13, 'Alice', 25, '男', 1.8, 80, 26, '21', 23, 90, 140, 9, '好', 0, 0, 0, '豆类', 3000, '2023-04-13 06:01:52');
INSERT INTO `j_body_notes` VALUES (39, 13, 'Alice', 25, '男', 1.8, 80, 26, '16', 18, 79, 160, 9, '好', 0, 0, 0, '豆类', 3000, '2023-04-13 06:01:52');
INSERT INTO `j_body_notes` VALUES (40, 13, 'Alice', 18, '男', 1.8, 50, 20, '24', 15, 65, 200, 8, '好', 0, 0, 0, '水果', 1500, '2023-05-06 15:15:17');
INSERT INTO `j_body_notes` VALUES (41, 1, 'admin', 18, '男', 1.8, 50, 25, '16', 25, 80, 220, 8, '好', 0, 0, 0, '蔬菜', 1500, '2023-05-06 15:23:27');

源码获取

如需交流/获取资料,请先【关注+私信】我,私信获取源码~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/90055.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/90055.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构 --栈和队链

一.栈的概念一种特殊的线性表&#xff0c;只能从固定的一端插入和删除元素。栈中元素遵循先进后出的原则。二.模拟实现public class MyStack {public int size;public int[] array;public MyStack(){array new int[10];}private void grow(){array Arrays.copyOf(array,array…

文档处理控件TX Text Control系列教程:使用 C# .NET 将二维码添加到 PDF 文档

PDF 文档通常是合同、发票、证书和报告的最终格式。尽管它们在设计上是静态的&#xff0c;但用户现在希望能够与它们交互、验证信息并直接从这些文件访问数字服务。这时&#xff0c;二维码就变得至关重要。 PDF 文档中的二维码将印刷或数字内容与动态在线体验连接起来。用户只需…

Google Chrome 谷歌浏览器全部版本集合

Google Chrome 谷歌浏览器全部版本集合 Collection of all software versions of Google Chrome. 项目介绍 本项目为Google Chrome谷歌浏览器的全部版本集合&#xff0c;方便大家下载旧版本使用。 因为Gitee项目限制仓库1G大小&#xff0c;所以许多谷歌浏览器版本无法上传。…

论文略读:Towards Safer Large Language Models through Machine Unlearning

ACL 2024大型语言模型&#xff08;LLMs&#xff09;的迅猛发展展现了其在多个领域的巨大潜力&#xff0c;这主要得益于其广泛的预训练知识和出色的泛化能力。然而&#xff0c;当面对问题性提示&#xff08;problematic prompts&#xff09;时&#xff0c;LLMs 仍然容易生成有害…

深度学习 ---参数初始化以及损失函数

深度学习 —参数初始化以及损失函数 文章目录深度学习 ---参数初始化以及损失函数一&#xff0c;参数初始化1.1 固定值初始化1.1.1 全0初始化1.1.2 全1初始化1.3 任意常数初始化1.2 随机初始化一&#xff0c;参数初始化 神经网络的参数初始化是训练深度学习模型的关键步骤之一…

JS--M端事件

移动端&#xff08;Mobile 端&#xff0c;简称 M 端&#xff09;开发中&#xff0c;由于设备特性&#xff08;触摸屏、手势操作等&#xff09;&#xff0c;需要处理一些与桌面端不同的事件。这些事件主要针对触摸交互、手势识别等场景 一、触摸事件&#xff08;Touch Events&am…

Linux网络编程-tcp

tcp、udp对比&#xff1a;UDP1. 特点无连接&#xff1a;无需建立连接即可发送数据。不可靠&#xff1a;不保证数据顺序或完整性。低延迟&#xff1a;适合实时性要求高的场景。2. 应用场景视频/音频流传输&#xff08;如直播&#xff09;。DNS 查询、在线游戏。TCP1. 特点面向连…

记一次flink资源使用优化

一.现状分析 现有任务的资源配置如下&#xff0c;根据ui监控中Garbage Collection可以发现&#xff0c;此任务频繁的发生GC&#xff0c;且老年代GC时间较久二.整体memory使用分析如下Framework Heap&#xff08;框架堆内存&#xff09;用于Flink框架自身的堆内存&#xff08;如…

Vue底层换成啥了?如何更新DOM的?

摘要&#xff1a;之前的vue是使用虚拟 DOM的&#xff0c;但是Vue 3.6 带来了一个意义重大的更新&#xff1a; Vapor Mode 渲染模式。Vue 渲染策略的演进&#xff1a; Vue 1.x&#xff1a; 基于模板渲染策略&#xff0c;直接将模板转换为DOM元素&#xff0c;并为每个DOM元素创建…

0722 数据结构顺序表

Part 1.顺序表的代码一.顺序表的内存申请head.h: typedef int datatype;typedef struct sqlist {//数据元素datatype data[MAXSIZE];//顺序表长度int len;}*sqlist; //*sqlist的作用: //sqlist:struct Sqlist * sqlist create();head.c: sqlist create() {sqlist list (sqlist)…

为何在 Vue 的 v-model 指令中不能使用可选链(Optional Chaining)?

Vue 的 v-model 是实现组件与数据双向绑定的核心指令之一&#xff0c;它本质上是一个语法糖&#xff0c;用于简化对表单元素和组件 props 的同步更新。然而&#xff0c;在 Vue 3&#xff08;以及 Vue 2 的某些模式下&#xff09;&#xff0c;开发者尝试在 v-model 中使用 JavaS…

基于单片机智能药盒/智能药箱/定时吃药系统

传送门 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品题目速选一览表 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品题目功能速览 概述 本设计实现了一种基于单片机的智能药盒&#xff0c;系统以微控制器&#xff08;如STM32&#xff…

(25)python+playwright自动化处理单选和多选按钮-中

1.简介上一篇中讲解和介绍的单选框有点多&#xff0c;而且由于时间的关系&#xff0c;决定今天讲解和分享复选框的相关知识。2.什么是单选框、复选框&#xff1f;单选按钮一般叫raido button&#xff0c;就像我们在电子版的单选答题过程一样&#xff0c;单选只能点击一次&#…

Nginx IP授权页面实现步骤

目标&#xff1a;一、创建白名单文件sudo mkdir -p /usr/local/nginx/conf/whitelist sudo touch /usr/local/nginx/conf/whitelist/temporary.conf二、创建Python认证服务文件路径&#xff1a;/opt/script/auth_server.pyimport os import time from flask import Flask, requ…

2025年7月中科院一区-向光生长优化算法Phototropic growth algorithm-附Matlab免费代码

引言 本期介绍一种新的元启发式算法——向光生长优化算法Phototropic growth algorithm&#xff0c;PGA。灵感来自植物细胞在阳光下的生长模式。于2025年7月最新发表在JCR 1区&#xff0c;中科院1区 SCI 期刊 Knowledge-Based Systems。 该算法将生物学启发的确定性生长行为与…

poi-excel-添加水印

1、官网快速指南 https://poi.apache.org/components/spreadsheet/quick-guide.html 访问如上地址可以查看到poi的相关操作方式&#xff1a; How to create a new workbookHow to create a sheetHow to create cellsHow to create date cellsWorking with different types of…

STM32 开发的鼠标:技术详解与实现指南

概述基于STM32微控制器开发的鼠标是一种高度可定化的输入设备解决方案&#xff0c;广泛应用于工业控制、嵌入式系统、特殊人机交互等领域。相比传统鼠标&#xff0c;STM32鼠标具有以下优势&#xff1a;高度可定制性&#xff1a;可添加特殊功能按键、传感器集成低功耗设计&#…

GoLang教程007:打印空心金字塔

4.6 案例一&#xff1a;打印金字塔编写一个程序&#xff0c;可以接收一个整数&#xff0c;表示层数&#xff0c;打印出金字塔。1️⃣第一步&#xff1a;打印一个矩形 package mainimport "fmt"func main() {// i表示层数for i : 1; i < 3; i {// j表示每层打印多少…

iOS开发 Swift 速记3:运算符与控制结构

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…

ElasticSearch中需要注意的点,附官方文档解读

1.批量更新数量大小限制 https://www.elastic.co/guide/cn/elasticsearch/guide/current/bulk.html#_How_Big_Is_Too_Big 整个批量请求都需要由接收到请求的节点加载到内存中&#xff0c;因此该请求越大&#xff0c;其他请求所能获得的内存就越少。批量请求的大小有一个最佳值…