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

ruoyi-vue自动生成代码

我看到这个ruoyi-vue有自动生成代码的功能,这里我们可以体验一下改如何实现。

还是首先在 ruoyi-admin 下面的文件夹target里面执行  java -jar ruoyi-admin.jar ,然后再 ruoyi-ui 下面执行  npm run dev 

好,项目启动起来了,然后登录到后台里面去,点击系统工具里面的代码生成

image

 点击导入

image

 点上面的全选框,然后确定

image

 提示操作成功,然后效果如下

image

仔细看了看,发现好像还能导入,因为刚才只选择了一页,再操作一次

image

 好了,现在是可以了的

image

我们可以看到,由于这些表的功能系统已经提供了,就在系统管理里面。

image

 所以我们再去生成意义不是很大。

这里,我们重新做一张表出来,SQL就是

CREATE TABLE `salary` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增长编号',`personId` bigint(20) NOT NULL COMMENT '员工编号',`month` date NOT NULL COMMENT '月份',`salary` float NOT NULL COMMENT '工资',PRIMARY KEY (`id`) USING BTREE,KEY `personID_s` (`personId`) USING BTREE,CONSTRAINT `personID_s` FOREIGN KEY (`personId`) REFERENCES `sys_user` (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

这张表是参加比赛前培训的时候老师给我们的,可以看到,这是一张工资表,主键采用int类型,persionId关联了 sys_user 的 user_id,然后month是date类型标识月份,salary是float类型代表工资。

这里面personId是索引键,这是很不错的,同时他也是外键,这个外键在我们实际生产中用的已经比较少了,这可能和行业有关,有的行业需要数据库关系更加强硬,避免数据误删除,有的行业要求数据库没有任何关联,这样方便开发迭代和拆表等,这个各有优劣。

好,现在我们将这段SQL复制然后创建表,如何在这个系统里面实现呢?

还是这个页面,点击创建,然后粘贴SQL,之后点击确定

image

 好了执行成功后我们就看到这条记录了。

image

 点击编辑

image

 来到这个界面

image

 点击基本信息按照图中这样配置表描述后点击提交

image

然后他提示 表单校验未通过,请重新检查提交内容

此时我们需要点击生成信息然后看看哪些没填写,发现是生成功能名没填写,这里录入 "工资",然后提交保存。

image

 这里我们想做工资管理,需要创建一个菜单,我们先创建一个工资管理的菜单。

点击系统管理->菜单管理

image

 点击新增

image

菜单图标那里点击一下,弹出选择图标的组件,然后你搜索 money 能找到一个钱的图标,点击选择。

菜单名称填写 工资管理 ,路由地址写 salary,然后显示排序写个1,之后保存。

salary

好了,现在有了菜单,你刷新一下页面,可以看到这样

 image

 当你点击这个页面的时候,会出现一个空白页面

image

 然后我们去系统工具->代码生成里面找到salary点击一下编辑,找到生成信息 里面的 上级菜单

image

点击之后选择工资管理然后提交

image

 之后我们来到这里点击一下生成代码

image

 这个时候看到了这样的效果。

image

 点击就让我们下载一个 ruoyi.zip 的压缩包,这里我们改个名字,叫 salary_code.zip

下载完毕,我们打开压缩包,看到这样的结构

image

 然后我们把 main 里面的 resources 和 java 两个文件夹 拷贝到 ruoyi-admin/src/main 里面去,他会自动合并

image

然后把vue里面的 views 和 api 两个文件夹拷贝到 ruoyi-ui/src 里面去,他也会自动合并

image

 然后我们找到 salaryMenu.sql 打开它, 发现内容是这样的。

