自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于性能的通用优化方式

文章摘要:优化批量数据库查询的7个关键策略:1)使用批处理操作减少交互次数;2)为查询字段建立适当索引;3)仅选取必要字段减少数据传输;4)大数据量时采用分页处理;5)引入缓存机制提升频繁访问数据效率;6)考虑异步处理避免阻塞;7)优化SQL语句和连接池配置。这些方法可显著提高数据库查询性能,降低系统负载。

2025-05-28 00:14:02 144

原创 关于根据id批量查询用户地址的代码每一个字的详解注释

关键点解析** * #### (1)为什么要按批次查询? * - 数据库查询的性能与查询条件的复杂度和数据量密切相关。 * - 如果一次性查询大量用户 ID 的地址信息,可能会导致 SQL 语句过长或数据库压力过大。 * - 按批次查询可以有效缓解这些问题。 * * #### (2)`computeIfAbsent` 的作用 * - 它简化了检查键是否存在并初始化值的逻辑。

2025-05-26 22:54:20 89

原创 为什么要使用stream流

总的来说就是它支持链式调用,方便不会修改原始数据源,而是生成一个新的流或结果中间操作不会立即执行,只有在终端操作触发时才会真正执行注意事项无状态操作:Stream 操作应该是无状态的,不要依赖外部变量的状态。副作用:避免在 Stream 操作中修改外部变量,可能导致不确定的行为。线程安全:并行流可能会导致线程安全问题,需谨慎使用。

2025-05-26 22:21:49 1053

原创 什么场景下能够用到根据id批量查询用户

摘要:根据ID批量查询用户是业务系统中高效处理多用户数据的常见方法,适用于运营分析、社交应用、电商管理、数据分析和系统集成等场景。其核心优势在于减少请求次数,提升效率并保障数据一致性。实现时需注意ID合法性校验、批量大小限制和缓存策略。合理应用该功能可显著优化系统性能,尤其适合大规模用户数据处理需求。

2025-05-26 19:56:00 811

原创 关于(stream)流

Java8 Stream流是处理集合数据的强大工具,采用声明式编程简化操作。它通过创建流、中间操作(过滤、映射、排序等)和终端操作(收集、统计等)三个步骤处理数据。关键特性包括惰性求值、不可变性和链式调用。支持从集合/数组创建流,提供并行处理能力,但需注意线程安全。Stream使代码更简洁高效,适合各种集合操作场景,是Java8的重要特性之一。使用时应遵循一次性消费原则,避免副作用,并合理优化性能。

2025-05-26 19:05:53 741

原创 CollUtil详解

CollUtil是Hutool工具库中专门用于集合操作的实用工具类,提供了丰富的静态方法简化集合处理。主要功能包括:集合判空(isEmpty/isNotEmpty)、快速创建集合(newArrayList/newHashSet)、集合操作(合并/交集/差集/去重)、集合过滤、类型转换(转数组/Map)以及排序等。相比Java标准库和Apache Commons Collections,CollUtil功能更全面且轻量高效。通过引入Hutool依赖即可使用这些便捷方法,能显著提升集合处理的开发效率。该工具类方

2025-05-26 18:58:40 666

原创 BeanUtil和BeanUtils有什么区别

BeanUtil和BeanUtils是Java中常用的对象属性复制工具类,主要区别在于来源和性能。BeanUtils来自Apache Commons,功能简单但性能较低;而BeanUtil常见于Hutool等第三方库,性能更优且功能丰富,支持对象与Map转换等操作。开发新项目推荐使用BeanUtil,传统项目可继续使用BeanUtils。两者都基于反射实现,但BeanUtil通过缓存优化了性能。

2025-05-26 18:52:23 868

原创 深度解析mybatisplus中出现的循环依赖问题

MyBatis-Plus的Service层循环依赖问题主要发生在两个或多个ServiceBean之间存在直接或间接的依赖关系,导致Spring容器在初始化时无法完成Bean的创建。典型场景包括直接循环依赖和间接循环依赖,其根本原因是Spring容器在实例化、属性注入和初始化过程中形成死锁。循环依赖的危害包括启动失败、运行时异常和代码耦合。解决方案包括重构代码解耦业务逻辑、使用Setter注入或@Lazy延迟加载、以及使用ApplicationContext手动获取Bean。最佳实践包括遵循单一职责原则、明确

2025-05-12 18:59:35 870

原创 mybatisplus中,什么时候用IService,什么时候用baseMapper

