自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 在 IntelliJ IDEA 中关闭 DevTools(通常指 Spring Boot DevTools 热部署功能)

在 IntelliJ IDEA 中关闭 DevTools(通常指 Spring Boot DevTools 热部署功能)需要从等多个层面协同操作,才能确保彻底关闭,避免出现“删了依赖但热部署仍在生效”的常见问题。

2026-11-05 16:42:18 299

原创 SQL Server 【本地图片写入数据库】和【数据库图片写入本地】

N'queryout "D:\seals\CNAS章.bmp" -T -f "D:\seals\bmp.fmt"';缺点是需要一台装了 PowerShell 的机器跑这个脚本。,直接跳过 21/23 的 upsert 即可,或反过来用上面的方案一把这张图导出到。优点是导出的就是原始字节,无编码问题;下面给三种方案,按“改动最小 → 最灵活”排序,选一个用就行。那堆 BMP 了,直接把数据库当成图片仓库即可。一般项目里不推荐长期开着,所以方案一更好。目录,否则会报“找不到路径”,先。

2026-10-08 17:32:06 113

原创 vue3双向邦定:使用defineModel替换defineProps+defineEmits

对外行为完全不变:父组件的`v-model:current` /`v-model:page-size` 用法照旧,只是组件内部省掉了手写 emit 契约的样板代码。3. handleSizeChange 里`emit("update:current", 1)` →`currentModel.value = 1` ( L107 )同时从 Props 接口移除了`current` /`pageSize` —`defineModel` 会自动声明同名 prop,重复声明会冲突。`/** 当前页码 */

2026-09-18 09:43:43 164

原创 Element-Plus(EP)官方推荐的组件导出方式:如表格 ElTable的两种实例写法:TableInstance 与 InstanceType<typeof ElTable>

ts// 方式 A:从 ElForm 组件的构造函数推导实例类型// 方式 B:直接使用 Element Plus 导出的类型——调用都行。

2026-09-17 20:02:22 350

原创 container / area / region 三者分工

container。

2026-09-14 17:25:48 99

原创 Vue3 给页面加拖拽分割线:五步曲

假设现在有个的页面,你要给它加一条拖拽分割线。

2026-09-13 19:33:53 291

原创 Vue3 可拖拽分栏布局:两种实现方式详解

基于(交接查询)和(样品接收)两份代码的对比整理。

2026-09-13 17:53:14 241

原创 Element Plus 的 el-tab-pane:lazy 的说明

lazy。

2026-09-10 18:22:06 111

原创 并发请求 Promise.allSettled 代码示例讲解

onError?onSuccess?// 然后调用三次维度示例1示例2示例3复用性无仅当前组件全局可用代码量稍多(每个结果独立 if)中等(定义+调用)调用简洁,但需维护工具函数可读性最好一般较好(需了解工具函数)维护成本低(局部修改)中(重复定义)低(统一修改)适用规模单处使用单组件多处使用多组件使用。

2026-09-08 11:27:14 209

原创 全局样式变量:CSS 自定义属性(--border-color)和SCSS 变量($border-color)的说明

两种方式都需要一次全局引入(CSS 变量是引入定义文件,SCSS 变量是引入变量文件或构建注入)。关键区别在于:CSS 变量定义一次,运行时全局可用,组件使用时不需额外导入。SCSS 变量默认需要按需导入(除非配置全局注入),但编译后无运行时开销。scss:root {/* 边框颜色 */scss创建scss未配置全局注入时,SCSS 变量需要手动导入,虽然可行但不够便捷。如果项目开始时就计划大量使用 SCSS 变量,建议尽早配置全局注入,以提升开发体验。

2026-09-08 09:05:39 279

原创 pinia Store的两种写法(Options 语法形式、Setup 语法形式)

【代码】pinia Store的两种写法(Options 语法形式、Setup 语法形式)

2026-09-07 12:37:55 19

原创 vue3 字符串排序 localeCompare,确保排序为 “B01“, “B10“, “B2“

这个表达式用于对进行自然排序(数字按数值大小,字母不区分大小写)。它返回一个值,供sort方法决定元素的先后顺序。

2026-09-05 19:52:09 171

原创 Store中关于重置的currentFetchPromises和currentAbortControllers

那样,需要同时管理多个独立请求(按不同模块 ID 并发),那么就需要用。这样,同一时间只会有一个请求(因为只加载一个列表),那么用。写法是正确的,不要改成 Map。是单请求场景,所以保持原来的。多个并发请求 → Map,单个请求 → 单变量,

2026-09-04 09:29:44 219

原创 vue3中,nextTick与setTimeout的用法说明

延迟极小,但在高频操作下,多余的宏任务可能影响响应流畅度(微乎其微,但存在)。”的目的,但它们在实现机制、语义清晰度和与 Vue 生态的融合度上有所区别。// ⏳ 等待分页组件更新完成,确保分页组件的微任务 change 已被拦截。专为 Vue 设计,明确表达“等待 Vue 完成本轮更新”,而。事件,这个触发过程一般发生在 Vue 的更新周期中,即在。处理“DOM 更新后执行”的场景,使用它更符合团队习惯。发生在更晚的宏任务中,同样能拦截,但多了一层延迟。更快恢复标志,减少不必要的状态滞后。

2026-09-03 15:20:05 239

原创 vue3 + element-plus 对话框滚动条回到顶部

【代码】vue3 + element-plus 对话框滚动条回到顶部。

2026-09-03 11:05:48 192

原创 vue3 方法分层命名规则 query、fetch、get

表示“获取”,也暗示异步操作,通常返回一个 Promise,resolve 后得到数据。:通常指发起一次查询(如数据库查询、HTTP GET 请求),并返回查询结果。:一般用于获取某个值或对象,可能是同步或异步,但核心是“返回数据”。

2026-09-02 15:54:46 174

原创 vue3静态渲染组件与动态渲染组件的区别,代码示例(使用<component>标签)

代码示例:src\components\common\CommonApplySampleTable.vue。

2026-09-02 09:40:53 26

原创 样品录入代码分析:三层组件(父、子、孙)数据流设计的合理性和规范性

问题改进建议孙组件直接改 props改用emit事件,由父组件修改数据子组件本地副本双向同步移除本地副本,直接操作 store 或通过事件请求修改多层 provide/inject使用 Pinia store 直接访问,或简化 provide/inject 层级使用注入函数通信改用标准的propsemits模式大量 watch 同步使用 computed 或 store 的 actions 直接操作,减少不必要的同步最终目标:保持单一数据源(store 或顶层组件状态),组件间通过。

2026-09-02 09:21:56 159

原创 el-table 使用 div 包裹后,表格滚动条显示的是浏览器的滚动条,不是 el-table 内置的滚动条,并且增加样品后,滚动条不会自动滚动到最底部(原因详细讲解)

如果必须使用额外div包裹,关键措施是让包裹层具有确定高度并禁止其滚动,或者使用 Flex 布局让el-table获得正确高度。最推荐的做法仍然是避免不必要的包裹,但如果无法避免,按上述方案处理即可保证滚动条样式和自动滚动功能正常。

2026-09-01 16:44:38 323

原创 vue3 provide / inject 相关代码优化前后的对比说明

您感觉“增加对导入资源的识别”是对的,但可以通过上述折中方式避免。核心是给 InjectionKey 加上类型,而是否在组件中显式使用类型别名则可根据团队风格选择。当前代码如果已经能正常工作和维护,不必强行调整;若看重长期维护性,建议至少在symbols.ts中定义类型别名并用于 InjectionKey。

2026-09-01 15:13:24 165

原创 VS Code代码片段实例代码

【代码】VS Code代码片段实例代码。

2026-09-01 09:43:06 25

原创 Vue3代码分类划分

的自然数据流,符合人类的阅读直觉。

2026-09-01 08:39:33 225

原创 TypeScript中,字符串字面量联合类型(Union Type)、enum的用法说明

如果看重重构便利性,且团队习惯使用enum,可以继续使用enum,因为它的成员是真正的符号,VS Code 支持完善。如果希望避免enum的缺点(运行时开销、与 JS 互操作性等),又想拥有类似的符号化能力,强烈推荐 as const对象 + 类型别名模式。您可以根据项目实际情况和团队偏好选择。两种方式都能在 VS Code 中实现良好的重构体验。

2026-08-31 09:14:01 339

原创 从 Spring Boot 2.6 开始,默认的路径匹配器从 AntPathMatcher 切换到了 PathPatternParser 不允许路径变量跨斜杠匹配,即使使用正则 .+ 也不行

不支持路径变量包含斜杠。改用查询参数传递uniqueCode,既解决了特殊字符问题,也使 API 更清晰、易维护。如果坚持路径风格且项目接受全局配置变更,可切换回,但需评估影响。

2026-08-29 12:06:03 185

原创 VS Code 或 TypeScript 服务缓存问题,重启 TypeScript 服务(最推荐)

输入 TypeScript: Restart TS server。,输入 Volar: Restart Vue server。但这不是长久之计,建议通过重启 TS 服务解决根本问题。或其他类型文件中用同名的全局变量覆盖了组件上下文。如果还有问题,再尝试第二步。,问题出在 IDE 的缓存或类型推断上。没有暴露这个函数,所以不是暴露导致的错误。中正确定义(第 254-260 行)。或禁用并重新启用 Volar 扩展。,但 TypeScript 报错。事件(第 365 行)。在 VS Code 中按。

2026-08-20 11:38:58 194

原创 分析@GetMapping(“/{configKey}“) querySysConfigValue(@PathVariable @NotBlank String configKey) {

代码示例。

2026-08-20 09:37:49 227

原创 数据关联:Java 内存关联、SQL 联合查询(JOIN + DISTINCT)、SQL 联合查询 → Java 二次提取

如果你觉得这个方案在你的场景下更合适,那它就是好的选择。数据在 Java 内存中通过。组装,等同于 SQL 的。三种方法最终都返回相同的。去重等同于 SQL 的。因此最终结果完全一致。方法一、方法二、方法三在。集合,没有数据差异。

2026-08-18 18:50:00 239

原创 数据关联:【数据库 sql 联合查询】 与 【内存 java 数据组装】

步骤本质1~2查关联关系(→3~5查字典数据(AcceptType→→6用 Map 把数据串联起来,去重对比方法二(SQL)方法二是一气呵成的 JOIN,一步到位;方法一是把同样的 JOIN 过程拆成了“查关联”和“查字典”两步,然后在内存中用 Map 关联。两种方法殊途同归,只是数据在哪做关联(数据库 vs 内存)的不同。掌握方法一,你就能在复杂场景下灵活选择:是依赖数据库 JOIN,还是分步加载后用 Java 组装。🎯。

2026-08-18 11:46:31 183

原创 Java属性类型,包装类型 Boolean 与 基础类型 boolean 的区别说明

类型(基本类型),Lombok 生成的 getter 方法名为 isValid()没有问题,只需在 Lambda 表达式中使用正确的 getter 名称。会找不到对应的 getter 方法,导致编译或运行时错误。如果希望统一风格,也可以将实体类字段类型改为。(包装类),这样可以存储。,且 getter 变为。字段是 boolean。

2026-08-17 10:07:44 168

原创 Spring Cache 缓存

/ ❌ this.queryByUserName() 是内部调用,缓存不生效。// 注入自身代理对象。// ✅ 通过代理对象调用,缓存生效。→ 直接调用原始方法 → 缓存拦截器不生效 ❌。,绕过了 Spring AOP 代理,因此。→ 经过代理 → 缓存拦截器生效 ✅。若每次都打印,说明仍是内部调用问题。Spring Cache 基于。最简洁,改动小,立即生效。→ 相同值才能命中缓存。

2026-08-10 10:44:00 185

原创 MyBatis中resultType=“_byte[]“的用法讲解

代码。

2026-08-08 16:13:15 208

原创 MyBatis-Plus 默认将名为 id 的字段视为主键,即使没有 @TableId 注解。在生成 SQL 时,它会直接使用字段名 id 作为列名,忽略 @TableField 指定的列名

实体类,属性 id 是自增字段,非主键。

2026-08-05 21:23:33 190

原创 MyBatis 单参数(无 @Param)时的 collection 取值规则

写法是否可行说明✅ 可行当前写法,依赖 MyBatis 对Set的隐式命名✅ 可行需要配合@Param使用,推荐❌不可行仅当参数类型为List时才有效。

2026-07-31 09:31:44 196

原创 Java switch case 标签必须使用枚举常量的非限定名称

case QUERY, WITH_STATUS -> // 直接使用常量名,不带类前缀。(即不能包含枚举类名)。这是为了保持语法简洁,编译器已经能从。枚举 switch case 标签必须是枚举常量的非限定名称。// ... 其他 case 同理。(带枚举类名前缀),而 Java 要求。是限定名称,编译器不允许。Java 语言规范规定:当。标签中的枚举常量必须使用。表达式推断出枚举类型。

2026-07-25 10:19:00 247

原创 Spring Boot 列表元素校验 @RequestBody List<@Valid AssayResultUpdateRequest>

写法推荐度理由⚠️ 可行但不推荐校验的是列表本身,元素校验可能依赖框架默认行为✅强烈推荐显式声明“列表中的每个元素都要校验”,符合 JSR-380 规范,行为确定直接使用方案B即可。🎯。

2026-07-21 11:08:25 385

原创 Vue3经典排错:【问题:v-loading 警告;原因:组件有多个根节点,指令无法绑定;解决方案:用 <div> 包裹,或把 v-loading 移到子组件内部】

问题原因解决方案v-loading警告组件有多个根节点,指令无法绑定用<div>包裹,或把v-loading移到子组件内部推荐方案一,改动最小,立即生效。修复后警告消失,所有功能正常。🚀。

2026-07-21 08:41:20 371

原创 PageHelper 在生成分页 SQL 时,使用 JSqlParser 解析您的 SQL,而表名 Apply 是 SQL Server 的保留关键字(对应 APPLY 运算符),导致解析失败

将 SQL 中表名Apply改为[Apply](SQL Server)或对应数据库的转义符号,重新编译部署即可解决。这是一个非常典型的标识符与关键字冲突问题。

2026-07-14 09:27:13 210

原创 Mybatis 使用标准 JDBC 调用语法(使用 call)执行存储过程

【代码】Mybatis 使用 call 执行存储过程。

2026-07-07 18:52:57 50

原创 Vue3 + Element Plus 表格列筛选

【代码】Vue3 + Element Plus 表格列筛选。

2026-07-03 17:33:25 47

原创 Windows Server 2016 Datacenter 完整部署 Nginx 教程

C:\nginx。

2026-06-29 14:55:24 229

空空如也

空空如也

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

TA关注的人

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