-- 菜单 SQL
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('工资', '2000', '1', 'salary', 'system/salary/index', 1, 0, 'C', '0', '0', 'system:salary:list', '#', 'admin', sysdate(), '', null, '工资菜单');-- 按钮父菜单ID
SELECT @parentId := LAST_INSERT_ID();-- 按钮 SQL
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('工资查询', @parentId, '1',  '#', '', 1, 0, 'F', '0', '0', 'system:salary:query',        '#', 'admin', sysdate(), '', null, '');insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('工资新增', @parentId, '2',  '#', '', 1, 0, 'F', '0', '0', 'system:salary:add',          '#', 'admin', sysdate(), '', null, '');insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('工资修改', @parentId, '3',  '#', '', 1, 0, 'F', '0', '0', 'system:salary:edit',         '#', 'admin', sysdate(), '', null, '');insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('工资删除', @parentId, '4',  '#', '', 1, 0, 'F', '0', '0', 'system:salary:remove',       '#', 'admin', sysdate(), '', null, '');insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('工资导出', @parentId, '5',  '#', '', 1, 0, 'F', '0', '0', 'system:salary:export',       '#', 'admin', sysdate(), '', null, '');

我们拷贝这段内容,来到命令行窗口里面,先选择 ry-vue 数据库,然后粘贴SQL

mysql> use ry-vue;
Database changed
mysql> -- 菜单 SQL
mysql> insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)-> values('工资', '2000', '1', 'salary', 'system/salary/index', 1, 0, 'C', '0', '0', 'system:salary:list', '#', 'admin', sysdate(), '', null, '工资菜单');
Query OK, 1 row affected (0.02 sec)mysql> 
mysql> -- 按钮父菜单ID
mysql> SELECT @parentId := LAST_INSERT_ID();
+-------------------------------+
| @parentId := LAST_INSERT_ID() |
+-------------------------------+
|                          2007 |
+-------------------------------+
1 row in set, 1 warning (0.00 sec)mysql> 
mysql> -- 按钮 SQL
mysql> insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)-> values('工资查询', @parentId, '1',  '#', '', 1, 0, 'F', '0', '0', 'system:salary:query',        '#', 'admin', sysdate(), '', null, '');
Query OK, 1 row affected (0.01 sec)mysql> 
mysql> insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)-> values('工资新增', @parentId, '2',  '#', '', 1, 0, 'F', '0', '0', 'system:salary:add',          '#', 'admin', sysdate(), '', null, '');
Query OK, 1 row affected (0.02 sec)mysql> 
mysql> insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)-> values('工资修改', @parentId, '3',  '#', '', 1, 0, 'F', '0', '0', 'system:salary:edit',         '#', 'admin', sysdate(), '', null, '');
Query OK, 1 row affected (0.01 sec)mysql> 
mysql> insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)-> values('工资删除', @parentId, '4',  '#', '', 1, 0, 'F', '0', '0', 'system:salary:remove',       '#', 'admin', sysdate(), '', null, '');
Query OK, 1 row affected (0.01 sec)mysql> 
mysql> insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)-> values('工资导出', @parentId, '5',  '#', '', 1, 0, 'F', '0', '0', 'system:salary:export',       '#', 'admin', sysdate(), '', null, '');
Query OK, 1 row affected (0.03 sec)

好了,执行完毕后,我们继续来到页面,点击工资管理,发现下面有个子菜单工资

image

 然后我们点击工资,发现系统接口404异常。这是为什么呢?

image

 这是由于我们刚刚粘贴进去了一些生成的java文件,但是没有重新编译,所以我们需要再执行一次这些启动步骤。

1.首先把服务ctrl+c停止掉,在项目目录下执行 mvn clean install -Dmaven.test.skip=true 

2.然后再在 ruoyi-admin 下面的文件夹target里面执行  java -jar ruoyi-admin.jar,不过可能提示你 Error: Unable to access jarfile ruoyi-admin.jar,这是因为你需要重新进一下这个目录,可以执行 cd ../ && cd target && java -jar ruoyi-admin.jar  

3.然后就在前端的 ruoyi-ui 里面执行  npm run dev 

好了,所有服务重新启动,然后让你重新登录,登录后就可以看到这样的页面了。

image

 我们来加两条数据。

image

image

看列表:

image

 点击修改,也能拿到修改的数据:

image

 点击删除,弹出确认框,点击确定就删除了:

