自定义博客皮肤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)
  • 收藏
  • 关注

原创 文件上传1

例如我有一个专门存储文件的服务器,我所有的项目都需要将文件存储到文件服务器上。当我们有多个服务器的时候就可以这样将所有服务的文件上传到我们规定的文件服务器中。思路:访问一个服务器上的上传文件的接口,然后这个接口的方法再调用post请求去访问文件服务器上的上传文件的接口就行。将上个demo继续在服务器上运行,然后我们本地的服务去调用刚才那个部署在服务器上的项目的上传文件的接口。例如:访问本地的项目(localhost)将文件上传到linux服务器上。

2024-07-18 16:05:06 340

原创 非聚簇索引

聚簇索引一般为主键索引,而主键一个表中只能有一个,因此聚簇索引一个表中也只能有一个,而非聚簇索引则没有数量上的限制。在 MySQL 的 InnoDB 引擎中,每个索引都会对应一颗 B+ 树,而聚簇索引和非聚簇索引最大的区别在于。聚簇索引叶子节点存储的是行数据;而非聚簇索引叶子节点存储的是聚簇索引(通常是主键 ID)。聚簇索引查询效率更高,而非聚簇索引需要进行回表查询,因此性能不如聚簇索引。

2024-07-16 09:20:59 151

原创 服务端正常启动了,但是客户端请求不到

首先要知道 TIME_WAIT 状态是主动关闭连接方才会出现的状态,所以如果服务器出现大量的 TIME_WAIT 状态的 TCP 连接,就是说明服务器主动断开了很多 TCP 连接。403:禁止,常见原因是因为用户的账号没有对应的URL权限,还有就是项目中所用的中间件,不允许远程连接(Tomcat)500:服务器内部错误,出现这种情况,说明服务器内部报错了 ,需要登录服务器,检查错误日志,根具体的提示信息在进行排查。检查你的客户端(浏览器、测试工具),是否设置了网络代理,网络代理可以造成请求失败。

2024-07-16 09:15:41 568

原创 Java创建对象除了new还有别的什么方式?

通过 Java 的反射机制可以在运行时动态地创建对象。可以使用 Class 类的 newInstance() 方法或者通过 Constructor 类来创建对象。(从文件或网络传输中读取对象)的方式来创建对象,对象能被序列化和反序列化的前提是类实现Serializable接口。(保存到文件或网络传输)然后再。

2024-07-16 09:04:10 215

原创 Websocket发一条阻塞了,后面的消息会怎么样

允许消息在后台排队和发送,而不会阻塞应用程序的其他部分。为了避免阻塞问题,因此可以。

2024-07-15 17:00:05 408

原创 两个事务update同一条数据会发生什么?

当事务 A 进行 update 的时候会记录加 X 型行级锁,如果事务 B 执行 update 的时候,发现记录已经加了 X 型行级锁之后,就会进入阻塞状态,因为发生了写写冲突。事务 B 会阻塞到到事务A 提交事务之后,因为事务提交之后锁才会释放。联合索引ABC,现在有个执行语句是A = XXX and C < XXX,索引怎么走根据最左匹配原则,A可以走联合索引,C不会走联合索引,但是C可以走索引下推。Score 表,其中包含sid(学生编号),cid(课程编号)和score(分数)。

2024-07-15 16:59:23 252

原创 jwt生成、校验token

【代码】jwt生成、校验token。

2024-07-12 17:54:11 93

原创 状态审批123

是一个接口,用于加载用户特定的数据。当用户尝试访问受保护的资源时,Spring Security会调用实现了这个接口的类的。方法来获取用户的详细信息,包括他们的权限和角色。这个方法返回的是一个。在Spring Security中,对象,它包含了用户的权限信息。

2024-07-11 11:14:22 170

原创 查询工资级别的个数>20的个数,并且按工贷级别降序

但请注意,ORDER BY不能在没有GROUP BY的情况下直接应用于聚合函数的结果,因为那样会导致SQL语句的语法错误或逻辑错误。聚合数据:GROUP BY用于将结果集中的行分组,每组共享相同的grade_level值。没有GROUP BY,你将无法按grade_level进行分组并计算每个级别的员工数量。在这个例子中,HAVING COUNT(*) > 20确保只有那些员工数量大于20的grade_level组被包含在最终的结果中。HAVING子句在GROUP BY之后执行,用于过滤聚合后的结果。

2024-07-05 17:51:31 146

原创 poi导出值班excel

【代码】poi导出值班excel。

2024-07-05 10:24:15 335

原创 throw抛出异常,由该方法的调用者来处理。

