自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Nginx的负载均衡

Nginx 默认不启用负载均衡,你需要在nginx.conf中手动配置。通过定义upstream服务器组和相应的server块,你可以实现负载均衡。确保配置后重启 Nginx 以使更改生效。

2024-09-05 19:05:11 588

原创 Java多线程的可重入和不可重入

可重入锁:同一线程可以多次获取,避免死锁,适合复杂的调用关系。不可重入锁:同一线程不能多次获取,适合需要严格控制资源访问的场景。根据实际需求选择合适的锁机制是多线程编程中重要的一部分。

2024-09-05 19:02:13 930

原创 SpringBoot查缺补漏(“女娲补天”)

自动版本管理:Spring Boot 通过启动器和父 POM 机制,自动管理依赖版本,简化了开发流程。减少错误:这种方式减少了依赖版本冲突的可能性,提高了项目的稳定性。

2024-08-29 12:10:51 296

原创 Linux零散拾遗

在Linux系统中,环境变量是在 shell 启动时或在运行程序时设置的值,它们定义了影响程序运行行为的环境。环境变量可以用于设置用户的家目录、命令搜索路径、编程语言运行时环境等多种用途。

2024-08-24 21:10:14 447

原创 Docker使用教程

Docker 是将应用和环境打包成一个镜像。这样,数据就不应该保存在容器中,否则容器删除,数据就会丢失,有着非常大的风险。为此,容器和主机之间需要有一个数据共享技术,使得在 Docker 容器中产生的数据能够同步到本地。这就是数据卷技术。其本质上是一个目录挂载,将容器内的目录挂载到主机上。- -d:网络模式- -subnet:子网- -gateway:网关。

2024-08-16 21:32:22 972 1

原创 MySQL零散拾遗(九)--- 创建和管理表

语句: 数据定义语言,主要是进行定义/改变表的结构、数据类型、表之间的链接等操作。)语句: 数据操纵语言,主要是对数据进行增加、删除、修改、查询操作。)语句: 数据控制语言,主要是用来设置/更改数据库用户权限,数据回滚。使用 AS subquery 选项,将创建表和插入数据结合起来。的操作默认情况,一旦执行,也是不可回滚的。指定的列和子查询中的列要一一对应。的操作一旦执行,就不可回滚。查看当前正在使用的数据库。操作之后,一定会执行一次。通过列名和默认值定义列。操作就可以实现回滚。

2024-07-31 20:47:47 342

原创 MySQL零散拾遗(八)--- MySQL正则表达式

MySQL 支持使用正则表达式进行模式匹配,这对于复杂的字符串处理非常有用。MySQL 中的正则表达式可以通过 或 运算符来实现。下面详细介绍 MySQL 中正则表达式的语法和一些常用的正则表达式模式。基本匹配符:锚点量词:字符类:预定义类:特殊字符:在 MySQL 中,你可以使用 或 运算符来应用正则表达式。这两个关键字在功能上是相同的,但在某些情况下, 可能会被优化器优化得更好。匹配字符串开头:匹配字符串结尾:匹配任意数字:匹配多个字符:匹配电子邮件地址:

2024-07-26 21:24:37 636

原创 MySQL练手 --- 1789. 员工的直属部门

题目链接:1789. 员工的直属部门这道题虽然是个简单题,但是"坑"倒是不少,所以记录一下思路:题目要干:一个员工可以属于多个部门。当一个员工加入超过一个部门的时候,他需要决定哪个部门是他的直属部门。请注意,当员工只加入一个部门的时候,那这个部门将默认为他的直属部门,虽然表记录的值为’N’.要求:查出员工所属的直属部门由题可知,两个过滤条件,一个是直属部门标识为Y(primary_flag = 'Y'),另一个是该员工只加入了一个部门(COUNT(employee_id) = 1)。又因为一个

2024-07-26 17:05:15 325

原创 MySQL练手 --- 1174. 即时食物配送 II

