自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(116)
  • 收藏
  • 关注

原创 报表类系统数据验证设计思路

本文档提出了一套分层、可配置、可扩展的数据验证设计思路,用于保障CRUD表单系统的数据质量和业务规则合规性。核心设计采用前端验证、接口验证、业务验证和数据库约束四层架构,支持必填、格式、长度等基础验证以及唯一性、关联性等业务验证。技术实现上通过验证服务、规则引擎和验证器工厂等组件,提供REST API接口和可配置化管理。文档详细阐述了验证规则设计、性能优化策略、错误处理机制等最佳实践,并提出了插件化验证器、规则引擎集成等扩展方案。该方案通过分层验证机制、动态规则配置和高效验证处理,有效确保数据完整性、业务合

2025-11-04 10:15:00 1491

原创 报表类系统后端API设计思路

本文提出了一套CRUD表单增强接口设计方案,重点解决当前系统在处理批量数据时效率低下、缺乏统一验证机制等问题。方案包含三类高优先级接口:1)批量操作接口,支持批量增删改查和状态变更;2)数据验证接口,提供字段级、表单级和业务规则验证;3)数据导入接口,支持Excel/CSV/JSON格式的标准化导入。通过统一的数据结构设计、事务管理和错误处理机制,这些接口可显著提升数据处理效率(批量接口减少90%网络请求)、保障数据质量(验证规则动态可配)并简化数据迁移流程(模板化导入)。

2025-11-03 16:53:45 1026

原创 git重写历史

本文全面介绍Git重写历史的核心操作,包括基础概念、常用命令及实战场景。重点讲解交互式变基(git rebase -i)、重置(git reset)和挑选提交(git cherry-pick)等关键命令,提供合并小提交、修改提交信息等典型场景的解决方案。特别强调安全注意事项,警告不要重写已推送的公共历史,并推荐备份和--force-with-lease推送方式。文档还包含最佳实践、故障排除方法和实用脚本,帮助开发者维护清晰、规范的提交历史。

2025-10-24 17:39:21 1039

原创 影刀:自动化测试网页应用

系统采用模块化设计,支持多模块测试、异常捕获、自动截图和结果归档,实现了从配置到报告的全流程自动化测试。

2025-10-24 17:29:41 903

原创 深入理解SQL语句的执行顺序

SQL(Structured Query Language)是关系型数据库的标准查询语言,虽然语法结构看似线性排列,但实际执行顺序与书写顺序并不一致。不同数据库(如:MySQL、PostgreSQL、SQL Server、Oracle)虽然在语法细节和优化器实现上存在差异,但SQL语句实际执行顺序的基本逻辑一致。理解SQL语句在数据库内部的真实执行流程,对我们写出高效、正确、可维护的SQL查询语句非常重要。

2025-10-16 11:10:23 545

原创 前后端架构对比

在 Web 开发中,前后端架构模式直接影响项目开发效率、用户体验与扩展性。本文从核心定义、工作原理、技术栈、优缺点、适用场景等维度,对传统前后端不分离架构与现代前后端分离架构进行全面解析。

2025-09-19 16:57:43 795

原创 智能体环境配置测试

本文档记录了从Java环境升级到SonarQube成功启动的完整操作过程,包括环境检查、软件安装、配置调整和服务启动等关键步骤。

2025-09-19 10:47:45 796

原创 基于 Hutool 工具类实现 SM2 加密解密完整实践(附完整代码)

SM2 作为国家密码管理局推荐的非对称加密算法,在金融、政务、物联网等领域有着广泛应用。相较于 RSA 算法,SM2 在安全性、性能和密钥长度上均具备显著优势。本文将基于 Hutool 工具类,从密钥生成、加密解密实现到实际接口调用,完整讲解 SM2 加密解密的落地实践,并提供可直接运行的代码示例。

2025-09-05 13:57:21 1101

原创 大语言模型基础

NLP的基本任务:从分词、词性标注到语义分析文本预处理:清洗、标准化、停用词处理语言模型基础:N-gram模型和词向量语言的复杂性:歧义性和上下文依赖性

2025-09-04 17:23:15 327

原创 Trae配置rules与MCP

通过四个月与Cursor的AI结对编程实践,总结出三大核心经验:1)精准描述需求(如"拆分函数提升复用性"优于笼统优化);2)开发前系统规划(拆解任务后分步实现);3)建立协作规则(通过rules规范AI行为)。这种"付费结对编程"的最大价值不仅是效率提升,更在于培养结构化思维模式——从模糊指令到精准表达,从无序开发到系统规划。

2025-08-21 17:33:33 1757

原创 【Java】基础概念-构造函数详解