当在 try 块或 catch 块中遇到 return 语句时,finally 语句块将在方法返回之前被执行。这是因为 try 语句中的 return 返回值会先被暂存在一个本地变量中,当执行到 finally 语句中的 return 之后,这个本地变量的值就变为了 finally 语句中的 return 返回值。try块:用于捕获异常。当 try 语句和 finally 语句中都有 return 语句时,try 语句块中的 return 语句会被忽略。catch块:用于处理 try 捕获到的异常。

2024-07-03 09:39:10 153

原创 springboot筛选当月,本周,当天数据

- 注意:按ISO周数分组(假设周一为一周的开始)可能需要不同的逻辑 -- 这里是一个简化的例子,但请注意它可能不完全符合ISO周数的定义。按天分组,create_time是表中的字段。

2024-07-02 09:29:10 443

原创 记一次面试

在Linux中,如果你想要查看日志文件的最后1000行并将其写入到另一个文件中,你可以使用tail命令。在MySQL中,删除重复的数据行需要一些策略和步骤,因为直接删除可能会导致数据丢失或破坏引用完整性。首先,你可以创建一个临时表来存储唯一的行,然后将数据从原始表复制到临时表,并删除原始表,最后将临时表重命名为原始表的名称。这条命令会将logfile.log的最后1000行内容追加到outputfile.txt的末尾。注意:这种方法可能会导致数据的随机丢失,因为当你按照某个列分组时,只能保留该组中的一行。

2024-06-25 14:46:55 639

原创 static

子类可以定义与父类static方法同名的方法,但这实际上是创建了一个新的静态方法,而不是覆盖父类的静态方法。静态内部类不能访问外部类的非静态成员(因为没有外部类实例的引用),但可以访问外部类的静态成员。抽象方法意味着子类必须提供该方法的实现,而静态方法属于类本身,不依赖于类的实例,也无法被子类覆盖(override)。子类可以定义与父类private方法同名的方法,但这并不构成覆盖,因为这两个方法在Java的继承体系中是完全独立的。内部类(也称为非静态内部类)是定义在另一个类内部的类。

2024-06-24 21:12:39 281

原创 vue...