image

根据搜索框也能搜到对应的数据:

image

 

看来,其基础的增加删除修改查询,都已经做好了。

 好了,这已经是手把手的教学,让你知道如何使用ruoyi-vue项目来创建一个功能对表实现基本的增删改查了,感兴趣的可以自己体验一下。

 

相关文章:

ruoyi-vue自动生成代码

我看到这个ruoyi-vue有自动生成代码的功能,这里我们可以体验一下改如何实现。 还是首先在 ruoyi-admin 下面的文件夹target里面执行 java -jar ruoyi-admin.jar ,然后再 ruoyi-ui 下面执行 npm run dev 好,项目启动起来了,然后登录到后台里面去,点击系统工具里面的代码…...

拥抱新一代 Web 3D 引擎,Three.js 项目快速升级 Galacean 指南

本文从多个维度对比 Galacean 和 Three.js 两款Web3D 引擎的差异,并介绍拟我形象项目从Three.js 切换到 Galacean 以后带来的提升以及项目迁移的心得,为其他 Three.js 项目升级到 Galacean 提供参考。作者: vivo 互联网前端团队- Su Ning 本文从多个维度对比 Galacean 和 Th…...

Fast IO 模板

放在 using namespace std; 后面即可。 namespace fast_IO { #define FASTIO #define IOSIZE 100000char ibuf[IOSIZE], obuf[IOSIZE];char *p1 = ibuf, *p2 = ibuf, *p3 = obuf; #ifdef ONLINE_JUDGE #define getchar() ((p1==p2)and(p2=(p1=ibuf)+fread(ibuf,1,IOSIZE,stdin)…...

kylin V11安装mysql8.4.5(glibc.2.28版本)

环境:OS:kylin V11mysql:8.4.5 glibc2.28(建议不要安装glibc.2.17版本) 查看系统glibc版本[root@localhost soft]# ldd --versionldd (GNU libc) 2.38Copyright (C) 2023 Free Software Foundation, Inc.This is free software; see the source for copying conditions. There…...

iOS 上架 App 流程全解析 苹果应用发布步骤、App Store 审核流程、ipa 文件上传与 uni-app 打包实战经验

本文系统解析 iOS 上架 app 流程,涵盖苹果应用从开发者账号注册、证书准备、uni-app 打包、ipa 上传、TestFlight 测试,到 App Store 审核与发布的完整步骤,结合多工具协作,总结高效实用的上架经验。对开发者来说,应用上线的最后一道门槛就是 iOS 上架 app 流程。 相比 An…...

P6801 花式围栏

题目传送门数学、计数类。题意 在 \(n\) 个同一底线上宽 \(w\),高 \(h\),给定的相邻矩形中,数出在方格上的任意形状的小矩形的个数。 \(1\leq n\leq 10^5,1\leq w,h \leq 10^9\) 题解 我们规定竖直方向上为高,水平方向上为的宽。 要研究 \(n\) 个,就要先研究一个。 我们考…...

ms sql dml 操作

ms sql dml 操作 --建表 select * into tablenew from tableold...

黑白染色方法

主要有 \(3\) 种方法:DFS / BFS / DSUDFS直接遍历整张图染色,判断是否产生冲突 init(){for(int i=1;i<=n;i++) col[i]=-1; } bool dfs(int u,int c){col[u]=c;for(auto v:e[u]){if(col[v]==-1) return dfs(v,c^1);else if(col[v]==c) return false;}return true; } ... bo…...

Windows 数字签名获取与验证详解

在 Windows 的安全体系中,数字签名扮演着“软件身份证”的角色。它可以证明一个程序确实来自某个发布者,并且在分发的过程中没有被篡改。 当下载一个系统更新、驱动程序,或者安装第三方应用时,操作系统往往会验证数字签名,确保软件来源合法、安全。那么,作为开发者或安全…...

转化率提升300%,火山引擎Data Agent以“一客一策”突破企业营销增长瓶颈

火山引擎近日分享了其企业级数据智能体Data Agent如何通过AI技术,解决企业营销增长中的核心问题。根据过去半年的客户实践,Data Agent在智能营销领域展现出显著成效,通过自然语言交互大幅降低工具使用门槛,并能深度整合企业内外部数据,实现从洞察到行动的闭环决策。面对企…...

矩阵模板

struct mat{int m[N][N];//将A.m[i][j] 改成 A[i][j] 这种格式int* operator [] (size_t i) {return m[i];}const int* operator [] (size_t i) const {return m[i];}mat() {memset(m,0,sizeof m);}//初始化矩阵mat operator * (const mat& b) const {//矩阵乘法mat res;fo…...

快读模板

int read(){int x=0,f=1;char c=getchar();while(c<48||c>57){if(c==-) f=-1;c=getchar();}while(c>47&&c<58) x=x*10+(c^48),c=getchar();return x*f; }本文来自博客园,作者:_AzureSky,转载请注明原文链接:https://www.cnblogs.com/-AzureSky-/p/1909…...

ipadװwindowsϵͳshell

如何在iPad上安装Windows系统Shell:详解与实践指南 随着科技的不断进步,用户对于设备功能的需求也在不断增加。iPad作为一款便携式的智能平板电脑,其强大的硬件性能和优秀的生态系统赢得了广大用户的喜爱。然而,对于一些专业用户或技术爱好者来说,仅使用iOS系统可能无法满…...

cpu的各种寄存器及其功能

cpu的功能 指令控制 完成取指令,分析指令,执行指令的操作 操作控制 产生完成一条指令所需要的操作信号,从而控制这些部件按指令的要求正确执行 时间控制 严格控制各种操作信号出现的时间,持续时间以及出现的时间顺序 数据加工 对数据进行逻辑和算数运算 中断处理 对计算机运…...

如何关闭电视的ACR功能及其对隐私保护的重大意义

本文详细解析智能电视自动内容识别(ACR)技术的工作原理与隐私风险,提供三星、LG、索尼、海信、TCL五大品牌电视的ACR关闭步骤,帮助用户有效保护个人观看数据免受商业监控。如何关闭电视的ACR功能(及其重大影响) 智能电视操作系统带来便利的同时,也引发了新的隐私担忧——尤…...

huggingface 模型权重文件

文件类型文件名示例用途模型权重 pytorch_model.bin 或 model.safetensors 包含模型训练后的参数权重配置文件 config.json 包含模型架构和超参数配置词汇表文件 vocab.json, vocab.txt, tokenizer.json 分词器所需的词汇映射分词器配置 tokenizer_config.json 分词器的配置参数…...

vscode设置单击选中带连字符的单词

1、打开 VSCode 设置打开设置搜索 wordSeparators,找到 Editor: Word Separators 选项。2、移除 - 字符默认值类似:`~!@#$%^&*()-=+[{]}\\|;:",.<>/?删除 -(连字符),使其变成:`~!@#$%^&*()=+[{]}\\|;:",.<>/?这样 - 就不会被视为单词分隔…...

P4147 玉蟾宫(悬线法)

P4147 玉蟾宫#include <bits/stdc++.h> using namespace std;const int maxn = 1e3 + 10;int n,m; int a[maxn][maxn] = {{0,0}}; int l[maxn][maxn],r[maxn][maxn],h[maxn][maxn]; int ans;int main(){ios::sync_with_stdio(0);cin.tie(0);cin >> n >> m;fo…...

全局平衡二叉树

发现自己在大力 DS 这个领域有一些欠缺,所以来补一下。 所谓全局平衡二叉树(GBST)就是 LCT 的静态版本。 我们对树先重剖,然后把每条重链上的点拎出来建一个 BST,满足这个 BST 的中序遍历就是这个重链从上到下遍历得到的序列。然后让这个 BST 的根指向这个点原树上的父亲。…...

Transactional注解的方法里 spring怎么知道我用的是哪个jdbctemplate实例

> 这是一个非常好的问题,它触及了 Spring 框架中声明式事务管理(`@Transactional`)和底层资源管理(`JdbcTemplate`)如何协同工作的核心。 简单直接的回答是:**Spring 并不知道,也不关心你的方法内部使用的是哪个 `JdbcTemplate` 实例。它只关心当前线程是否已经绑定…...

根据参数查询

根据参数查询<!-- 根据参数查询--><select id="listByMap" resultMap="ResultMapManage" parameterType="map">select <include refid="Manage_field"/>from manage where 1=1<include refid="Manage_wh…...

关于非侵入式脑机接口面向C端一个应用想法

目前,脑机接口行业发展如火如荼,但应用仍高度集中在医疗领域,比如运动功能康复等。这类方向不仅技术相对成熟,也更易获得商业回报——毕竟无论是医院还是患者,都更愿意为“恢复健康”买单。然而,若希望脑机接口能像汽车、手机那样,真正融入普通人的日常生活,成为不可或…...

Blelloch并行扫描算法

本文介绍了一个可以用于并行化串行累计操作的Blelloch算法,可以通过用空间换时间+并行计算的方法,来降低特定计算的时间复杂度。这里我们给出了算法原理的大致介绍,以及基于Numpy的算法代码实现。技术背景 由于现代计算机技术的发展,算法的并行能力越来越强大。所以当我们考…...

国产化DevOps生态崛起:Gitee如何赋能企业数字化转型

国产化DevOps生态崛起:Gitee如何赋能企业数字化转型 在数字化转型浪潮中,中国企业的软件研发模式正经历深刻变革。随着信创战略的深入推进,构建自主可控的DevOps工具链已成为各行业技术负责人的核心任务。作为国内领先的代码托管平台,Gitee正通过其本土化优势与开放性生态,…...

【IEEE出版】2025年电气、控制与人工智能国际学术会议(ICOECAI 2025)

2025年电气、控制与人工智能国际学术会议(ICOECAI 2025) 2025 International Conference on Electrical, Control and Artificial Intelligence 在这里看会议官网详情 2025年10月24-26日 中国广州 截稿时间:见官网 接受/拒稿通知:投稿后5天内 收录检索:IEEE Xplore、EI …...

采购计划 vs 物料需求计划(MRP),采购新手最容易搞混的两份“清单”!

很多采购新手一上手就懵了:手里同时有两份计划一个叫“采购计划” 一个叫“MRP(物料需求计划)”你一看,都是要买东西啊,干嘛分两份?https://s.fanruan.com/m15ta 很多企业常常把这两份清单混为一谈,结果掉进坑里——采购超预算、缺料、库存积压……问题全来了。 今天,我…...

P10299 [CCC 2024 S5] Chocolate Bar Partition

题目传送门DP、状态设计优化。题意 将一个 \(2 \times N(N \le 2\times 10^5)\) 的矩阵分为尽可能多的联通块,使得每个联通块中的数的平均值都相等,求最多可以将矩阵分为多少个联通块。 题解 显然是 DP,并且复杂度要在 \(O(N \log N)\) 或者 \(O(N)\)。 平均值相等很难维护,…...

实用指南:企业实施数字化转型时常见的挑战

实用指南:企业实施数字化转型时常见的挑战pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !impo…...

当ARMxy+AI边缘计算落地水泵行业就碰撞出怎样的火花?

水泵,这个看似再普通不过的设备,正在城市供水、楼宇二次供水、农业灌溉、工业循环水等场景里默默运行。它们是“水的搬运工”,也是能耗大户、运维难点。然而,在 数字化浪潮下,水泵行业也开始面临三个迫切问题:能耗高:传统 PID 调节方式,难以精准匹配用水曲线;运维难:…...

QN8035 FM芯片驱动开发

一、驱动开发基础配置 1.1 硬件接口配置通信协议:标准I2C接口(设备地址:写0x20/读0x21) 关键引脚: SDA/SCL:I2C数据线(需接4.7kΩ上拉电阻) XTAL_IN/XTAL_OUT:外部晶振输入(支持16MHz/24MHz) RDS_IN:RDS数据输入(需连接解码芯片)1.2 寄存器配置要点 #define QN80…...

再见 Claude Code,我选择了 Codex!真香!!

大家好,我是R哥。 最近,我放弃 Claude Code 了,选择了 CodeX,真香! 为什么放弃 Claude Code? 第一,是因为 Claude 全面封禁了中国控股公司使用,让我很不爽。推荐阅读:真行!Claude 全面封禁中国。。 第二,我用不惯 Claude,我一直用的 ChatGPT,为了使用 Claude Code…...

2025中国DevOps工具生态全景:本土化突围与智能化跃迁

2025中国DevOps工具生态全景:本土化突围与智能化跃迁 在全球数字化转型浪潮席卷之下,DevOps工具市场正以年复合增长率24%的速度扩张。中国信通院最新数据显示,2023年国内DevOps平台市场规模达58亿元,其中本土解决方案占比首次突破40%。这场由自动化向智能化的产业升级中,工…...

字符串转 python 对象 eval

s = [ { label: "苹果", value: "origin_event_data", icon: "icon-a", color: "#409EFF", bgColor: "#ECF5FF", borderColor: "#D9ECFF", }, { label: "橘子…...

蛋白多序列比对美化

1、用snapgene进行多序列比对,导出alin文件 2、用python进行多序列比对美化点击查看代码 from Bio import AlignIO import os# ====== 用户参数 ====== alignment_file = "比对.fa" # 输入比对文件(fasta/clustal) alignment_format = "fasta" html_…...

Gitee推出Remote mcp-gitee:云端MCP服务开启智能协作新时代

Gitee推出Remote mcp-gitee:云端MCP服务开启智能协作新时代 中国领先的代码托管平台Gitee近日正式发布Remote mcp-gitee服务,这项基于云端的MCP Server解决方案将彻底改变开发团队的协作方式。作为三月发布的本地版MCP Server的云端升级版本,Remote mcp-gitee无需复杂部署即…...

Gitee DevOps平台:驱动中国企业数字化转型的核心引擎

​# Gitee DevOps平台:驱动中国企业数字化转型的核心引擎 在全球数字化浪潮席卷的今天,软件开发与运维的效率直接决定了企业的市场竞争力。作为国内领先的一站式DevOps平台,Gitee通过其本土化优势和技术创新能力,正在帮助数千家企业实现研发效能的显著提升,成为中国企业数…...

10 类多布局扫描图像数据集:支撑 OCR 精度提升与 VLM 微调,覆盖广告 / 简历 / 论文等场景的计算机视觉训练数据

一、引言与背景 在人工智能与计算机视觉技术深度融合的当下,光学字符识别(OCR)与视觉语言模型(VLM)已成为文档智能处理领域的核心支撑技术,广泛应用于金融票据识别、企业文档管理、学术数据挖掘等诸多场景。然而,现有模型在面对真实世界中多样的文档类型、复杂的排版布局…...

国产化Excel开发组件Spire.XLS教程:C# 轻松将 DataSet 导出到 Excel

在 C# 开发中,DataSet 常用于管理内存中的数据,通常来源于数据库查询或系统集成过程。本文将介绍如何使用 Spire.XLS for .NET 在 C# 中导出 DataSet 到 Excel,包括创建 Excel 文件、将多个 DataTable 分别写入不同工作表、应用格式化,以及处理大数据量导出等场景。在 C# 开…...

Mysql:Docker的Mysql容器加载Levenshtein 距离算法脚本,实现“相似度匹配”

前言MySQL自带的Like函数是“包含匹配”,即查询目标需要包含指定条件字符才会匹配到;而“相似度匹配”是匹配目标与条件字符是否相似,例如:“这是北京大学”与 “北大”就会有相似度,这样就会查出这类数据信息,只不过它的相似度分数值比较低而已。为了实现这个“相似度匹…...

树链剖分

树链剖分介绍 树链剖分是什么?主要用来处理什么问题 树链剖分(Heavy-Light Decomposition, HLD)。1. 树链剖分的定义 树链剖分是一种 把树分解成若干条链 的算法技巧。 在一棵树上,我们把每个节点的“重儿子”挑出来(通常是子树规模最大的儿子),把它和父亲连成 重边,其…...

【2025-09-17】慢慢得到

20:00人的一切都应该是美的,无论面孔,还是衣裳、心灵或思想。——契诃夫连续两天都没能送孩子上学,因为约了客户都是早上9点半开会,所以必须得提前出门。提前的时间刚好碰上何太的上班时间,然后就一起出门了。考虑到在客户现场停车不方使,于是就赠何太的车去到市区再打车…...

Excel处理控件Aspose.Cells教程:如何使用Python在Excel中创建下拉列表

Excel 中的下拉列表是数据验证最实用的功能之一。在本教程中,我们将向您展示如何借助Aspose.Cells使用 Python 在 Excel 中创建下拉列表。Excel 中的下拉列表是数据验证最实用的功能之一。它允许您将用户输入限制为预定义的选项,减少错误并保持数据输入的一致性。无论您将其称…...

STM32的电子钟功能实现

一、系统架构设计 1.1 硬件组成框图 graph TD A[STM32F103C8T6] --> B[OLED0.96] A --> C[按键矩阵] A --> D[蜂鸣器] B --> I2C总线 C --> EXTI中断 1.2 核心模块划分时间管理:SysTick定时器中断(1ms精度) 显示驱动:SSD1306 OLED中文显示 用户交互:4x4矩阵…...

kylin V11安装mysql8.0.41(glibc2.28)

环境:OS:kylin V11mysql:8.0.41 glibc2.28查看系统glibc版本[root@localhost soft]# ldd --versionldd (GNU libc) 2.38Copyright (C) 2023 Free Software Foundation, Inc.This is free software; see the source for copying conditions. There is NOwarranty; not even for…...

__cpuid

__cpuid 是一个内联汇编函数,用于在 C 和 C++ 代码中获取有关 CPU 信息的指令集扩展。 这条指令利用了 x86 和 x86_64 处理器的 CPUID 指令,通过查询处理器支持的功能、型号、 制造商等硬件信息,为开发者提供了对 CPU 的低层访问。 /* x86-64 uses %rbx as the base registe…...

Gitee崛起:国产代码托管平台如何重塑企业研发效能新格局

Gitee崛起:国产代码托管平台如何重塑企业研发效能新格局 在全球数字化转型浪潮下,代码托管平台已从单纯的版本控制工具进化为企业研发效能的核心枢纽。随着国内企业对数据主权、研发自主可控需求的提升,国产代码托管平台正迎来前所未有的发展机遇。在这一背景下,Gitee凭借其…...

字节SQL数据库开发手册

1.前言:SQL在字节跳动数据驱动中的核心地位。2.SQL基础与字节跳动最佳实践。2.1.字节跳动常用SQL语法与规范。2.2.性能优化:高效SQL编写技巧..2.3.窗口函数在复杂分析中的应用。3.SQL在字节跳动核心业务场景的应用..3.1.用户增长分析..3.1.1.案例:用户留存率与活跃度分析..3…...

完整教程:视频上传以及在线播放

完整教程:视频上传以及在线播放pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; fon…...

C++ STL 常用算法

C++ 标准模板库(STL)提供了丰富的算法库(定义在 <algorithm> 头文件中),这些算法多为通用函数模板,可配合容器和迭代器高效操作数据。 1、非修改序列算法 这些算法不会改变它们所操作的容器中的元素。 1.1 find 和 find_iffind(begin, end, value):查找第一个等于…...

Gitee:中国开发者生态的成长引擎与数字化转型的加速器

Gitee:中国开发者生态的成长引擎与数字化转型的加速器 在中国软件产业快速发展的今天,Gitee作为本土领先的代码托管与协作开发平台,正以独特的本土化优势和技术创新,成为推动中国开发者生态繁荣的关键力量。从初创团队到大型企业,Gitee提供的全流程开发解决方案正在重新定…...