MyBatis-Plus中的BaseMapper和IService分别用于数据访问层(DAO层)和业务逻辑层(Service层)。BaseMapper适用于简单的单表CRUD操作,支持零SQL编写和动态条件构造,适合直接操作数据库的场景。IService则用于封装复杂的业务逻辑,支持批量操作、事务管理和扩展自定义方法,适合需要组合多个DAO操作的场景。两者的核心区别在于功能范围和层级,BaseMapper独立于Service层,而IService依赖BaseMapper实现功能。选择时,简单的数据库操作使用

2025-05-12 11:05:56 542

原创 不能再业务层里写SQL语句,那么IService不是就违背了这个约定

MyBatis-Plus中的IService设计并未违反分层架构中“业务层不直接写SQL”的原则。IService作为业务逻辑层的接口,其核心职责是聚合多个DAO操作(如批量处理、事务控制)和定义业务语义,而非直接编写SQL。它通过封装BaseMapper的通用操作,将数据访问逻辑与业务逻辑解耦。BaseMapper是DAO层的接口,由MyBatis-Plus自动生成动态SQL,开发者只需通过方法名或条件构造器调用,无需手动编写SQL。当需要自定义SQL时,应在Mapper接口扩展方法,而非在Service

2025-05-12 11:03:57 401

原创 深度解析SpringBoot用户管理模块设计与实现

本文深入探讨了SpringBoot用户管理模块的设计与实现,重点介绍了控制层、服务层的架构设计及优化策略。控制层严格遵循RESTful API规范,通过Swagger集成自动生成API文档,并采用DTO/VO分层设计实现数据转换,确保代码的清晰与安全。服务层则通过双重校验机制、MyBatisPlus动态条件构造器及预编译语句等技术,优化了余额操作的安全性和SQL查询的效率。此外,文章还讨论了事务与并发控制、工程化最佳实践及性能优化方向,展示了现代Java后端开发的典型架构模式,为开发者提供了高并发场景下的安

2025-05-12 00:42:29 226

原创 新手在使用宝塔Linux部署前后端分离项目时可能会出现的问题以及解决方案

本文提供了常见环境配置、端口开放、跨域请求、静态资源加载、数据库连接、SSL证书配置、进程守护和文件权限问题的解决方案。主要内容包括:通过宝塔面板安装所需环境并验证版本;在安全面板放行端口并检查服务监听状态;在Nginx配置中添加跨域支持;检查前端打包路径和Nginx root配置;确认数据库用户名密码和远程访问权限;申请SSL证书并强制HTTPS跳转;使用PM2管理器部署Node.js服务;修改项目目录所有者和权限。调试建议包括查看日志、清除缓存和通过.env文件管理环境变量。这些解决方案可帮助开发人员快

2025-05-11 18:16:14 433

原创 【无标题】

MyBatis-Plus 是一个基于 MyBatis 的增强工具,旨在简化 CRUD 操作并提升开发效率。其核心特性包括无侵入性、自动 CRUD、条件构造器以及多种插件支持(如分页、性能分析、乐观锁等)。通过通用 Mapper 和 Service,开发者可以快速实现数据库操作,而条件构造器则支持链式调用,便于构建复杂查询。MyBatis-Plus 还提供了分页插件、代码生成器等实用工具,进一步简化开发流程。常用注解如 @TableName、@TableId 和 @TableField 用于映射实体与数据库表

2025-05-11 18:13:34 397

原创 解决使用宝塔Linux部署前后端分离项目遇到的问题

没有解决跨域问题,在后端yml中设置content:/prod(生产环境),在前端.env文件中将http://127.0.0.1:8080/替换为公网IP,并在vite.config.js中配置代理转发,将http://127.0.0.1:8080/替换为访问的域名路径,并在replace后配置代理转发,转发路径为生产环境(/prod)首先:检查数据库,前后端文件,确保无误,检查Nginx配置文件(可重新安装Nginx,让它自动配置文件)问题一:访问域名转圈圈,显示404,403。

2025-05-10 22:38:45 450

原创 解决mybatisplus主键无法自增的问题

mybatisplus,yml配置正确,实体类加上 了注解,数据库设置了自增当mybatisplus配置文件完全正确,主键依然无法自增,可以这样解决:删除所有雪花算法生成的id字段,然后执行ALTER TABLE 库名.表名 AUTO_INCREMENT = 0;该语句的作用是:强制自增计数器回归“初始状态”该语句的。

2025-05-10 22:23:49 475