const message = `显示 ${range[0]} ~ ${range[1]} 条记录,共 ${total} 条记录`;/* 当 isEditVisible 为 false 时,默认 display 可能是 none,或者由其他 CSS 控制 */在 Vue 组件的 data 或 computed 中,你可能会有这样的定义:data() { return {(v-bind): 在 Vue.js 中,: 是 v-bind 的简写,用于绑定一个表达式到组件的 prop 或者元素的属性上。

2024-05-25 18:19:05 343

原创 mybatis association collection

***出版社*/@Data// 书籍列表//一个出版社对应多本书/***书籍*/@Data。

2024-05-16 17:31:32 399

原创 【无标题】vo dto

PO(Persistent Object)是持久化对象,通常用于表示数据库中的表结构以及与之对应的实体类。PO的作用主要是用于数据访问层,将数据库中的数据映射为Java对象,方便程序对数据的操作。DTO通常包含了多个属性,属性的类型和名称与DTO所传输的数据相关。1. DO(Domain Object):领域对象,是指业务对象,通常包含了业务逻辑和操作。需要注意的是,在应用程序开发中,VO、PO、DTO这三种对象模型的具体实现方式可能会有所不同,取决于具体的业务场景和开发需求。

2024-05-15 14:52:21 327

原创 jquery

this 是事件绑定的元素,这个函数的调用者(绑定这个事件的元素)•e.target 是事件触发的元素,即点的是哪个元素。html 文本/json 文本/js/CSS/图片。e.target 和 this 的区別。2.3 HTTP 请求报文。2.4 HTTP 响应报文。

2024-05-11 22:31:50 385

原创 一次插入多条

2024-05-10 16:55:22 325

原创 表格隔行变色

2.$(document).ready() 是 jQuery 中的一个函数,它确保在文档结构(DOM)加载完成后执行指定的代码。与原生 JavaScript 的 window.onload 不同,$(document).ready() 会在 HTML 文档结构被加载和解析完成后立即执行,而无需等待样式表、图片和子框架的完成加载。if (index % 2 === 0) { // 偶数行。if (i % 2 === 0) { // 偶数行。// 可以省略,因为默认背景色通常是白色。

2024-05-02 17:59:36 486 2

原创 怎样唤醒一个阻塞的线程

当线程被中断后,会设置线程的中断状态为true。在代码中可以通过Thread.currentThread().isInterrupted()方法来检查线程的中断状态。在Java中,被中断的线程需要自己编写代码去响应中断,否则线程仍然会一直阻塞。在Java中,可以使用Thread类的interrupt()方法来唤醒一个阻塞的线程。首先,需要获取到该线程的对象,然后调用interrupt()方法。// 线程阻塞的情况下,调用interrupt()方法。

2024-04-26 11:24:21 126

原创 分页...

深分页问题是 MySQL 中常见的性能问题,当你尝试获取大量数据的后续页面时,性能会显著下降。例如,你可以提供搜索功能,让用户快速找到他们需要的数据,而不是浏览大量的页面。2记住上次的位置: 如果你的应用程序可以记住上次查询的最后一个 ID,那么你可以使用 WHERE 子句来避免扫描大量数据。1使用覆盖索引: 覆盖索引可以让 MySQL 在索引中获取所有需要的数据,而无需回表查询。这可以大大提高查询速度。这是因为 MySQL 需要先扫描 1000000 行数据,然后再返回后面的 10 行数据。

2024-04-25 15:56:52 203

原创 线程池..

线程复用的关键是将任务的提交和线程的创建、管理、执行分离,通过线程池来统一管理和调度,减少了创建和销毁线程的开销,提高了系统的效率。同时,由于线程池的复用特性,可以有效控制并发度,避免大量线程的创建和销毁导致的系统负载过大。总的来说,线程池的底层工作原理是通过管理一组工作线程、任务队列和任务分配策略来实现任务的调度和执行。线程池中的线程数量是有限的,核心线程数通常是固定的,最大线程数可以设置,超过最大线程数后,任务会被拒绝。,如果是,则新建一个线程来执行任务;,则根据拒绝策略来处理无法执行的任务。

2024-04-25 11:11:03 415

原创 如何确保线程安全

在实现线程安全时,还需要考虑其他问题,如避免死锁、合理地控制并发量等。同时,应该避免使用非线程安全的数据结构和方法,避免使用可能会引起竞态条件和数据不一致的操作。确保线程安全可以通过多种方法和技术来实现。

2024-04-19 17:16:11 230

原创 如何避免S锁

如果超过指定时间仍然无法获取锁,线程应该释放已经持有的锁并重试,或者采取其他适当的措施。死锁是多线程编程中的一种常见问题,它发生在两个或多个线程相互等待对方释放资源的情况下,导致程序无法继续执行。3避免嵌套锁: 尽量避免在一个锁的持有期间再次尝试获取其他锁。如果确实需要获取多个锁,请确保获取的顺序是固定的,以减少死锁风险。1锁顺序: 定义一个固定的锁获取顺序,并要求所有线程都按照相同的顺序获取锁。4使用锁机制: 比如Java中的ReentrantLock,它支持可中断的锁获取和条件等待,有助于避免死锁。

2024-04-19 16:51:17 119

原创 RabbitMQ中如何解决消息堆积问题

○消息预取限制(prefetch count):调整消费者的预取数量以避免一次处理过多消息而导致处理缓慢。○持久化和高可用性:确保消息和队列的持久化以避免消息丢失,并使用镜像队列提高可用性。○优化消费者性能:提高消费者处理消息的效率,例如优化代码、增加资源。○优化业务逻辑:简化消费者中的业务逻辑,减少处理每个消息所需的时间。○使用消息限流:控制消息的生产速度,确保它不会超过消费者的处理能力。○使用死信队列:将无法处理的消息转移到死信队列,防止堵塞主队列。○增加队列的容量:调整队列设置以允许更多消息存储。

2024-04-19 15:17:01 403 1

原创 RabbitMQ 如何实现消息的持久化?

2队列持久化:在 RabbitMQ 中声明队列时,也可以将队列声明为持久化。而仲裁队列和流式队列默认必须持久化保存。RabbitMQ 允许消息的持久化,以确保即使在 RabbitMQ 服务器重新启动后,消息也不会丢失。3交换机持久化:与经典队列类似,RabbitMQ 也可以在声明交换机时,将交换机的 durable 属性设置为true,这样就可以将交换机标记为持久化。1消息持久化:在 RabbitMQ 中,只需要在发送消息时,将delivery_mode属性设置为 2,就可以将消息标记为持久化。

2024-04-19 14:58:53 258

原创 存入Redis的Token过期,怎么办

引入自动刷新机制:可以在服务端设置一个定时任务,定期检查Redis中Token是否快要过期,如果接近过期时间,则自动再次生成一个新的Token,并将新Token存入Redis中。刷新Token:一种常见的方式是在Token即将过期时,即将过期的Token作为key,在Redis中重新生成一个新的Token,并将新的Token作为value存入Redis中。延长Token过期时间:可以在Token即将过期之前,通过Redis提供的expire命令,将Token的过期时间延长。

2024-04-19 11:53:25 409

原创 Vue.prototype则是一种注册全局变量的方式,使得定义的属性和方法可以在所有Vue实例中共享和访问。

它用于向所有Vue实例添加共享的方法和属性。通过在Vue.prototype上定义方法,可以确保这些方法在所有Vue实例中都是可用的。这种设计主要是为了防止全局变量的污染,并提供了一种更规范的方式来访问全局方法和属性。

2024-04-19 11:22:55 365 1

原创 怎么定义 vue-router 的动态路由? 怎么获取传过来的值?举例在router目录下的index.js文件中,对path属性加上/:id。使用router对象的params.id。

例如:// 使用 `:id` 定义动态路由// 其他路由... ] });在上面的例子中,

2024-04-15 11:51:14 397 1

原创 Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什么优缺点?

2024-04-14 20:16:02 292 1

原创 Redis事务的概念

此时,我们就要充分利用Redis工具包中提供的Redis-check-aof工具,该工具可以帮助我们定位到数据不一致的错误,并将已经写入的部分数据进行回滚。Redis的事务并不是我们传统意义上理解的事务,我们都知道 单个 Redis 命令的执行是原子性的,但Redis 没有在事务上增加任何维持原子性的机制,所以 Redis 事务的执行并不是原子性的。事务可以理解为一个打包的批量执行脚本,但批量指令并非原子化的操作,中间某条指令的失败不会导致前面已做指令的回滚,也不会造成后续的指令不做。

2024-04-14 20:01:50 926 1

原创 mysql in exists

这个题不难,找到red的销售人员,排除掉就可以了。学习和比较,比解题更有趣。not in和not exists和left join。平常工作开发中,他们之间的效率比较大多是left join > not exists > not in但是这次就不一样,left join > not in > not exists主要看这个not in 和 not exists。为什么呢?因为子表的查询语句比较复杂,而结果集非常简单,只有两个结果。

2024-04-13 20:59:31 281 1

原创 vue实践

data: row.someData, // 假设row中包含你要展示的数据 // ... }]// 设置ECharts的配置项和数据 let option = {// 假设你已经有一个初始化的ECharts实例,比如。ECharts图表的数据绑定通常是在Vue组件的。// 这里是你的ECharts配置项和数据。中完成的,特别是在与图表相关的函数(如。// 使用配置项和数据显示图表。prop:后端返回的实体类的字段。参数是通过@click()传递的。

2024-03-21 17:32:37 312 1

原创 mybatis的#{},${}

2024-03-20 18:05:00 99 1

原创 SELECT 1

而不是选择实际的列数据通常是为了性能考虑,因为数据库不必检索或处理表B中的实际数据,它只需要检查条件是否成立。这可以使查询更快,特别是在处理大量数据时。正在检查表B中是否存在一个记录的id与表A(或子查询A)中的某个id匹配。如果找到匹配项,这个查询会返回数字1。如果没有找到匹配项,它将不返回任何内容。通常用于检查某个条件是否成立。当你想检查某个表(或子查询)中是否存在满足特定条件的记录,但又不关心这些记录的具体内容时,可以使用。

2024-03-12 14:42:37 1351 1

原创 mysql

在MySQL中,表的优化是一个持续的过程,旨在提高查询性能、减少存储空间的使用以及确保数据的完整性。

2024-03-12 13:57:50 398 1

原创 VO类的用法

VO类用于操作多张表,有些属性后端需要(如条件判断),但是不用操作到数据库。

2024-03-11 17:55:16 128 1

原创 spring cloud的各组件的功能

Eureka:服务治理组件,包含服务注册中心、服务注册与发现机制的实现。Spring Cloud是一个基于Spring Boot实现的云原生分布式系统解决方案,它整合了许多开源组件,提供了配置管理、服务发现和注册、智能路由、负载均衡、熔断器、控制总线、集群状态等功能。除了以上几个核心组件外,Spring Cloud还提供了许多其他组件,如Config(配置中心)、Bus(事件总线)、Cluster(集群状态)等,这些组件可以根据实际需求进行选择和整合,以实现更加灵活和强大的分布式系统解决方案。

2024-03-07 09:14:04 389 1

原创 Java 集合转换

通常,你不能直接将List转换为Map,因为List是一个有序集合,而Map是一个键值对集合。但是,你可以根据List中的元素创建一个Map,其中每个元素可能是键值对或者可以生成键值对。例如,如果你有一个包含自定义对象的List,并且这些对象有id和name属性,你可以创建一个Map<Integer, String>,其中id是键,name是值。这通常意味着你想将Map的键值对转换为某种形式的List元素。在Java中,数组和List以及Map之间的转换也是相对简单的。// 提取键值对的List。

2024-03-05 18:55:30 255 1

空空如也

空空如也

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

TA关注的人

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