- 博客(45)
- 收藏
- 关注
原创 mybatisplus 集成逻辑删除
一开始,没去查资料,后面要被AI气死了,先看它的的话一开始,看ai的描述,我还以为,不需要改数据库,mybatis-puls自动拦截集成就可以实现逻辑删除,c,最后还是要给数据库加一个标志位。运行向数据库插入一个字段deleted。
2025-05-13 17:26:55
649
原创 服务器mysql连接我碰到的错误
可以访问这个地址。由于应用程序容器和MySQL容器位于不同的Docker网络中,应用程序容器可能无法直接访问宿主机的。2.我尝试使用我的服务器IP地址进行连接,心想反正映射了吧,我本地使用datagrip可以连上。我在服务器上使用docker部署了java项目与mysql,但mysql连接一直出现问题。1.首先,我使用的是localhost连接,心想反正都在服务器上吧。指的是当前计算机,服务是用一个个的docker部署的,,也需要确保运行应用程序的Docker容器(搞了2个下午,总算成功了。
2025-05-11 22:49:23
444
原创 git相关
是一个本地操作,它只会修改你当前所在分支的提交历史,而不会直接影响远程仓库或任何其他分支。分支的提交历史会包含一个合并提交,这会使提交历史看起来像一个分支树。分支上进行开发一样,从而保持提交历史的线性。的副本,但它们的提交 ID 已经发生了改变。如果在变基过程中出现冲突,请解决冲突并使用。分支的提交历史更加清晰,更容易理解。如果出现冲突,请解决冲突。分支的更改推送到远程仓库,使远程。分支的提交历史看起来像是直接在。分支的最新提交之后。分支分叉出来的,并且在。分支上的所有提交都放在。分支的提交“移动”到。
2025-05-09 17:50:28
580
原创 groups 属性分组
它的作用是允许你根据不同的操作或场景,应用不同的验证规则。属性在 Bean Validation API 中用于实现。可以使用自定义的验证器和验证组来实现这种条件验证。在 Spring Boot 中,可以使用。注解来指定要应用的验证组。
2025-05-06 16:24:55
315
原创 CompletableFuture
它可以让你以非阻塞的方式执行任务,并在任务完成时获取结果或处理异常。任务,该任务返回一个字符串。是 Java 8 引入的一个类,它实现了。方法阻塞当前线程,直到。在这个例子中,我们使用。方法处理结果,并使用。
2025-05-01 15:54:49
392
原创 docker部署java程序
2.mvn clean install -P prod 打包,指定读取配置环境为prod。6. docker logs -f d31203c1a451 监控相关容器。4. docker build -t pyd-server 构建镜像。3. cd 进入dockerfiles 所在目录。1.git clone 拉取代码。
2025-04-28 17:59:58
213
原创 ICP 减少的是 不必要 的回表,而不是 所有 回表
无论是否开启 ICP,都必须进行回表操作。无论是否开启 ICP,都必须进行回表操作。减少那些不满足条件的数据的回表操作。ICP 在这个例子中的作用是,减少了需要回表的记录数量。
2025-04-17 16:36:20
280
原创 回溯算法:List 还是 ArrayList?一个深拷贝引发的思考
在学习和使用回溯算法解决问题时,我们经常会遇到需要维护一个结果列表,例如所有可能的子集、组合或排列。这个结果列表通常是一个,其中内部的代表一个具体的解。然而,在构建这些内部的时,我们应该使用List接口还是ArrayList类呢?这个问题看似简单,但背后隐藏着一个关于深拷贝和浅拷贝的重要概念,它直接影响到回溯算法的正确性。
2025-04-15 22:44:54
479
原创 微服务相关
CAP理论是分布式系统设计的核心原则,由计算机科学家 Eric Brewer 提出,指出在分布式系统中,以下三个特性无法同时完全满足一致性(Consistency)所有节点在同一时间的数据完全一致(强一致性)。例如:写入后立即读取,所有节点返回相同结果。可用性(Availability)每个请求都能获得响应(不保证数据最新),系统始终可用。例如:即使部分节点故障,服务仍能响应(可能返回旧数据)。分区容错性(Partition Tolerance)系统在网络分区(节点间通信中断)时仍能继续运行。BASE。
2025-04-10 21:12:52
954
原创 如何正确使用 Scanner 读取输入数据并避免常见问题
在使用Scanner时,确保你了解不同方法的行为和如何正确处理输入流。使用单个Scanner实例:避免每次都创建新的Scanner实例,以免输入流冲突。调用nextLine()来消耗换行符:如果在读取整数后需要读取字符串,记得调用nextLine()来消耗掉换行符。通过循环处理多组数据:使用for循环逐组读取数据。
2025-04-10 12:29:16
352
原创 equals() 和 hashCode()
作为 Java 开发者,我们经常会用到equals()和hashCode()这两个方法。它们是Object类中定义的基础方法,看似简单,但如果理解不透彻,很容易在实际开发中踩坑。本文将深入探讨这两个方法的作用、区别、以及如何正确地重写它们。
2025-04-08 21:30:17
1128
原创 System.arraycopy()
方法是 Java 提供的一个高效的数组复制工具,它可以快速地将一个数组的指定区域复制到另一个数组的指定位置。通过本文的介绍,你应该已经掌握了方法的基本语法、使用方法、性能优势以及一些注意事项。在实际应用中,可以灵活运用方法来提高数组复制的效率。
2025-04-03 21:05:54
1158
原创 MinIO
MinIO 是一个高性能、分布式的对象存储服务器。简单来说,它可以让你像使用云存储服务(例如 AWS S3、Google Cloud Storage 或 Azure Blob Storage)一样,在自己的硬件上搭建一个私有的对象存储服务。MinIO 是一个高性能、分布式的对象存储服务器,可以让你在自己的硬件上搭建一个私有的对象存储服务。它具有高性能、兼容 S3 API、轻量级、开源等特点,非常适合存储非结构化数据和构建云原生应用。
2025-04-03 17:42:53
828
原创 42. 接雨水
一开始我很疑惑,为什么height【left】<height【righ】,那么Lmax<Rmax一定存在,height【】不是当前值吗,为什么可以确定。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。如果height【left】<height【righ】,那么Lmax<Rmax一定存在:ans=ans+Lmax-height【left】;的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。
2025-04-02 22:49:28
300
原创 MySQL GROUP BY 和 HAVING 子句中 ‘Unknown column‘ 错误的深入解析
在使用 MySQL 进行数据分析和报表生成时,GROUP BY和HAVING子句是非常强大的工具。。本文将深入解析这个错误的原因,并提供详细的解决方案。
2025-04-02 16:46:57
438
原创 56. 合并区间
否则,可以合并,Math.max(merged.get(merged.size()-1)[1],R);如果L大于emged数组集合中的最后一个数(merged.get(merged.size()-1)[1]),说明不可以合并。2. 肯定要对原始区间进行排序,方便合并左右区间,可以使用 Arrays.sort()方法。3. 开始合并,for()循环,L,R为现在遍历的区间的start与end,emged接收结果。区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].1.实现判断是否为空,为空。
2025-04-01 22:30:58
301
原创 Arrays.sort() 方法
对于对象数组或需要特殊排序规则的情况,可以使用Comparatorjava复制// 按字符串长度排序// 二维数组按第一列排序(区间问题的典型用法)
2025-04-01 21:57:06
552
原创 53. 最大子数组和
首先肯定是从【0】开始,每次都记住上一次的结果zres,如果大于0,说明上一次结果是有益的,就加上,如果小于0,就可以进行抛弃,从当前点向后继续遍历。,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。连续子数组 [4,-1,2,1] 的和最大,为 6。是数组中的一个连续部分。zres是当前最大结果。
2025-04-01 18:35:26
219
原创 1934. 确认率
该表的每一行都表示ID为user_id的用户在time_stamp请求了一条确认消息,该确认消息要么被确认('confirmed'),要么被过期('timeout')。action是类型为('confirmed', 'timeout')的ENUM。消息的数量除以请求的确认消息的总数。没有请求任何确认消息的用户的确认率为。(user_id, time_stamp)是该表的主键。每一行都包含ID为user_id的用户的注册时间信息。user_id是一个引用到注册表的外键。User_id是该表的主键。
2025-03-30 17:03:04
448
原创 DATEDIFF 函数
函数用于计算两个日期之间的差值。函数的实现和语法可能略有不同,但基本原理是相同的。函数只接受两个参数,并返回天数差。SQL Server 的。指定要计算的日期部分。
2025-03-28 19:56:10
347
原创 1164. 指定日期的产品价格(中等)
对应的最新价格,如果没有在 2019-08-16 之前更新过价格,则使用默认价格 10。(product_id, change_date) 是此表的主键(具有唯一值的列组合)。这张表的每一行分别记录了 某产品 在某个日期 更改后 的新价格。时全部产品的价格,假设所有产品在修改前的价格都是。1164. 指定日期的产品价格。编写一个解决方案,找出在。这条语句的目的是找出每个。
2025-03-26 14:44:50
221
原创 第N高的薪水
如果有多个相同的数据,使用关键字 distinct 去重。该表的每一行都包含有关员工工资的信息。在 SQL 中,id 是该表的主键。个最高工资,查询结果应该为。
2025-03-26 12:54:42
256
原创 至少有5名直接下属的经理
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。表中找出那些管理了至少 5 名员工的经理的名字。子查询负责找出符合条件的。该表的每一行表示雇员的名字、他们的部门和他们的经理的id。HAVING 子句可以让我们筛选分组后的各组数据。如果managerId为空,则该员工没有经理。通过一个子查询和一个主查询的结合,实现了从。id 是此表的主键(具有唯一值的列)。没有员工会成为自己的管理者。查询结果格式如下所示。,主查询负责根据这些。找到对应的员工姓名。
2025-03-25 23:00:36
356
原创 黑马点评改进1.布隆过滤器
通过在请求到达时先使用布隆过滤器进行判断,可以避免大量无效请求直接访问数据库,从而提高系统的性能和稳定性。Funnels.longFunnel(), // 使用 Long 类型。// 如果不在,说明数据库中肯定不存在,直接返回错误。方法,使其首先检查店铺 ID 是否在布隆过滤器中,加入红色的代码就行了。,以便从数据库中查询店铺 ID,初始化布隆过滤器。// 3. 将店铺 ID 添加到布隆过滤器。// 1. 从数据库加载所有店铺 ID。// //互斥锁缓存击穿。// 2. 创建布隆过滤器。
2025-03-23 16:18:59
2275
2
原创 解决 Spring Boot 连接 MySQL 时遇到的 “Public Key Retrieval is not allowed“ 错误
"Public Key Retrieval is not allowed" 错误通常是由于 MySQL 服务器的身份验证机制与你的 JDBC 驱动程序不兼容造成的。通过更新 JDBC 驱动程序,更新用户的身份验证插件,或者显式允许公钥检索,你可以解决这个问题。记住,安全性至关重要,请务必权衡各种解决方案的安全风险,并采取适当的措施来保护你的数据库。如果你的 MySQL 版本是 8.0 或更高版本,并且用户是在旧版本上创建的,升级到 8.0 后需要更新用户的身份验证插件。在你的 JDBC 连接字符串中添加。
2025-03-23 15:11:22
757
原创 【无标题】幻读 vs 不可重复读:数据库隔离级别的核心问题
不同的隔离级别会带来不同的现象,其中**幻读(Phantom Read)**和**不可重复读(Non-repeatable Read)**是两个常见的问题。- **事务A** 再次查询时,虽然它只能看到启动事务时的数据,但由于新插入的行(`id=4`)符合查询条件(`age > 20`),因此结果集中出现了新行。| **数据范围** | 涉及结果集的变化(新增或删除行) | 涉及同一行数据的修改或删除 |- **定义**:在同一事务中,两次相同的查询返回的结果集不同,即出现了新的行。
2025-03-21 01:18:02
507
原创 黑马商城,nacos第一次可以访问,电脑重启后拒绝访问
通过检查 Nacos 容器状态,发现 MySQL 容器和 Nacos 容器都在运行,但 Nacos 容器无法连接到 MySQL 容器,这可能是因为 Nacos 在启动时,MySQL 容器没有完全启动并准备好接受连接。在黑马商城的开发过程中,遇到了一个问题:Nacos 在第一次启动时可以正常访问,但在电脑重启后,Nacos 服务无法访问,浏览器出现“拒绝访问”或“ERR_CONNECTION_REFUSED”错误。2.也可以每次启动后输入docker restart nacos,,来重新启动nacos。
2025-03-18 18:10:27
278
5
原创 ArryList源码分析
ArrayList是 Java 中非常常用的一个集合类,它实现了List接口,并且底层是基于(也叫)来存储数据的。它提供了对元素的快速随机访问,并且可以动态地增加容量。
2025-03-09 16:17:40
1114
原创 @ConfigurationProperties注解
是 Spring Framework 中一个非常有用的注解,用于将外部配置文件中的属性值映射到 Java 对象。它可以用来将配置文件(如或)中的属性值注入到 Java 类的字段中,从而简化了属性管理,尤其在使用 Spring Boot 项目时非常常见。
2025-03-07 22:19:07
539
原创 长度最小的连续子数组(滑动窗口)
while当num>=tager(目标值),我们就可以移动left,right不变,来寻找结尾为right,的长度最短的且>=tager的子数组;注意:并不是结束了,外层for循环还在移动right,然后再次进入while,这样result不断进行刷新;我们可以想一下,有许多根本不可能满足条件的子数组进行了遍历,就是那些。使用2个for循环来查找,时间复杂度很明显是O(n^2)。如果不存在符合条件的子数组,返回。找出该数组中满足其总和大于等于。2,滑动窗口(双指针法)这是代码随想录的代码。
2025-03-04 22:38:08
468
原创 数组中移除元素(快慢指针)
1,暴力解法:使用2个for循环一个for循环遍历数组元素 ,第二个for循环更新数组,暴力解法的时间复杂度是O(n^2)给出一个元素,在数组中删除对应的元素是一个常见的问题;
2025-03-01 16:56:57
248
原创 2分法学习
它的核心思想是通过将数组不断对半分割,快速缩小查找范围,从而以较低的时间复杂度找到目标元素。else if (nums[mid] > target) { // 如果中间值大于目标值,右边界左移 rig = mid - 1;if (nums[mid] < target) { // 如果中间值小于目标值,左边界右移 left = mid + 1;一般有【),与【】的区间选择方法,用于确定while()中的判断条件是。
2025-02-27 22:09:12
106
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人