构造函数 = 类名 + 无返回值类型 + 用于初始化对象的特殊方法。

2025-08-18 09:38:25 416

原创 Java 中实体类、VO 与 DTO 的深度解析:定义、异同及实践案例

理解三者的区别并在实践中正确使用,能有效降低代码耦合度,提高系统的可维护性和安全性。在实际项目中,建议结合具体业务场景设计字段,避免过度设计或滥用。

2025-08-18 09:13:51 863

原创 常用的软件测试工具

匹配测试类型:性能测试选 JMeter,API 测试选 Postman,安全测试选 Burp Suite;结合应用场景:移动端优先 Charles,Web 端优先 Fiddler,Oracle 数据库优先 PL/SQL;兼顾自动化需求:需集成 CI/CD 流程时,优先选择支持命令行调用的工具(如 Postman+Newman、JMeter)。掌握这些工具的核心功能,并根据项目实际需求灵活组合,才能构建高效、精准的测试体系,为软件质量保驾护航。

2025-08-06 14:34:10 653

原创 Linux命令-top

top命令是Linux系统中常用的性能监控工具,其基本格式为top[options],常见选项包括:-d指定更新间隔,-b用于批次模式输出,-n设置执行次数。top界面显示系统整体信息,包括当前时间、运行时长、用户数、负载平均值(1/5/15分钟),以及任务统计(总进程数、运行/睡眠/僵尸进程数)。CPU状态展示用户态/内核态使用率、空闲率等指标。内存信息包含物理内存和交换分区的使用情况。进程列表详细显示各进程的PID、用户、优先级、内存占用、CPU使用率等关键数据,帮助用户实时监控系统资源使用情况。

2025-08-06 14:25:30 867

原创 ClickHouse 多表 JOIN 时 SELECT * 语法错误解析与解决方案

摘要:ClickHouse 19.5.3.1版本不支持多表JOIN时使用SELECT *语法,会报错"Multiple JOIN do not support asterisks yet"。这是由于列名冲突、性能问题和语义歧义等限制。解决方案包括明确指定列名、使用表别名、处理列名冲突或升级版本。最佳实践建议避免使用SELECT *,明确列引用,并提前检查表结构。

2025-07-18 16:54:54 595

原创 达梦数据库不兼容 SQL_NO_CACHE 报错解决方案

达梦数据库(DMDBMS)是国产关系型数据库,其语法体系与 Oracle 更为接近,并未实现 MySQL 的查询缓存机制,自然也不支持 SQL_NO_CACHE 这类专属于 MySQL 的语法。在 MySQL 中,SQL_NO_CACHE 是一个查询修饰符,用于告知数据库不要将此次查询的结果缓存到查询缓存(Query Cache)中。同时,也不会从查询缓存中读取数据。因此,在使用达梦数据库时,若 SQL 中存在 SQL_NO_CACHE 关键字,就会导致语法解析失败,抛出异常。

2025-07-16 14:55:10 538

原创 开源流程引擎Camunda简介

Camunda是一套独立运行的流程引擎系统,支持BPMN2.0、DMN和CMMN标准规范,用于业务流程建模和执行。其核心组件包括:ProcessEngine(负责流程解析和执行)、DecisionEngine(执行决策模型)、Modeler(图形化建模工具)、REST API(系统集成接口)和JobExecutor(任务调度)。相较于传统开发模式,Camunda将流程控制逻辑转移至引擎,前端只需处理界面交互,后端专注业务接口实现,引擎则自动管理流程状态、任务分配和接口调用顺序。

2025-06-26 17:16:22 777

原创 MyBatis 中的 resultType 与 resultMap:区别、使用场景及示例详解

在使用 MyBatis 进行数据库操作时,我们经常需要将查询结果映射到 Java 对象中。MyBatis 提供了两种主要的方式来进行结果映射:resultType 和 resultMap。本文将详细介绍这两者的区别、适用场景,并通过代码示例帮助你更好地理解和应用。

2025-06-25 16:57:58 985

原创 如何成为一个靠谱的程序员

靠谱程序员是软件开发项目的核心保障,主要体现在三个方面:准确的需求认知能力(需深入理解业务逻辑,区分目的与过程)、可靠的交付质量(程序无返工、文档完整规范)以及及时的反馈机制(技术难点和进度问题的快速响应)。通过正面案例展示,靠谱程序员不仅能确保项目顺利推进,更能提升团队整体效率,为个人职业发展奠定坚实基础。培养这些专业素养有助于建立职场信任,获得更多发展机会。

2025-06-19 16:49:20 674

原创 俞敏洪、村上春树如何做时间管理

