自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员诚哥

我们一起做项目、写代码、讲产品、聊赚钱。拆解知识,落地方案,让你从“知道”走向“做到”。

  • 博客(299)
  • 问答 (1)
  • 收藏
  • 关注

原创 换掉ES? Redis官方搜索引擎,效率大幅提升

RedisSearch = 轻量 + 高性能 + 实时搜索 + 简单部署是中小型搜索系统、微服务、边缘设备非常值得尝试的选择!RediSearch。

2025-08-08 10:02:37 454

原创 8种超赞的 MyBatis 写法!

功能标签用途条件判断if拼接可选字段多条件分支choose类似 switch-case默认情况otherwisechoose 的默认分支批量处理foreach遍历集合,用于IN或批量操作拼接字符串concat构造模糊查询自动主键获取selectKey插入后返回主键(适用于 Oracle)自动处理 WHEREwhere自动去除多余 AND/OR自动处理 SETset自动去除结尾逗号更灵活拼接trim替代whereset。

2025-08-08 10:02:00 368

原创 商城系统项目本地运行方案(基于jdk8)

在父级pom.xml输入命令 mvn clean install 或者用idea工具操作。启动程序,启动程序路径如下。

2025-07-30 15:54:00 121

原创 商城系统项目本地部署方案(基于jdk8)

不需要安装到服务器,运维本地安装就行,主要是用来编译前端代码的。构建完成后将dist文件夹复制到服务器内。

2025-07-30 15:51:04 169

原创 设计模式实战:策略+责任链+组合实现合同签章

模式作用策略模式支持不同签章流程策略选择责任链模式拆分签章步骤,职责单一,可复用组合模式将步骤组合成复合流程,提高灵活性。

2025-07-29 12:19:50 406

原创 库存管理系统项目部署方案(基于jdk17)

不需要安装到服务器,运维本地安装就行,主要是用来编译前端代码的。构建完成后将dist文件夹复制到服务器内。

2025-07-27 17:06:11 510

原创 库存管理系统项目部署方案(基于jdk8)

不需要安装到服务器,运维本地安装就行,主要是用来编译前端代码的。构建完成后将dist文件夹复制到服务器内。

2025-07-27 17:04:42 199

原创 库存管理系统项目本地运行方案(基于jdk17)

在父级pom.xml输入命令 mvn clean install 或者用idea工具操作。启动程序,启动程序路径如下。

2025-07-27 17:02:00 230

原创 库存管理系统项目本地运行方案(基于jdk8)

在父级pom.xml输入命令 mvn clean install 或者用idea工具操作。启动程序,启动程序路径如下。

2025-07-27 16:59:00 132

原创 git提交错了?别慌,直接删除提交记录

命令本质操作是否保留历史记录是否改变提交记录是否影响远程仓库典型使用场景git revert创建一个“反向提交”✅ 保留✅ 新增一次提交✅ 安全共享已推送的提交要“撤销”git reset改变分支指针的位置❌ 不保留✅ 覆盖或删除提交⚠️ 危险(视选项而定)回退本地提交、不小心提交了错误内容git revert作用:生成一个新的提交,它是指定提交的反向操作,用于“撤销”某次提交的修改。不会删除原来的提交历史。适用于已推送到远程的提交。

2025-07-25 11:14:28 361

原创 springboot项目如何写出优雅的service?

Controller 只转发,Service 做判断,Entity 不暴露,事务别忘了,异常要抛清”

2025-07-24 10:44:50 474

原创 springboot项目如何写出优雅的controller?

优雅的 Controller = 少逻辑、多转发、返回一致、参数可校验、异常有处理、文档可生成”

2025-07-24 10:34:12 467

原创 mysql中varchar可以放多少个中文字符?

VARCHAR的最大长度由行限制(65535 字节)字符集(1~4 字节/字符)和 **表结构(其他字段)**共同决定utf8中文 1 字符 ≈ 3 字节,最多能放约 21844 个中文字符(纯中文字段,无其他字段)如你使用了utf8mb4并有多个字段,建议限制VARCHAR长度在 1000~4000 字符左右,确保不会超出最大行长度。