这个表达式是一个很有趣的用法,它的意思是统计order_date和两个字段相等的行数。是一个逻辑表达式,它会对每一行数据进行比较,如果order_date等于,则该表达式的值为1,否则为0。然后SUM()函数会将所有行的这个逻辑表达式的结果进行求和。也就是说,会统计出order_date和相等的行数。

2024-07-25 23:24:09 413 2

原创 MySQL零散拾遗(七)--- 突发奇想的一些疑虑

更通用的日期格式化函数,可以灵活地控制输出格式。EXTRACT(): 专门用于从日期中提取特定的部分,返回的是数字或数字的组合。根据需求选择合适的函数。如果只需要简单地提取年份和月份,可能更为直观和方便。在查询中,实际上是对和country进行分组,因此不会出现不认识month的错误。这是因为MySQL能够理解month别名代表的内容,并据此进行分组操作。

2024-07-25 20:40:17 391

原创 MySQL练手 --- 1141. 查询近30天活跃用户数

然后再日期进行分组,计算用户id,这时需要对用户id进行去重,若不去重,则会出现以下结果。把在时间要求内的筛选出来,再进行 用户id 分组,最后统计用户个数(去重后的)),近 30 天的每日活跃用户数(当天只要有一条活动记录,即为活跃用户)提出问题,这两个mysql语句都可以执行成功,但两者一点问题都没有嘛?一个先过滤后分组,另一个先分组后过滤。借这个案例把里面的要点进行更进一步的阐述说明。)保证每个用户不相同(或者说重复出现)要计算日期之间的天数,这时就需要用到。所以需要对用户id进行去重处理(

2024-07-25 12:17:06 591

原创 MySQL练手 --- 1633. 各赛事的用户注册率

返回的结果表按 percentage 的 降序 排序,若相同则按 contest_id 的 升序 排序。对赛事进行分组,然后分别对各赛事统计表名人数,最后除以总人数。然后将各赛事的人数除以总人数且用户注册百分率保留两位小数(题目要求:统计出各赛事的用户注册百分率,保留两位小数。得到总人数后,对各赛事的人数进行统计。用户表,该表存储着所有用户的。注册表,该表存储着赛事id(),和已报名的用户id(先求总人数,并给表别名为。,统计后的总人数的字段为。最后再加上排序即可(

2024-07-24 21:53:33 384

原创 MySQL练手 --- 1075. 项目员工 I

作为两张表的连接匹配字段,由于两张表都不为空,所以直接使用内连接(首先将两张表进行内连接,看看连接后的记录(结果)也是一道简单题,给了两张表一张项目表。)或者使用等价的语句(,就想到要用到分组(函数求平均工作年限(

2024-07-24 20:57:24 291

原创 MySQL练手 --- 619. 只出现一次的最大数字

这是一个简单题,只出现一次的最大数字,顾名思义,分两个阶段,第一个阶段筛选出只出现一次的数字,第二阶段在生成的新表中筛选出最大值即可。生成一张只出现一次的数字的表,表名记为num_table。再从num_table表中使用。函数筛选出最大值即可。

2024-07-24 20:01:26 429

原创 MySQL练手 --- 1251. 平均售价

有的产品定了价但没有卖出去,这种也得算出产品的平均售价。又因为,有的产品定了价但没有卖出去,这种也得算出产品的平均售价,所以最后使用。表含有价格还有价格的时间限制却没有产品出售的数量,表,表的连接关系为一对一,连接字段(匹配字段)为。出售过,很明显不符合常理,所以再增加过滤条件。然后就是对其进行分组,计算每种产品的平均售价。表含有产品出售的日期以及产品出售的数量。表连接起来,编写相应的过滤条件即可。为1的产品,定价为5,截止时间从。要求:查找每种产品的平均售价。题目要求:查找每种产品的平均售价。

2024-07-24 19:03:45 513

原创 MySQL练手 --- 1934. 确认率

消息的数量除以请求的确认消息的总数。没有请求任何确认消息的用户的确认率为 0。作为两个表的连接条件(匹配字段),使用左连接将两张表进行连接,然后添加过滤条件得到结果。考点(或用到的知识):能够对值进行四舍五入且处理小数点位数的。(左连接),确保每个用户都具有信息确认表的记录。信息确认表,表的关联关系为 一对一,且。:返回一个对x的值进行四舍五入后最接近。题目要求:用户的 确认率 是。由题可知,两个表,一个表为。的值,并保留到小数点后面。通过查看样例表可知,对于。然后对结果集进行分组,

2024-07-24 14:13:13 555

原创 MySQL练手 --- 570.至少有5名直接下属的经理

题目链接: 570.至少有5名直接下属的经理由题意可知,所有员工(不管普通员工还是经理)都在一张表中(),很显然,表的关联关系为 自我引用。这时首选 多表查询中的 JOIN 连接,然后添加过滤条件。题目要求:找出至少有五个直接下属的经理,首先利用匹配字段 进行连接(使用 就会筛选出经理)。连接类型选择左连接,为啥使用左连接呢?因为要弄出所有员工的信息,可是直接筛选出经理不好嘛?(有道理,其实直接用JOIN更好,而不是使用)查看结果记录表,总结出过滤条件,对进行分组(),然后判断的数量是否大于5(),额

2024-07-24 11:40:44 301

原创 MySQL零散拾遗(六)---- 对 FROM table1,table2 要点进行详细介绍

我们都知道多表查询有JOIN和UNION。JOIN有分为INNER JOIN(内连接)、OUTER JOIN(外连接,外连接又分为左连接LEFT JOIN、右连接RIGHT JOIN)、CROSS JOIN(交叉连接,也就是笛卡尔积)。UNION(称为联合查询,或者说 合并查询结果),利用UNION关键字,可以给出多条SELECT语句,并将它们的结果组合成单个结果集。合并时,两个表对应的列数和数据类型必须相同,并且相互对应。各个SELECT语句之间使用UNION或UNION ALL关键字分隔。

2024-07-24 11:38:44 304

原创 MySQL零散拾遗(五)---- 对 GROUP BY 要点进行详细介绍

它可以根据指定的列或表达式对结果集中的行进行排序,并为每一行分配一个排名。在排名过程中,相同的值将被赋予相同的排名,而不同的值将被赋予不同的排名。的作用是将查询结果按照指定的列进行分组,分组内使用聚合函数进行计算,而其他非分组列和非聚合函数列则返回该分组中的第一条记录的值。group by 作用的只有分组列和聚合函数列,其他列不管用,返回的其他列只有对应的第一行。作用的是分组列和聚合函数列,其他列只能取该分组中的第一条记录的值。莫事儿莫事儿,我还找到了对应的 OJ 题,3,2,1,“上链接”

2024-07-22 22:55:39 745

原创 MySQL零散拾遗(四)--- 使用聚合函数时需要注意的点点滴滴

聚合函数作用于一组数据,并对一组数据返回一个值。

2024-07-21 00:07:07 381

原创 MySQL零散拾遗(三)

在MySQL中,JOIN语句用于将两个或多个表根据指定的关联条件合并成一个新的结果集。JOIN ON和WHERE子句在JOIN。

2024-07-18 11:39:58 472

原创 MySQL零散拾遗(二)

MySQL中 SELECT 查询语句的执行顺序,以上面的语句进行分析,首先执行。看看你想查什么数据(哪些字段或者列)这时可以对列进行起别名,最后执行。的 员工id,员工的月薪还有年薪,并按年薪进行升序排序。有了列的别名后才能使用列的别名进行对查询结果进行排序。看看有什么过滤条件,筛选完后留下一波数据,然后执行。但是列的别名不能在 WHERE 中使用。从哪个表中取数据,然后执行。下面的MySQL语句会报错。中定义的列的别名,无法在。举个栗子,有一个员工表。

2024-07-16 23:42:53 259

原创 MySQL零散拾遗(一)

INNER JOIN用于获取两个表中匹配的记录。OUTER JOIN(包括LEFT JOINRIGHT JOIN和)用于获取两个表中的所有记录,包括不匹配的情况。在实际应用中,选择哪种类型的JOIN取决于你希望从数据库中检索的数据类型。

2024-07-09 20:56:55 947

原创 SpringBoot项目,配置文件pom.xml的结构解析

是 Maven 项目对象模型(Project Object Model)的配置文件,它定义了 Maven 项目的基本设置和构建过程。这个结构提供了 Maven 项目的基本框架,可以根据项目的具体需求进行扩展和定制。

2024-07-04 21:30:10 510

转载 浅析 VO、DTO、DO、PO 的概念、区别和用处!

本篇文章主要讨论一下我们经常会用到的一些对象:VO、DTO、DO和PO。

2024-07-03 18:07:18 70

原创 SpringBoot Gradle和Vue 两个项目结构进行解释,说明其作用

在使用Gradle构建的Spring Boot项目中,项目的目录结构和各个文件的作用如下:项目根目录:src/main/java/:src/main/resources/:src/test/java/:src/test/resources/:build/:build.gradle:src/main/java/:src/main/resources/:src/test/java/:src/test/resources/:通过这种结构,项目的代码和资源文件都被清晰地组织和管理,使得项目的开发、维护和部署变得更加

2024-06-18 16:23:49 990

原创 归零 (一)---- 渗透测试阶段

需要渗透测试团队根据目标组织的业务运营模式、资产保护模式和安全防御规划的不同特点,自主设计出攻击目标,识别关键基础设施,并寻找客户组织最具价值和尝试安全保护的信息和资产,最终达到能够对客户组织造成最重要业务影响的攻击途径。渗透测试报告中会涵盖之前所有阶段所收集的关键情报信息、挖掘出的安全漏洞、成功渗透攻击的过程、造成业务影响后果的攻击途径。在进行渗透测试之前,渗透测试团队需要与客户交互讨论,确定渗透测试目标、渗透测试范围、渗透测试限制条件、服务合同等细节进行商议,达成一致协议。

2024-05-21 20:59:05 272

原创 物理机和虚拟机的网络通信疑虑问题

物理机挂VPN后,虚拟机无法访问谷歌通常是由于VPN客户端没有共享连接、路由表问题或DNS问题引起的。可以通过配置VPN客户端共享连接、手动配置路由和DNS,或者使用桥接模式来解决这个问题。

2024-05-15 09:51:11 871

原创 用于校验字符串的简单Java程序,业务中用于校验账号,密码等等

在 main() 方法中,我们创建了一个示例字符串 input,然后调用 containsSpecialCharacters() 方法来检查该字符串是否包含特殊字符。这个程序有一个静态方法 containsSpecialCharacters(),它接受一个字符串作为输入,并返回一个布尔值,指示该字符串是否包含特殊字符。最后,使用 matcher.find() 方法检查是否有特殊字符匹配成功,如果有则返回 true,否则返回 false。根据检查结果,程序输出相应的提示信息。

2024-05-09 01:41:15 196

原创 MySQL中所有数据类型

这些是MySQL中常见的数据类型,根据具体的需求和数据特征,选择适当的数据类型可以提高数据的存储效率和准确性。

2024-05-08 17:26:53 371

原创 对IP网段的一些疑虑问题

广域网(Wide Area Network,WAN)和局域网(Local Area Network,LAN)是两种不同范围和规模的网络。广域网是一个覆盖较大地理区域的网络,通常跨越城市、国家甚至是全球范围。广域网连接远距离的地点,通过公共的通信基础设施(如电话线、光纤、卫星等)进行数据传输。广域网通常由多个局域网或其他广域网连接而成,用于实现远程通信、数据传输和资源共享等功能。局域网是在较小的地理范围内建立的网络,通常局限于一个建筑物、校园或办公区域。

2024-05-08 14:55:39 1114

原创 开发中的一些专业术语,POJO、PO...

VO 是用于封装特定业务场景下的数据,通常是为了满足前端或其他组件的数据需求。VO 类的属性可以是来自多个实体或其他对象的组合,用于传递特定的数据集合。POJO(Plain Old Java Object):简单的 Java 对象,是一种普通的 Java 类,没有继承特定的框架或接口。在这个简化的示意图中,PO/POJO 表示持久化对象,DAO 表示数据访问对象,VO/DTO 表示值对象或数据传输对象,BO 表示业务对象。它是与数据库表结构对应的类,通常用于表示持久化数据的实体。

2024-05-08 10:58:37 427

原创 查看Java程序的进程编号

这段代码使用了 Java 9 中新增的 ProcessHandle 类,调用 current() 方法可以获取当前进程的 ProcessHandle 实例,然后调用 pid() 方法可以获取当前进程的进程号。原文链接:https://juejin.cn/s/java%20%E6%9F%A5%E7%9C%8B%E8%BF%9B%E7%A8%8B%E5%8F%B7。一般使用JPS指令就可以得到Java进程的编号,但是有的时候Main程序的进行无法显示。可以编写Java程序进行查看进程的编号。

2023-11-14 17:27:52 428

原创 MySQL Error 1215: Cannot add foreign key constraint

第二步确保外键字段的属性与要连接的表的字段属性相同。首先确保中介表中被设置外键的字段不能被设置为主键。第三步,设置表的选项 修改引擎为 InnoDB。三个表的引擎都要修改。

2023-11-01 20:17:29 347

原创 Linux服务安全加固

​ SSH是对常见登录服务(如 telnet、ftp、rlogin、rsh和rcp)的安全加密替代服务。强烈建议站点放弃旧的明文登录协议,使用SSH防止会话劫持和从网络嗅探敏感数据。

2023-04-12 21:02:57 1114 1

原创 时间复杂度

对于同一个问题,每个人都有不同的算法求解,都有属于自己的算法流程。把算法流程列出来,在整个流程中,假设数据量为N,执行完整个流程,常数操作的数量是什么关系。用快速排序举例1)​ 1、N个数看一遍,找最小值(比较)​ 看N次 要进行(N-1)次比较​ 2、最小值放 0 位置 O(1) O(1)指常数时间的操作​ 进行一次交换2)​ 1、N-1个数看一遍,找找最小值(比较)​ 看N-1次 要进行(N-2)次比较​ 2、最小值放 1 位置 O(1)

2023-04-07 20:55:13 325

原创 MyBatis项目中maven几个依赖项的作用

为什么mybatis需要添加logback-core依赖和logback-classic依赖, 添加其作用是什么?

2023-03-11 16:52:36 787 1

原创 解决errorCode 1045, state 28000、 errorCode errorCode 0, state 01S00

解决errorCode 1045, state 28000、 errorCode errorCode 0, state 01S00

2023-03-08 15:10:07 425

原创 解决Kali数字签名失效问题

如果是其他版本的Ubuntu,替换其中的bionic即可,如Ubuntu 18.04替换为xenial。​ 4.更换Kali镜像源:如果Kali系统中的镜像源已被污染或失效,可以更换一个可靠的镜像源。​ 这将从Ubuntu的密钥服务器更新Kali中使用的GnuPG密钥。文件中找到当前正在使用的Kali镜像源。这将更新Kali系统中的所有软件包,并修复可能导致数字签名失效的问题。这将更新仓库源并将Kali系统中的软件包与其仓库中的软件包同步。3.更换为国内的源(以清华大学源为例) 替换文件内容为。

2023-03-02 14:26:38 3430 1

原创 Java 类加载器 ClassLoader

java类加载机制ClassLoader

2023-02-25 09:20:14 135

空空如也

空空如也

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

TA关注的人

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