原创 基于若依和elementui实现文件上传(导入Excel表)

文件上传会直接触发action属性的路径提交,底层并不会走request工具类 ,我们需要手动拼接拦截器的请求头部分。自动校验jwt令牌,合法放行,不合法后端返回401,前端调回到登录页面。基于若依和elementui实现文件上传(导入Excel表)若依封装了Apache的poi功能,实现文件的上传和下载。使用若依生成基础代码时,若依自动集成了包含请求头操作。其余的就是复用代码进行前端代码完善以及后端代码编写。若依使用的是JS语法,需要改造为JS语法才能使用。在前端的配置文件中做了代理转发,

2025-04-12 20:10:21 432

原创 最详细的业务改造逻辑

/ 1.2 设置设备容量,根据设备型号id查询设备类型表,注入设备类型接口,拿到当前的设备类型对象,调用这个对象的get方法,拿到设备容量,在设置进去。// 1.2 设置设备容量,根据设备型号id查询设备类型表,注入设备类型接口,拿到当前的设备类型对象,调用这个对象的get方法,拿到设备容量,在设置进去。

2025-03-30 08:00:00 849

原创 基础的多表查询

分页查询使用了pagehelper的插件,最后一条SQL不能包含分号,还要根据条件实现动态SQL,保证值不为空,在里面加上别名前缀,确保表名正确下划线映射驼峰命名

2025-03-28 09:25:29 207

原创 修改页面回显,整个项目如何同步

在点位管理的界面中,通过区域的api向后端发送一个查询请求,后台会返回区域列表,在前端进行遍历展示即可。直接将要多次复用的代码抽取出来,以后要使用的话,直接引入就行。

2025-03-28 09:18:12 331

原创 多表查询如何仅用单表操作实现?

可采用刷新数据库的方式,更改数据库的数据,使前端回显与页面原型一致

2025-03-28 09:12:17 615

原创 如何避免SQL异常

编写SQL查询时,最后面有分号,粘贴进mybatis映射文件里,不能有分号,因为pagehelper插件会进行字符串截取,如果有分号,就会报错。我们需要再mybatis配置文件里面配置驼峰命名法,不然就会出现SQL异常,不配置的话使用其他查询接口也会出现SQL异常。这里的分组条件需要放在非空判断后面,不然使用新增接口时也会出现SQL异常。

2025-03-28 09:03:23 311

原创 对于后端已经实现逻辑了,而前端还没有设置显示的改造

对于后端已经实现逻辑了,而前端还没有设置显示的改造我们只需要修改前端代码即可修改前端对应页面的index.vue以及修改对应的js文件

2025-03-28 08:59:55 613

原创 **多表查询的实现**

查询点位用关联,根据id查询两个信息用嵌套他们都在一个查询条件中实现

2025-03-28 08:56:50 722

原创 如何实现同步存储

在员工表中有区域名称的冗余字段,在更新区域表的同时,同步更新员工表中区域名称。

2025-03-28 08:52:51 384

原创 SQLIntegrityConstraintViolationException

SQL完整性错误:这个错误是由于外键约束导致的。它表明在删除或更新父表的行时,存在外键约束,子表中的相关行会受到影响。是因为在删除tb_region表中的行时,tb_node表中的region_id外键约束会阻止操作。

2025-03-28 08:50:47 899

原创 OSS Bucket 权限设置

Bucket 的读写权限未设置为“公共读”(Private 权限下前端无法直接访问文件)。如果必须保持私有,需在后端生成带签名的临时 URL 返回给前端。登录阿里云 OSS 控制台,进入对应 Bucket。

2025-03-28 08:45:41 481

原创 .SQLIntegrityConstraintViolationException

### Cause: java.sql.SQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (使用同步存储功能:在员工表中有区域名称的冗余字段,在更新区域表的同时,同步更新员工表中区域名称。使用全局异常处理器处理,提示用户无法删除,数据关联着其他数据,删除会 导致数据信息不一致。,需要确保冗余字段及时更新,保持数据的一致性。

2025-03-28 08:44:42 479

原创 如何实现一个简单的业务改造?

从页面原型来看,点位数这一栏的话我们是没有的,我们需要在前端,后端,数据库都进行修改,从而实现用后端查询出数据库里的内容在前端页面回显。

2025-03-28 08:42:49 286

原创 修改前后端分离项目的代码

在 SpringBoot + Vue3 项目中查找并修改首页代码,需分前后端处理:

2025-03-28 08:29:42 472

