- 博客(95)
- 收藏
- 关注
原创 PageHelper分页扩展排序
博客官网:每一次的积累,每一次的学习,每一次在个人项目中对难点的突破,都是我们在这片海洋中留下的印记。这些印记见证了我们的成长,也激励着我们不断前进。
2025-04-02 14:26:21
324
原创 PageHelper分页原理源码跟踪
首先会把分页参数封装成Page对象放到中然后根据SQL进行拼接转换(select * from table where a) -> (select count(“0”) from table where a)和(select * from table where a limit?有了total总条数、pageNum当前第几页、pageSize每页大小和当前页的数据,就可以算出分页的其他非必要信息(是否为首页,是否为尾页,总页数)我们可以看到总共只有4页,我们访问第5。
2025-04-02 14:25:02
736
原创 PageHelper分页升级版-兼容MybatisPlus
让我们带着这份对技术的热爱与执着,继续前行吧。在探索的道路上,我们或许会疲惫,或许会迷失方向,但只要心中的信念之火不熄,我们定能穿越风雨,迎接那属于自己的技术之光。
2025-04-02 14:22:19
194
原创 轻量级的、基于文本的实时通信机制Server-Sent Events (SSE)
Server-Sent Events (SSE)是一种基于 HTTP 协议的标准,它允许服务器通过单向连接向浏览器发送实时更新。与 WebSocket 不同,SSE 仅允许服务器向客户端推送数据,而客户端不能通过同一连接发送数据给服务器。SSE 是一种轻量级的、基于文本的实时通信机制,适用于需要向客户端发送实时信息的场景,比如新闻推送、股票实时数据、天气预报等。
2025-04-01 14:29:45
250
原创 架构设计之自定义延迟双删缓存注解(上)
经常修改的数据表不适合使用Redis,因为双删策略执行的结果是把Redis中保存的那条数据删除了,以后的查询短时间内就都会去查询数据库,导致mysql侧压力瞬间增大,所以Redis使用的是读远远大于改的数据缓存。
2025-03-21 08:58:14
932
原创 Stream流与Guava工具类使用
流(Stream) 到底是什么呢?是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。集合讲的是数据流讲的是计算!注意Stream 自己不会存储元素。Stream不会改变源对象。相反,他们会返回一个持有结果的新Stream。Stream 操作是延迟执行的。这意味着他们会等到需要结果的时候才执行。Stream 操作可以通过方法链式调用的方式构建操作序列。在这个序列中,每个中间操作都会返回一个新的 Stream 对象,但实际的操作并没有立即发生。只有在终端操作(如forEach。
2025-03-18 10:15:25
365
原创 Git常用操作之GitLab
移动到目标提交,并且会重置暂存区和工作区,即丢弃所有未提交的更改。这个命令会将未提交的更改保存为一个栈中的堆栈帧(stash),并将你的工作目录和暂存区恢复到干净的状态。这将移动你的 HEAD 和当前分支指针到指定版本,并将工作目录和暂存区都恢复到目标版本的状态。是一种更安全的方式,因为它不会修改历史记录,而是创建一个新的提交来撤销之前的提交。这些模式控制了命令的行为,特别是在重置提交时涉及到的暂存区和工作区的处理。是一个特殊的指针,它指向当前所在的本地分支的最新提交(最新的提交记录)。
2025-03-14 16:43:44
1135
原创 十、MyBatis的缓存
一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会被缓存,下次查询相同的数据,就 会从缓存中直接获取,不会从数据库重新访问。
2023-06-08 09:58:43
1283
原创 九、动态SQL
Mybatis框架的动态SQL技术是一种根据特定条件动态拼装SQL语句的功能,它存在的意义是为了解决拼接SQL语句字符串时的痛点问题。if标签可通过test属性的表达式进行判断,若表达式的结果为true,则标签中的内容会执行;反之标签中 的内容不会执行2、where仔细观察会发现,这两种方式的区别在于第一if条件中的SQL语句是否有。这里就涉及到标签的两个特性:所以说,上面的两种写法都是可以了,Mybatis的标签会替我们做一些事情。但需要注意的是:标签只会 智能的去除(忽略)首个满足条件语句的前
2023-06-08 09:56:32
957
原创 五、MyBatis获取参数值的两种方式(重点)
{}的本质就是字符串拼接,#{}的本质就是占位符赋值${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引 号;但是#{}使用占位符赋值的方式拼接sql,此时为字符串类型或日期类型的字段进行赋值时,可以自动添加单引号。
2023-06-08 09:54:12
1459
原创 一、MyBatis简介
MyBatis最初是Apache的一个开源项目, 2010年6月这个项目由Apache Software Foundation迁 移到了Google Code。随着开发团队转投Google Code旗下, iBatis3.x正式更名为MyBatis。代码于 2013年11月迁移到Github。iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBatis提供的持久层框架 包括SQL Maps和Data Access Objects(DAO)。
2023-06-08 09:53:02
1490
原创 十、Java 17 新特性
JDK 17 在 2021 年 9 月 14 号正式发布了!根据发布的规划,这次发布的 JDK 17 是一个长期维护的版本(LTS)。Java 17 提供了数千个、和更新,以及(JDK 增强提案),进一步改进了 Java 语言和平台,以帮助开发人员提高工作效率。JDK 17 包括新的语言增强、库更新、对新 Apple (Mx CPU)计算机的支持、旧功能的删除和弃用,并努力确保今天编写的 Java 代码在未来的 JDK 版本中继续工作而不会发生变化。
2022-12-29 10:37:08
4696
原创 九、Java 16 新特性
JDK 16 在 2021 年 3 月 16 号发布!根据发布的规划,这次发布的 JDK 17 是一个长期维护的版本(LTS)。Java 16 提供了数千个、和更新,以及(JDK 增强提案),进一步改进了 Java 语言和平台,以帮助开发人员提高工作效率。
2022-12-29 09:02:06
1210
原创 八、Java 15 新特性
Text Blocks首次是在JDK 13中以预览功能出现的,然后在JDK 14中又预览了一次,终于在JDK 15中被确定下来,可放心使用了。运行程序,输出(可以看到展示为一行了):3、新功能和库的更新1、JEP 339: Edwards-Curve 数字签名算法 (EdDSA)与 JDK 中的现有签名方案相比,EdDSA 具有更高的安全性和性能,因此备受关注。它已经在OpenSSL和BoringSSL等加密库中得到支持,在区块链领域用的比较多。EdDSA是一种现代的椭圆曲线方案,具有JDK中现有
2022-12-27 09:26:02
1223
原创 七、Java 14 新特性
在这一版中,主要带来了 ZGC 增强、instanceof 增强、Switch 表达式更新为标准版等方面的改动、增强和新功能。本文主要介绍 Java 14 中的主要新特性,带您快速了解 Java 14 带来了哪些不一样的体验和便利。
2022-12-27 09:24:27
633
原创 六、Java 13 新特性
在 Java 10 中,为了改善应用启动时间和内存空间占用,通过使用 APP CDS,加大了 CDS 的使用范围,允许自定义的类加载器也可以加载自定义类给多个 JVM 共享使用,具体介绍可以参考 Java 10 新特性介绍一文详细介绍,在此就不再继续展开。Java 13 中对 Java 10 中引入的 应用程序类数据共享进行了进一步的简化、改进和扩展,即:允许在 Java 应用程序执行结束时动态进行类归档,具体能够被归档的类包括:所有已被加载,但不属于默认基层 CDS 的应用程序类和引用类库中的类。通过这种
2022-12-27 09:22:35
899
原创 五、Java 12 新特性概述
JDK12 在 2019 年 3 月 19 号正式发布,不同于JDK11,JDK12并不是一个LTS版本。作为一个中间版本,JDK12版本特性增加较少。2017年宣布的加速发布节奏要求每六个月发布一次功能,每季度更新一次,每三年发布一次长期支持(LTS)更新版本(或每六个版本一次)。
2022-12-27 09:21:50
692
原创 四、Java 11 新特性
Java 11 在 2018 年 9 月 25 日正式发布,之前在 Java 10 新特性介绍 中介绍过,为了加快的版本迭代、跟进社区反馈,Java 的版本发布周期调整为每六个月一次——即每半年发布一个大版本,每个季度发布一个中间特性版本,并且做出不会跳票的承诺。通过这样的方式,Java 开发团队能够将一些重要特性尽早的合并到 Java Release 版本中,以便快速得到开发者的反馈,避免出现类似 Java 9 发布时的两次延期的情况。
2022-12-27 09:20:57
238
原创 三、Java 10 新特性
作为当今使用最广泛的编程语言之一的 Java 在 2018 年 3 月 21 日发布了第十个大版本。为了更快地迭代、更好地跟进社区反馈,Java 语言版本发布周期调整为每隔 6 个月发布一次。Java 10 是这一新规则之后,采用新发布周期的第一个大版本。Java 10 版本带来了很多新特性,其中最备受广大开发者关注的莫过于局部变量类型推断。除此之外,还有其他包括垃圾收集器改善、GC 改进、性能提升、线程管控等一批新特性。
2022-12-27 09:19:39
340
原创 二、Java 9 新特性
Java 9 正式发布于 2017 年 9 月 21 日。作为 Java8 之后 3 年半才发布的新版本,Java 9 带来了很多重大的变化。其中最重要的改动是 Java 平台模块系统的引入。除此之外,还有一些新的特性。本文对 Java9 中包含的新特性做了概括性的介绍,可以帮助你快速了解 Java 9。
2022-12-27 09:14:03
313
原创 一、JDK8新特性
速度更快代码更少(增加了新的语法 Lambda 表达式)强大的 Stream API便于并行最大化减少空指针异常 Optional只包含一个抽象方法的接口,称为函数式接口。你可以通过 Lambda 表达式来创建该接口的对象。(若 Lambda 表达式抛出一个受检异常,那么该异常需要在目标接口的抽象方法上进行声明)。我们可以在任意函数式接口上使用注解,这样做可以检查它是否是一个函数式接口,同时 javadoc 也会包含一条声明,说明这个接口是一个函数式接口。
2022-12-27 09:11:02
831
原创 十、Kubernetes 调度原理
https://kubernetes.io/zh/docs/concepts/policy/resource-quotas/https://kubernetes.io/zh/docs/tasks/administer-cluster/manage-resources/quota-memory-cpu-namespace/https://kubernetes.io/zh/docs/concepts/policy/resource-quotas/#%E5%AD%98%E5%82%A8%E8%B5%84%E6%B
2022-07-11 13:58:53
589
原创 九、Kubernetes-配置与存储
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jHfpsjHe-1657519068936)(images/8.Kubernetes-配置与存储/1620441979589.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k9YA2spQ-1657519068936)(images/8.Kubernetes-配置与存储/1620633822448.png)]Kubernetes 目前支持多达 28 种数据卷类型(其中大部分特定于具体的云
2022-07-11 13:58:01
348
原创 八、Kubernetes 网络和负载均衡
Kubernetes 网络解决四方面的问题:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vG284U51-1657518994168)(images/Kubernetes/1620208232664.png)]门面。所有的零散层上再抽取一个聚合层。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LEnpUE8y-1657518994169)(images/Kubernetes/1620106769755.png)][外链图片转存失败,源站可能有
2022-07-11 13:56:51
2862
原创 七、工作负载
工作负载是运行在 Kubernetes 上的一个应用程序。一个应用很复杂,可能由单个组件或者多个组件共同完成。无论怎样我们可以用一组Pod来表示一个应用,也就是一个工作负载Pod又是一组容器(Containers)所以关系又像是这样工作负载(Workloads)控制一组PodPod控制一组容器(Containers) 比如Deploy(工作负载) 3个副本的nginx(3个Pod),每个nginx里面是真正的nginx容器(container)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直
2022-07-11 13:55:24
2326
原创 六、万物基础-容器
k8s的Pod是最小单位,Pod中容器的配置需要注意以下常用的Pod里面的容器内容可以写的东西1、镜像在 Kubernetes 的 Pod 中使用容器镜像之前,我们必须将其推送到一个镜像仓库(或者使用仓库中已经有的容器镜像)。在 Kubernetes 的 Pod 定义中定义容器时,必须指定容器所使用的镜像,容器中的 字段支持与 命令一样的语法,包括私有镜像仓库和标签。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L7cUhD4v-1657518817633)(ima
2022-07-11 13:54:05
198
原创 五、kubernetes Objects(k8s对象)
https://kubernetes.io/zh/docs/concepts/overview/working-with-objects/kubernetes-objects/k8s里面操作的,就是,可以使用yaml来声明对象。然后让k8s根据yaml的声明创建出这个对象;kubectl create/run /expose…操作 Kubernetes 对象 —— 无论是创建、修改,或者删除 —— 需要使用 Kubernetes API。比如,当使用 命令行接口时,CLI 会执行必要的 Kubernete
2022-07-11 13:53:06
572
原创 四、部署dashboard
https://kubernetes.io/zh/docs/tasks/access-application-cluster/web-ui-dashboard/https://github.com/kubernetes/dashboard[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ICUlP6WR-1657518663640)(images/4.Kubernetes-基础入门/1619274681271.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保
2022-07-11 13:51:58
497
原创 三、Kubernetes基础入门
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zTg440FB-1657518623047)(https://xiaoxue-blog.oss-cn-shenzhen.aliyuncs.com/blog/202207111344206.svg?x-oss-process=style/style_one)]以上展示了一个master(主节点)和6个worker(工作节点)的k8s集群[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Md8Rv9u1
2022-07-11 13:50:40
388
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人