2025-07-23 17:27:13 545

原创 mysql什么时候用char,varchar,text,longtext

类型最大长度是否定长是否适合索引使用场景CHAR255 字节✅✅定长数据,如国家码、哈希值VARCHAR65535 字节*❌✅(推荐)长度不固定,如姓名、标题TEXT64KB❌⚠️(限制多)评论、简介、中等长度文本LONGTEXT4GB❌❌文章内容、大文档* 实际长度受限于表的总行大小不能超过 65535 字节(不含 BLOB/TEXT)。

2025-07-23 17:07:45 416

原创 当if else比较多时候应该怎么避免?

适用场景推荐方案行为多变,结构清晰策略模式、责任链模式简单条件分支固定类型对应行为枚举 + 多态条件逻辑可抽象成对象工厂工厂模式条件判断涉及顺序或权限依赖责任链模式枚举 + 多态和责任链模式。这两种都是在“if-else太多”时非常实用的重构技巧,各有适用场景。

2025-07-23 16:09:04 432

原创 css支持if else

if()从(2025年6月发布)开始,CSS 确实新增了 if(),这是 CSS 条件逻辑的一次重大进步。

2025-07-09 15:29:23 454

原创 ruoyi-erp 开源:功能全面灵活可定制

该项目基于成熟的ruoyi-wms仓储管理系统,进行了深度功能拓展,新增了和三大核心业务模块,打造出适用于中小型企业日常经营活动的轻量级 ERP 解决方案。

2025-05-24 22:09:24 689

原创 Spring Boot 内置工具类汇总与讲解

Spring Boot 提供了许多内置工具类,这些类大多继承自 Spring Framework,旨在简化常见开发任务(如配置处理、资源加载、Bean 操作等)。

2025-05-22 16:13:49 926

原创 MySQL 索引失效及其解决办法

在数据库优化中,索引(Index)是一项至关重要的技术手段,可以显著提升查询性能。然而,在实际开发过程中,MySQL 索引并不总是如预期生效。本文将从原理出发,系统地介绍索引失效的常见场景及其解决方案,帮助开发者有效规避性能陷阱。规则描述避免对索引列进行函数/计算处理如保证数据类型一致避免隐式转换遵循最左前缀原则联合索引按顺序使用尽量使用等值匹配避免!<>NOT IN等使用EXPLAIN调试执行计划判断是否真正走索引。

2025-05-22 11:26:28 407

原创 JDK9~17语法新特性全览:Java语言的持续进化

从 JDK9 到 JDK17,Java 语言在保持稳定性的同时,也在不断吸收现代编程理念,引入了一系列实用的新语法特性。这些特性不仅提升了开发效率,还增强了代码的可读性和表达力。本文将带你逐一了解这段时间内最值得关注的 8 个语法亮点。

2025-05-21 17:10:30 214

原创 Hutool 常用工具类实战指南

Hutool 是一款轻量级、功能丰富的 Java 工具库,上手简单、功能实用。通过本文介绍的StrUtilDateUtilNumberUtilBeanUtilMapUtilSecureUtil和等常用类,我们可以极大提高开发效率,减少重复劳动。如果你在开发过程中也频繁面对字符串处理、日期转换、Bean 映射等问题,不妨尝试引入 Hutool,让你的代码更清晰、简洁、优雅!

2025-05-20 14:36:06 137

原创 Vue 3 中的 nextTick 使用详解与实战案例

nextTicknextTick在 Vue 3 中解决的是“响应式数据变更后,需要访问更新后的 DOM”的问题。表单校验提示后的自动滚动;弹窗打开后的输入框聚焦;Tab 页切换后图表初始化;动态组件挂载后的插件调用。

2025-05-07 16:10:44 1559

原创 空值运算符最佳实践清单(适用于 Vue 项目)

建议理由优先使用?替代深层&&判断更清晰、简洁展示用户数据或接口返回值时配合??提供默认值防止界面空白或崩溃表单初始值统一使用??''处理避免 uncontrolled 警告在 computed / methods 中统一处理空值逻辑保持模板整洁编写公用函数封装复杂的空值获取提升代码复用性。