高效时间管理的核心在于专注与节奏。俞敏洪以30分钟为单位安排工作,利用碎片时间完成主线任务;村上春树强调在精力充沛时段处理要事,保持规律作息和运动。《松弛感》建议明确任务优先级,采用多频迭代法提升效率。实践表明,制定周计划并拆解到日、早上优先处理重要事项、使用番茄工作法保持持续进度是最有效的策略。关键在于找到适合自己的节奏,将时间转化为真正的生产力。

2025-06-19 16:46:10 475

原创 BeanUtil.copyProperties()进行属性拷贝时如何忽略NULL值——CopyOptions配置详解

配置项类型默认值说明booleanfalse是否忽略NULL值ignoreCasebooleanfalse是否忽略字段名称大小写booleanfalse是否忽略拷贝错误editableClass<?null限制目标对象类型String[]null要忽略的属性名数组overridebooleantrue是否覆盖已有值null字段名称映射关系。

2025-06-13 10:31:09 1015

原创 SQL 中整数除法陷阱:为什么你的百分比总是 0%?

为了避免在 SQL 中遇到百分比或比率计算结果为 0% 的问题,务必记住在除法运算中,如果分子或分母可能导致小数结果,并且它们当前是整数类型,请务必使用 CAST 或 CONVERT 函数将其中的至少一个操作数转换为浮点数类型。这能确保数据库执行浮点数除法,从而得到精确的计算结果。

2025-06-12 14:07:41 475

原创 MySQL中高内聚原则的实践:如何设计清晰、可维护的数据库结构

表结构设计:按业务实体拆分,避免大宽表;视图设计:按维度划分,职责单一;存储过程/函数:功能专一,避免多功能混合;定期重构:发现低内聚结构及时调整。高内聚不仅是面向对象编程中的核心理念,在数据库设计中同样具有重要意义。只有坚持这一原则,才能让我们的数据库系统更加健壮、灵活、可持续发展。

2025-06-09 16:35:45 446

原创 【VMware】此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态。

如果已在 BIOS/固件设置中禁用 Intel VT-x,或主机自更改此设置后从未重新启动,则 Intel VT-x 可能被禁用。(1) 确认 BIOS/固件设置中启用了 Intel VT-x 并禁用了“可信执行”。找到Intel 相关设置:每个主板BIOS开启虚拟化不同,根据BIOS中关键词Intel(R) Virtualization Technology、Virtual、Virtualization、VT-X、SVM、虚拟化技术等,来找到VT设置进行开启。可以先做验证此电脑是否开启了虚拟化。

2025-06-09 09:18:48 1081

原创 Doris 中聚合函数使用常见问题及解决方案

在 Doris 中使用聚合函数时,需要注意以下几点:数据类型匹配:确保过滤条件中的数据类型与表中的数据类型匹配。聚合函数要求:确保所有非聚合列都包含在 GROUP BY 子句中,或者所有列都必须是聚合函数的结果。使用 MAX() 聚合函数:在某些情况下,使用 MAX() 可以避免重复累加问题,同时保持数据的准确性。

2025-06-09 09:03:51 938

原创 BigInteger和Long的区别

“有符号选Long,无符号用BigInteger;性能优先看场景,超大计算不犹豫”。合理选择类型,既能避免程序崩溃,又能提升运行效率。

2025-04-18 08:48:45 1168

原创 窗口函数over()

PARTITION BY + ORDER BY → 分组内排序计算(如累计值)PARTITION BY + 窗口范围 → 分组内指定计算范围(如移动平均)

2025-04-18 08:44:44 757

原创 像搭积木一样玩转前端布局

刚学前端的小伙伴们,是不是经常被这些问题困扰?❓ 为什么我的div总是乱跑?❓ 导航栏的按钮死活对不齐?❓ 手机和电脑显示效果完全不一样?

2025-04-16 16:00:00 847

原创 数据库主从复制

简单来说,它像一台摄像机,忠实记录所有对数据库进行修改的 SQL 语句(如 INSERT/UPDATE/DELETE)或表结构变更(如 CREATE/ALTER)等操作。),而非底层数据页的物理修改细节(这是 redo log 的特性)。其核心思想是通过将主库(Master)的数据变更异步/同步复制到从库(Slave),使从库与主库保持数据一致。GTID(全局事务标识符)是 MySQL 主从复制中用于唯一标识事务的机制,它解决了传统复制依赖 binlog 文件名和位置的痛点。

2025-04-16 15:00:00 1764

原创 Mybatis中dao(mapper)层几种传参方式

