- 博客(45)
- 收藏
- 关注
原创 开发过程中动态 SQL 中where 1=1的作用是什么
where 1=1用恒真条件占位,让所有动态条件统一以and开头,避免语法错误;优缺点:优点:简单易懂,新手友好;缺点:若所有动态条件都不满足,会生成where 1=1导致全表查询(可能性能低);
2025-12-16 16:43:03
510
原创 IDEA 取消 Save Actions 自动删除未用导入(前端开发避坑)
取消后,保存文件时 IDEA 不会自动删除未使用的导入语句,避免前端项目因 “误删导入” 导致的运行报错~
2025-12-08 19:11:31
356
原创 开发笔记java
5.遇到问题排错时,可以一部分一部分的注释,然后放开,这样子去排错,比如我的导出功能,先看三级表头能不能出来,然后在考虑数据的问题。2.写代码之前一定要看前面写的代码,比如前面提取出来的参数和集合可以直接复用,不要每次都重新取。6.一个controller对应一个表,不要随便建controller。1.开发环境连测试环境的数据库只能用于查询,以及复现bug。4.读代码要先看整体是做什么的,然后再一行行看。3.代码的逻辑一定要严谨,多用工具类。
2025-12-05 09:59:52
98
原创 IDEA如何设置以新窗口打开新项目
取消勾选 ✔️ Confirm window to open project in(可选,避免每次询问)。勾选 ✔️ Open projects in new window。
2025-12-01 18:58:38
307
原创 IDEA 报错:You aren‘t using a compiler supported by lombok (1分钟解决方案)
idea 文件夹是 IDEA 存储项目配置的核心目录,包含编译器设置、插件配置、依赖缓存等信息。如果你的项目也遇到类似问题,不妨试试这个方法,欢迎在评论区分享你的解决体验~
2025-12-01 18:55:49
370
原创 Java POI 操作 Excel 速查表 + 避坑指南(开发必备)
坑点描述原因分析解决方案日期显示为数字(45321)日期单元格未设置「日期样式」,POI 默认存储为时间戳给日期单元格绑定 dateStyle(参考样式操作速查表)合并后数据不显示数据填到了被合并的「非首行 / 非首列」单元格(合并后只有首行首列有效)只给 CellRangeAddress 的 firstRow+firstCol 单元格填数据(i==0 时填)数据显示在合并单元格顶部行合并未设置垂直居中对齐样式中强制加中文乱码(文件名 / 内容)
2025-11-30 13:08:15
752
原创 Java 事务失效 10 大场景 + 新手避坑!从 public 修饰符到内部调用全解析
事务未被正确代理(非 public、自调用、非 Bean 等)、执行逻辑跳出事务控制(异常被吞、多线程、传播机制错误等)。
2025-11-23 19:15:06
752
原创 Stream 流核心速查表
Stream是Java中对数据处理的函数式封装,不存储数据,具有惰性求值、不可复用、内部迭代和无副作用等特性。创建方式包括集合、数组、文件等数据源转换,以及直接生成元素流或无限流。中间操作(如filter、map、distinct等)链式调用但不触发计算,终端操作(如collect、count、reduce等)才执行计算并关闭流。特殊流(IntStream等)优化基本类型处理。实战技巧包括分组统计、分区、字符串拼接和并行流应用。
2025-11-16 14:51:40
721
原创 Java中的声明式校验(解释)
声明式” 就是 “我只说要什么规则,不用写具体校验代码”。比如在礼品卡编号属性上贴@NotBlank,就表示 “这个字段不能是空字符串、null 或全空格”,框架会自动帮你检查,不符合就报错。实体类属性上加@NotBlank@NotNull等注解,写好message提示;Controller 方法的参数前加@Valid;写全局异常处理器捕获,返回友好错误信息。
2025-11-09 14:28:15
327
原创 Hutool 工具类超详细学习指南(含实战)
Hutool是一款高效的Java工具类库,可大幅简化开发工作。本文针对Java新手,详细介绍如何通过Maven引入Hutool(5.8.20版本),并重点讲解了5个核心工具类的使用:StrUtil处理字符串(判空、拼接等)、Assert进行参数校验、DateUtil操作日期、CollUtil处理集合、BeanUtil复制对象属性
2025-11-09 14:22:36
1120
原创 Apache 工具包(commons-io commons-lang3 )保姆介绍
本文介绍Java后端开发中常用的Apache Commons工具包(commons-lang3和commons-io),详细解析其核心功能与使用场景。commons-lang3专注于字符串处理、日期操作、对象判空等业务逻辑,commons-io则简化文件读写和流操作。文章提供了依赖引入方法、常用API速查表(包含字符串判空、日期计算、文件复制等20+实用方法)、5大避坑指南以及完整实战示例。这些工具能显著减少重复代码,提高开发效率,同时避免空指针、线程安全等常见问题,适合Java开发者收藏作为日常参考。
2025-11-09 11:06:26
1110
原创 synchronized和lock的区别
场景:你看到打卡机空着,想快速打卡,你看到机器空着,立刻冲过去按“开始” → 成功就打卡,失败就重试。:它们都是用来解决多线程并发安全问题的工具,保证同一时刻只有一个线程能执行临界区代码。更灵活,适合复杂并发控制需求。简单够用,适合大多数场景;
2025-10-14 09:43:00
235
原创 windows下将redis注册为windows服务
将Redis注册为Windows服务实现开机自启的方法:首先切换到Redis安装目录,执行命令redis-server --service-install redis.windows.conf将Redis注册为系统服务,然后通过服务管理界面或命令redis-server --service-start启动服务。这样Redis就能随系统自动启动,无需手动开启cmd窗口运行,且不受终端关闭影响。该方法简化了Redis的使用流程,提高了开发效率。
2025-10-07 11:10:32
456
原创 ide进去git突然报Cannot identify version of git executable: no response的错误
早上开开心心上班,打开idea准备先拉取以下代码突然git就报错了?Сannot Run GitCannot identify version of git executable: no response不能识别git运行版本是什么鬼呀我心里一阵颤抖,难道我又做了什么骚操作,不对呀,明明什么都没干呀?我打开配置信息settings->Version Control -> Git然后点击测试,然后确认即可
2025-10-07 09:22:46
401
原创 报错:Expression #2 of SELECT list is not in GROUP BY(only_full_group_by 模式冲突)
让所有非聚合字段都出现在 GROUP BY 中,但考虑到项目历史代码太多,且团队希望保持兼容性,在旧版本 MySQL 中这能正常运行,但在 MySQL 8.0+ 中会直接报错,因为。,我不仅解决了当前问题,还为后续调优(如字符集、连接数、日志等)打下了基础。此时再运行你的 Java 项目,SQL 查询恢复正常,不再报错。,它使用的是编译时的默认配置。在这些路径中,就会被加载。中,也不是聚合函数。
2025-09-25 16:08:49
764
原创 解决idea2021maven依赖导入后还是找不到包,爆红无法导入
本文记录了解决Maven依赖导入问题的经验。作者遇到pom.xml文件持续报错问题,经技术同事指点发现根源在于使用了IDEA自带的Maven仓库而非本地仓库。解决方案是配置本地Maven仓库并刷新依赖,问题得以解决。技术同事建议避免使用IDEA内置Maven仓库,因其容易引发问题。文中还提供了参考的技术博客链接,并邀请读者留言交流经验。通过这次经历,作者深刻认识到正确配置Maven本地仓库的重要性。
2025-09-11 17:32:38
439
原创 从两分钟到毫秒级:一次真实看板接口性能优化实战(已上线)
从熟悉区入手,建立信心先优化自己熟悉的模块,快速见效,增强继续优化的动力。以终为始:前端需要什么,就查什么不要“为了查而查”,避免传输和计算无用数据。终结 N+1 查询任何循环内查数据库的代码都是性能杀手,必须重构为批量查询。善用索引,尤其是覆盖索引让查询尽可能走索引,减少磁盘IO和回表操作。
2025-09-11 09:14:52
1242
原创 idea git提交项目,忽略不需要提交的文件或文件夹
我们有时候在本地调试代码时,某些配置文件需要修改成本地环境中。当改完后,需要提交代码时,这些文件又不能推到git上。当出现这种情况,我们每次都需要手动去将不需要提交的文件的对号去掉。文件多了后,就很麻烦。4.现在在提交git时,我们就可以看见,我们移入新组的文件,已经不再默认的组中了。3,将不需要提交到git上的修改添加到新组中去。1.点击idea左下角的git图标。2.添加一个新的git分组。
2025-09-08 17:03:56
463
原创 电脑外接显示屏字体和图标过大
当外接显示屏的分辨率过高时,可以调整显示器设置来解决字体和图标过大的问题。具体操作包括在桌面右击选择显示设置,切换到外接显示器,将分辨率调至推荐的1920x1080,或根据个人偏好进行适当调节,然后保存更改。显示器分辨率 ---- 调节 (最好调节为1920 × 1080)原因:大概是因为我们的外接显示屏的分辨率过大。解决电脑外接显示屏字体和图标过大问题啦。桌面右击 -- > 显示设置。切换到外接显示屏的显示器。或者根据自己的喜好来调节。
2025-09-06 11:58:13
996
原创 新手也能懂的 MySQL 大表优化:40 字段表的规划思路 + 头表行表应用详解
先拆表:看字段是否属同一业务,不属于就按 “核心信息 / 统计信息 / 关联信息” 拆成多张表;再优化:不拆的话,加索引、定义 DTO、用枚举,保证查询快、开发方便;建表避坑:加主键、软删除、时间字段,减少后续维护成本。如果你的 40 个字段,没有 “整体 + 明细” 的关系(比如就是单纯的 “员工基础信息表”,包含姓名、年龄、电话、邮箱、家庭地址、紧急联系人、学历、入职时间...),那可能不需要 “头表 + 行表”,而是考虑另一种拆分:按 “业务模块” 拆成两个平级表(比如存基础信息,
2025-09-02 17:44:37
1492
原创 MySQL 面试题总结(含优化解答 + 记忆思路 + 面试表达)
索引是 InnoDB 中 “加速数据查询的数据结构”,核心价值是降低 I/O 成本 + 减少排序成本核心作用查数据:比如瞬览购书查 “book_id=1001” 的图书,没索引要扫全表(10 万行),加主键索引后直接定位到 1 行,I/O 成本骤降;排序:查 “用户 100 的订单按 time 排序”,加索引后,数据已按 time 排序,不用再做文件排序,CPU 成本减少;双刃剑。
2025-09-01 16:23:26
1629
原创 Redis最新面试高频问题分享(保姆解析)
缓存穿透是查‘缓存和 DB 都不存在的数据’,比如恶意查不存在的商品 ID,每次都打 DB。我们项目用了三层解决:① 先做参数校验(过滤非法 ID);② 用布隆过滤器(提前加载有效 ID,拦截不存在的 key);③ 空值缓存(DB 查不到时,存 null 到缓存,设 10 秒过期),三层下来基本挡住了所有穿透请求。本质:数据不存在→透 DB;方案:参数校验 + 布隆过滤器 + 空值缓存;绑定项目:食味鲜布隆过滤器“缓存击穿是‘热点 key 过期瞬间,大量并发请求冲 DB’,比如热门图书缓存过期。
2025-08-27 16:00:36
969
原创 Idea 拉取云效代码(保姆级教程)
云效代码管理 Codeup,是基于 Git 的代码管理平台,数十万企业正在使用,提供代码托管、代码评审、代码扫描、质量检测、持续集成等功能,全方位保护企业代码资产,帮助企业实现安全、稳定、高效的代码托管和研发管理。4、点击进入IDEA -> File -> New ->Project From Version Controller…2、点击进入云效 -> 个人设置 -> https密码,创建克隆账号和克隆密码。5、克隆完成后注意分支即可,分支不对的话,切换。3、在云效代码仓库找到克隆链接,复制。
2025-08-23 15:01:27
1255
原创 VSCode设置自动保存
当我们开始下载完VSCode后会修改完代码运行后会发现运行的还是上回修改前的代码,当然我们也可以手动保存后再运行。这个是窗口失去焦点的时候,才会保存。也就是鼠标在整个VScode软件之外的地方点下左键才会保存。这个是编辑器失去焦点的时候,才会保存。也就是鼠标在编辑器之外的区域按下左键才会保存。这个不用多说,就是没有自动保存。按crtl+s来进行保存。左下方找到齿轮,点击设置。在上方搜索Auto save。这个是在多少毫秒后自动保存。
2025-08-14 15:55:36
500
原创 Vscode——调整左侧菜单字体大小
3、在settings.json文件中加入 “window.zoomLevel”: 1.2。左侧目录字体特别小,看着真的太难受了。,修改格式化的配置,默认是none。1、按ctrl+shift+p。调整左侧菜单字体大小。
2025-08-14 10:07:23
982
原创 IDEA中修改git的作者名字和邮箱名字
在git控制台 或者 Terminal 输入。打开idea在git控制台 或者 Terminal 输入。PS: xxx是你要修改的名称。
2025-08-13 17:43:20
477
原创 报错信息如下:Module not found: Error: Can‘t resolve ‘less-loader‘
报错信息如下:Module not found: Error: Can't resolve 'less-loader'(用于 webpack 转换 Less 为 CSS 的加载器 ),并将它们添加到项目。)中,用于开发阶段处理 Less 代码。(CSS 预处理器)和。
2025-08-06 16:47:48
318
原创 手把手教你用命令行创建 Vue 项目
通过安装 Vue CLI 工具,用验证安装,借助创建项目,最后通过启动项目,这样一套流程下来,你就成功搭建并运行起一个 Vue 项目啦,后续就可以在这个基础上进行开发,添加组件、实现功能,打造属于自己的 Vue 应用啦。快去试试吧。
2025-08-06 14:51:34
515
原创 VS Code编辑时光标变成小黑块解决办法
解决键盘输入异常的两个方法:1)按Insert键(笔记本需按Fn+Insert)解除覆盖模式;2)若安装了VsVim插件导致问题,可卸载或禁用该插件后重启VS即可恢复正常。两种方法针对不同原因导致的输入异常问题,操作简单快捷。
2025-08-03 13:49:11
874
原创 前端最新Vue2+Vue3基础入门到实战,前端vue Day01 <个人笔记>
概念:Vue (读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式框架Vue.js基于数据渲染出用户可以看到的界面所谓渐进式就是循序渐进,不一定非得把Vue中的所有API都学完才能开发Vue,可以学一点开发一点所谓框架:就是一套完整的解决方案举个栗子如果把一个完整的项目比喻为一个装修好的房子,那么框架就是一个毛坯房。我们只需要在“毛坯房”的基础上,增加功能代码即可。提到框架,不得不提一下库。库,类似工具箱,是一堆方法的集合,比如 axios、lodash、echarts等。
2025-08-02 10:48:19
1428
原创 IDEA提示“Unmapped Spring configuration files found.Please configure Spring facet.”解决方法
最近从gitlab导入项目过程中,发现提醒Unmapped Spring configuration files found.Please configure Spring facet.,知道是spring配置问题最后重启IDEA即可。
2025-07-28 15:44:59
437
原创 全网最新真实Java实习面试题面经+详细讲解
本文涵盖了Java技术面试的常见问题,主要分为技术面和面试官面两个部分。技术面部分包括Java集合、Spring框架、MySQL、Redis、Linux等知识点,重点分析了集合类型区别、Spring核心机制、数据库优化、缓存使用等问题。面试官面部分则关注个人介绍、项目经验、薪资期望等内容。文章详细解答了30个技术问题,如IOC/AOP原理、事务隔离级别、索引优化等,并提供了实际应用场景的解决方案,如订单超卖处理、缓存三兄弟问题等,适合Java开发者面试准备参考。
2025-07-15 22:52:56
1973
2
原创 难度高的SQL笔试题:聚合-存储过程-DATE_SUB-JSON匹配-GROUP_CONCAT
WHERE JSON_CONTAINS(attributes, '"English"', '$.languages'):筛选条件,使用 JSON_CONTAINS 函数判断 attributes 字段的 JSON 数据中,在 languages 数组里是否包含字符串 "English"。例如,在 employee_skills 表中,每个员工可能有多行 skill(如 Java、Python),GROUP_CONCAT 会把这些值合并成一个字符串。SELECT name:指定要返回的字段,即员工姓名。
2025-07-14 15:22:52
857
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