2025-05-07 09:01:12 214

原创 ruoyi-plus Spring Boot + MyBatis 中 BaseEntity 的设计与动态查询实践

通过在BaseEntity中引入和params,我们实现了灵活的动态查询能力,在开发中极大简化了接口参数结构与查询逻辑。同时,也提升了系统的可维护性与扩展性,是开发大型后台系统中常用的技巧之一。如果你正在构建一个基于 Spring Boot + MyBatis 的后台管理系统,不妨考虑将这两个字段纳入你的BaseEntity设计中。

2025-05-01 23:24:04 883

原创 若依Vue + Spring Boot:前后端参数传递实践与 @RequestParam、@RequestBody、@ModelAttribute 使用详解

场景推荐方式简单参数(分页、搜索),配合params: {}使用接收 JSON 对象(新增、修改),配合data: {}使用GET 提交对象数据,字段名称保持一致POST 多对象使用封装对象或重复提交拦截Axios 请求拦截器实现通过合理使用前后端参数绑定机制和统一的 Axios 封装,我们可以在 Vue + Spring Boot 项目中实现高效、稳定、安全的接口通信。

2025-04-30 10:21:54 648

原创 介绍一下js中Promise、async、await的使用

是基于Promise的语法糖,使用它们可以让代码更加整洁且易于维护。

2024-09-20 15:20:28 1238

原创 ruoyi-vue若依前端是如何防止接口重复请求

防止接口重复请求是为了避免用户在短时间内多次点击同一个按钮,导致后端接口被多次调用,引发数据异常或性能问题。之前的文章介绍过后端如何防止接口重复请求,这篇文章介绍一下前端如何防止接口重复提交。

2024-09-20 11:41:04 1385 1

原创 mysql update语句的执行流程

update tb_student A set A.age=‘19’ where A.name=’ 张三 ';

2024-09-19 17:52:16 983 1

原创 简单说说MySQL中 SELECT 语句执行流程

MySQL 中SELECT用户向 MySQL 服务器发送SELECT查询语句。MySQL 收到 SQL 语句后,会将查询语句进行词法和语法分析。词法分析器,然后语法分析器根据 MySQL 语法规则。。这是 MySQL。优化器决定如何执行查询,。MySQL 的优化器会生成多个执行计划,选择成本最低的计划。执行器根据优化器生成的执行计划去执行查询语句。,按优化器的指示选择适当的访问方式,如是否使用索引,是否需要回表等。MySQL 是多存储引擎的系统。

2024-09-19 17:37:23 1291

原创 小项目建议用redis替换mq

简单任务分发:如后台任务处理、日志收集等。实时数据处理:如实时流数据处理、监控报警、实时推送等。广播消息:如系统通知、状态更新等。轻量级系统:对运维要求较高,系统对消息丢失不敏感,且对路由和持久化无严格要求。

2024-09-11 10:49:53 1006

原创 因IBM裁员聊一聊外企程序员如何应对

对于现今的程序员而言,这无疑是一种启示:技术潮流和行业变迁的初期,往往蕴含着巨大的机遇,抓住它,就能获得更加广阔的成长空间与丰厚的回报。程序员不仅需要不断磨砺自身技术,还应具备审时度势的眼光,善于发掘新兴领域的潜力,紧跟时代步伐,为自己的职业未来开辟一片新的天地。面对迅速变化的市场环境,程序员不能将希望寄托在某一家公司或某一项技术上,而应保持灵活的职业生涯规划,及时学习新兴技术,跳出舒适圈,走向更广阔的未来。他们在新的环境中,虽然承受着更高的工作强度,却换来了更为丰厚的回报。

2024-09-11 08:22:54 620

原创 MyBatis常见面试题

MyBatis: 灵活、可控性强,适合对 SQL 有较高要求和复杂查询的项目。Hibernate: 自动化程度高、面向对象映射良好,适合 CRUD 操作较多且开发者希望避免直接与 SQL 打交道的场景。两者各有优缺点,选择使用哪一个框架需要根据项目需求、团队技能和对 SQL 控制的需求来权衡。SQL 注入(SQL Injection)是一种网络攻击技术,攻击者通过在输入字段中插入恶意的 SQL 代码,使应用程序生成恶意的 SQL 查询,从而操纵数据库的执行行为。