某些情况下,#{}和${}可以互相替换,但是有些情况下必须使用${},比如order by的字段是sql参数。#{} 占位符,相当于?,sql预编译,可以防止sql注入。2、${}非预编译(直接拼接sql,不能防止sql注入)1、 #{}预编译 (可防止sql注入)${} 原样替换,相当于sql拼接。二、dao层的四种传参方式 ↓。

2025-04-16 08:55:53 316

原创 使用 SQL CTE(公共表表达式)优化数据查询的实践

在数据分析和数据库管理中,SQL 查询的效率和可读性是至关重要的。随着数据量的不断增加,复杂的查询变得越来越难以管理和理解。为了解决这个问题,SQL 提供了一种强大的工具——公共表表达式(CTE,Common Table Expressions)

2025-04-16 08:50:15 418

原创 单点登录(SSO)实战:基于Vue与Spring Boot的深度实现

在分布式系统架构中,单点登录(Single Sign-On)如同企业级应用的"万能钥匙",用户只需在统一认证中心完成一次身份验证,即可访问所有互信系统。其核心在于建立可信的令牌传递机制,我们选择JWT(JSON Web Token)作为载体,结合OAuth2简化模式实现轻量级SSO方案。

2025-04-16 08:38:09 558

原创 NMOS管与PMOS管的区别与总结

栅极(Gate, G):通过施加电压控制导电沟道的形成。漏极(Drain, D):电流输出端。源极(Source, S):电流输入端。

2025-03-21 08:33:29 1948

原创 登顶!目前大模型竞技排行榜!

lmarena.aiChatbot Arena大模型竞技场,开放且免费的AI测评网lmarena.ai。

2025-03-21 08:30:54 990

原创 Trae如何使用插件Mybatis Log & MybatisX转换SQL语句?

字节出品的Trae作为VSCode的套皮开发前端非常顺手,但是为了白嫖无限量的Claude 3.7,还是尝试使用Trae开发Java。今天就说一下如何将插件Mybatis Log & MybatisX接入 Trae 查看转换后的SQL语句。

2025-03-21 08:24:42 867

原创 Mybatis和Mybatis-plus实现逻辑删除

​什么是物理删除,什么是逻辑删除?物理删除就是直接干掉数据库的数据,无法再恢复回来。但在企业级项目中,物理删除已经非常少见,而是使用逻辑删除。逻辑删除本质上是个update操作,通过一个标记字段来识别某个数据是否被隐藏起来,但是对于用户来说看不到了自然以为就是删除了。

2025-03-20 17:39:58 836

原创 达梦数据库

DM8是达梦公司在总结DM系列产品研发与应用经验的基础上,坚持开放创新、简洁实用的理念,推出的新一代自研数据库。DM8吸收借鉴当前先进新技术思想与主流数据库产品的优点,融合了分布式、弹性计算与云计算的优势,对灵活性、易用性、可靠性、高安全性等方面进行了大规模改进,多样化架构充分满足不同场景需求,支持超大规模并发事务处理和事务-分析混合型业务处理,动态分配计算资源,实现更精细化的资源利用、更低成本的投入。一个数据库,满足用户多种需求,让用户能更加专注于业务发展。

2025-03-20 17:25:05 2183

原创 Vue项目中如何使用SVG图标?

如果项目中有大量 SVG 图标,推荐使用 SVG Symbol Sprite 的方式,这样可以减少 HTTP 请求次数并优化性能。如果需要动态加载 SVG 图标,可以结合 Vue 的动态组件功能。Iconify 是一个支持多种图标的库,可以直接在项目中使用。可以借助一些成熟的第三方库来简化 SVG 图标的管理,例如。减少 HTTP 请求,性能优化明显,适合大量图标。将所有 SVG 图标合并到一个文件中,并使用。提供丰富的图标集合,无需手动管理图标文件。文件,配置对 SVG 文件的处理规则。

2025-03-14 08:59:21 674

原创 为什么不建议使用自增ID作为参与业务计算处理逻辑的字段?

自增ID是工具,不是答案

2025-03-13 17:10:09 980

原创 MySQL字符串处理神器:SUBSTRING_INDEX函数深度解析

SUBSTRING_INDEX 是MySQL中用于按分隔符截取字符串的核心函数,特别适合处理包含固定分隔符的文本数据(如日志、路径、标签等)。日志示例:[2023-08-20] ERROR=5003 Connection timeout → 输出:5003。大小写敏感:SUBSTRING_INDEX('A-B-C', 'b', 1) → 返回完整字符串。多字符分隔符:支持多字符分隔符,如SUBSTRING_INDEX(str, '||', 2)输入:"王慧(网络组)" → 输出:"王慧"

2025-03-13 17:00:56 1085

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除