原创 idea中如何使用git

个人分支/临时分支:优先使用 git reset --hard + git push -f。团队协作分支:优先使用 git revert 生成反向提交。彻底删除分支:直接通过命令行或 Gitee 网页端删除。

2025-03-28 08:27:32 1529

原创 表单对象与当前行对象的 区别

在这个过程中,如果后端返回的数据结构与表单的数据结构不一致,就需要进行相应的转换。这些数据是只读的,用于展示和参考。:通常是用户在编辑或新增时填写的数据,这些数据可以被修改,并且在提交表单时会被发送回后端进行保存。:其结构通常是为了方便用户输入和验证而设计的,可能会对原始数据进行一定的转换和简化。proxy.$modal.msgSuccess("修改成功");:其结构完全取决于后端返回的数据格式,可能包含一些额外的字段或嵌套的对象。通过以上步骤,可以确保当前行对象的数据与表单中的数据之间的正确转换和处理。

2025-03-28 08:25:43 680

原创 Java中好用的快捷键

在 IntelliJ IDEA 中,可以使用以下快捷键组合来实现将。这会自动补全代码,生成一个变量来接收。的返回值,此时会提示你输入变量名,输入。类似,然后再进行变量名和类型的修改6。最后,手动在变量定义前加上。,再按下回车键,效果与按下。

2025-03-20 13:23:51 178

原创 <resultMap>详解

javajava​。

2025-03-20 13:22:56 1012

原创 苍穹外卖微信小程序端实现菜品分类回显

没有设计之前是这样子的,只实现了获取微信用户登录功能开始设计:那么我们需要按照三层架构的思想设计。

2025-03-08 18:29:54 707

原创 springboot+vue3如何实现一个简单的业务改造?

springboot+vue3如何实现一个简单的业务改造?

2025-03-08 18:26:21 500

原创 什么是bean?

通过创建和使用 Bean,可以实现代码的模块化和可重用性,将业务逻辑和数据封装在一个对象中,方便管理和维护。Bean 可以用于表示各种概念,例如用户、订单、产品等,通过创建不同的 Bean 实例,可以对应不同的数据和业务操作。封装数据:Bean 包含私有的实例变量(成员变量)和公共的访问方法(getter 和 setter),用于封装和访问数据。在Java中,Bean 是一个普遍的概念,代表一个简单的Java对象(Plain Old Java Object),用于封装数据和业务逻辑。

2024-11-14 12:15:13 283 1

原创 面试:Spring为什么推荐使用构造函数进行依赖注入?其他的为什么不推荐?

我们可以还用lombok提供的@RequiredArgsConstructor注解,它会把所有带final的属性生成一个构造函数。如:@Autowired private final UserService userService;通过构造函数的方式还可以确保所需要的属性不为null。有时候需要将一些属性修饰为不可变,防止别人修改。如果我们没有给注入的接口配置bean,可以将。我们不能把这个属性修饰成final不可变的。,表明我们可以接受一个不存在的bean。正确使用方法:通过构造函数的方式。

2024-11-13 22:41:41 350

原创 面试题:说说@Autowired?

4.1多个匹配的 Bean 问题:如果在容器中有多个类型相同的 Bean,@Autowired默认会根据 Bean 的名称来选择一个进行注入。@Service注解标记UserService是一个 Spring 管理的服务组件,Spring 会扫描并处理这个类中的@Autowired注解。3.@Autowired注解另外还可以注入方法,但是很少使用,因为直接注入接口,接口里也包含了这个方法,注入接口简洁和直观。1.它new一个对象的作用是一样的,但是new对象会使耦合性变高,不利于维护和测试。

2024-11-13 22:33:36 316

原创 AOP能够应用在哪里?

使用AOP解决复用型代码

2024-11-11 09:54:41 451

原创 删除数据时,数据库中的表关联了其他表,怎么删除?

删除数据时,数据库中的表关联了其他表,怎么删除?

2024-11-11 09:47:07 788

HTML,css,JavaScript写的旋转相册

适合哄女友开心的旋转相册。

2025-05-11

基于springboot,vue,mybatis开发的智能售货机管理系统

帝可得源码,适合新手学习全栈开发,并熟悉业务流程。

2025-05-11

springboot中删除数据时,数据库中的表关联了其他表,怎么删除?

springboot中删除数据时,数据库中的表关联了其他表,怎么删除? 适用人群,开发小白 场景;一个系统中的增删改查

2024-11-13

空空如也

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

TA关注的人

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