2024-09-06 14:40:54 1752

原创 netty和websocket的区别

Netty是一个底层网络框架,提供了灵活、异步的网络通信能力,可以支持多种协议,包括 WebSocket。WebSocket是一个应用层协议,专注于在浏览器与服务器之间提供低延迟、全双工的通信。

2024-09-06 08:21:26 2774

原创 小伙跟我做了一年开源项目,薪资翻了三倍

小伙最近面试了两家公司,都收到了offer,他选择了其中一家。薪资是他之前实习薪资的三倍。

2024-09-05 15:54:49 1083

原创 若依库存管理 ruoyi-wms V2.0发布:升级到jdk17和vue3,支持一物一码

项目代码、文档 均开源免费可商用 遵循开源协议在项目中保留开源协议文件即可活到老写到老 为兴趣而开源 为学习而开源 为让大家真正可以学到技术而开源若依wms是一套基于若依的wms仓库管理系统,支持lodop和网页打印入库单、出库单。毫无保留给个人及企业免费使用。前端采用Vue、Element UI。后端采用Spring Boot、Spring Security、Redis & Jwt。权限认证使用Jwt,支持多终端认证系统。支持加载动态权限菜单,多方式轻松权限控制。

2024-09-05 15:49:58 1348 1

原创 面试时常会被问到的mysql问题:二

自动处理:依赖InnoDB的死锁检测和自动回滚机制。应用处理:捕获错误并重试事务。优化操作:减少锁持有时间、简化事务、遵循一致的锁顺序。使用工具:监控和分析死锁情况,优化数据库设计。通过应用这些策略,可以有效减少和解决MySQL中的死锁问题,提高数据库系统的稳定性和性能。:提供详细的死锁信息。错误日志:记录了死锁事件及其详细信息。:可以查询锁和锁等待信息。:帮助识别可能的锁竞争和长时间运行的事务。:开启死锁日志打印。通过这些方法,可以获取有关死锁的详细信息,从而帮助分析和解决死锁问题。

2024-08-31 08:05:14 1302

原创 面试时常会被问到的mysql问题:一

第一范式 (1NF)强调每一列都是原子性的,不可再分。第二范式 (2NF)强调所有非主属性必须完全依赖于主键,不能有部分依赖。第三范式 (3NF)强调所有非主属性不能依赖于其他非主属性,消除传递依赖。通过遵循这三个范式,可以使数据库设计更简洁、减少冗余、降低数据异常的风险,并提高数据的完整性和一致性。InnoDB是 MySQL 的默认存储引擎,适合大多数需要事务和数据完整性的应用。MyISAM适合只读或轻量级的应用,对事务和一致性要求不高。Memory引擎用于需要快速访问的临时数据存储。

2024-08-31 07:54:07 1789

原创 阿里开发规范禁止超过三张表 join,我们如何规避?

超过三张表的 JOIN 是否合适取决于具体的场景和需求。

2024-07-31 15:48:18 1344 1

原创 时常在面试中被问到的JVM问题

类加载请求首先由当前类加载器接收。当前类加载器将请求委派给它的父类加载器。父类加载器再次将请求向上委派,直到达启动类加载器。启动类加载器尝试加载类,如果成功则返回类对象;如果失败则将控制权交还给子类加载器。子类加载器按此规则递归,直到找到可以加载该类的类加载器。这种机制确保了Java核心库的类不会被用户自定义的类加载器替代,保证了JVM的安全性和稳定性。

2024-07-31 13:47:40 1328

原创 时常在面试中被问到的多线程问题:下篇

你也可以实现自己的拒绝策略,通过实现接口并覆盖方法。// 自定义处理逻辑 System . out . println("Task " + r . toString() + " rejected from " + executor . toString());// 可以记录日志,或者执行其他处理措施 } }

2024-06-28 18:29:32 1028

空空如也

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

TA关注的人

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