自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mybaties-plus实现将查询结果按照某个字段的中文首字母拼音排序

将查询结果按照拼音首字母排序

2024-03-13 15:35:32 629

原创 Post请求出现Request header is too large

request header is too large

2024-03-13 15:22:25 410

原创 Mybaties-Plus saveBatch()、自定义批量插入、多线程批量插入性能测试和对比

本文降价了Mybaties-Plus批量插入相关方案及性能测试对比

2024-03-09 21:58:51 5672

原创 elasticsearch 聚合DSL语法

elasticsearch聚合的DSL语法

2024-02-27 09:05:18 446

原创 ElasticSearch DSL查询、排序 、分页的原理及语法

本文讲解了ES的DSL查询、分页、排序的原理及相关语法

2024-02-21 22:30:19 1659

原创 Springboot项目部署外网之后,文件上传出现The request client is not asecure context and the resource is in more-priva

The request client is not asecure context and the resource is in more-private address space "private' .

2024-02-06 09:00:09 192

原创 Redis是单线程的,但为什么那么快?

通过先引入阻塞IO、非阻塞IO、IO多路复用实现的基本原理,再次引入redis基于多路IO和事件派发机制实现模型的原理,来讲解redis单线程,为什么那么快。

2024-02-05 21:05:10 1108 1

原创 Springboot启动出现Waiting for changelog lock...问题

在Springboot启动项目的时候出现 Waitting for changelog lock...问题

2024-02-05 16:08:12 3129

原创 redis的集群方案和常见问题

本文讲解了redis集群的三种方式的常见问题和基本解决方案,包括主从集群,哨兵模式,分片集群方式

2024-02-04 09:10:20 1348 1

原创 Mysql的sql优化

主要讲述了查询优化,针对where 、group by 、order by基本原理,以及根据后面的字段如何建立合适的索引

2024-02-03 12:06:47 1019

原创 INNODB存储引擎的4大特性

INNODB存储引擎的4大特性都是为了减少磁盘I/O操作的次数。

2024-02-02 16:48:22 352

原创 redis作为缓存和分布式锁的常见问题及解决方案

涵盖了redis作为缓存和分布式锁的常见问题和解决方案

2024-02-01 23:08:42 903 2

原创 Java范型基础及应用

一文搞懂java中的范型

2023-08-12 09:12:06 143

原创 Mysql的索引数据结构、sql性能分析工具、索引使用和设计原则

介绍:索引是帮助mysql高效获取数据的有序数据结构,在数据之外,数据库系统还维护满足特定查找算法的数据结构,这些数据结构以某种方式引用数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。优缺点优势劣势提高数据检索的效率,降低数据库的IO成本索引列也是要占用空间的通过索引列对数据进行排序,降低数据排序的成本,降低CPU的小号索引大大提高了查询效率,同时却也降低更新表的速度,如对表进行INSERT、UPDATE、DELETE时,效率降低。

2023-07-20 22:53:45 204

原创 Mysql存储引擎

存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,意味着一个数据库不同表可以应用不同的存储引擎,所以存储引擎也可以被称为表类型。查询结果如下:由上面可以看出Mysql默认是支持InnoDB存储引擎的。

2023-07-04 23:04:02 127

原创 Mysql多表联合查询语句

1.标量子查询:子查询返回的结果是单个值(数字、字符串、日期等),最简单的形式,这种子查询成为标量子查询。对于union查询,就是把多次查询的结果合并起来,并形成一个新的查询结果集。因为员工10没有部门,所以不查询出来,所以内连接是查询两张表的交集。概念:sql语句中嵌套select 语句,称为嵌套查询,又称子查询。子查询的结果是多行多列,这种子查询称为表子查询,常用的操作符为IN。子查询返回的结果是一列(可以是多行),这种子查询称为列子查询。SOME :与ANY等同,使用SOME的地方都可以使用ANY;

2023-07-03 00:18:14 1612

原创 Mysql常见函数及其用法

这篇文章主要讲解mysql常见函数的用法和意义,包括字符串函数、数值函数、日期函数、流程函数。

2023-07-02 16:39:58 561

原创 微服务组件总结

③ Sentinel:Sentinel是阿里巴巴开源的服务容错组件,可以帮助开发人员实现微服务的容错和熔断,支持多种功能,如流量控制、熔断降级、系统保护等。④ Nacos:Nacos是阿里巴巴开源的服务注册与发现组件,可以帮助开发人员实现微服务的自动化注册和发现,同时还提供了配置管理、服务路由等功能。① Hystrix:Hystrix是Netflix开源的服务容错组件,可以帮助开发人员实现微服务的容错和熔断,保证微服务的可靠性和稳定性。

2023-05-18 18:03:09 577

原创 Quartz定时任务配置参数的含义

例如,在一个分布式系统中,可以为每个节点的Quartz调度器设置不同的instanceName,以避免节点之间的任务冲突和重复执行。该属性可以设置为整数类型的值,用于指定Quartz调度器的任务触发器在misfire时的处理方式。例如,在一个分布式系统中,可以为每个节点的Quartz调度器设置不同的instanceId,以避免节点之间的任务冲突和重复执行。需要注意的是,auto-startup属性只控制Quartz调度器在启动时是否自动启动定时任务,不影响已经添加到调度器中的任务。

2023-05-18 13:29:39 3987

原创 使用Dom4j解析xml文件

Dom4j是一个Java的XML解析器,它提供了一种基于Java的XML解析方式,可以方便地读取、操作和生成XML文档。Dom4j的主要特点包括:高性能:Dom4j使用了一种基于事件的解析方式,可以快速地解析大型XML文档。易用性:Dom4j提供了简单易用的API,可以方便地读取、操作和生成XML文档。可扩展性:Dom4j支持插件机制,可以方便地扩展其功能。兼容性:Dom4j支持标准的XML解析方式,可以与其他XML解析器兼容。

2023-05-18 09:22:51 229

原创 SpringBoot调用第三方WebService接口的两种实现方式

WebService接口的发布通常一般都是使用WSDL(web service descriptive language)文件的样式来发布的,该文档包含了请求的参数信息,返回的结果信息,我们需要根据WSDL文档的信息来编写相关的代码进行调用WebService接口。接下来我将采用常见的两种方式调用WebService接口。

2023-05-17 17:58:34 14733 5

原创 lombok常用注解及应用场景

Lombok是一个Java库,可以通过注解的方式来简化Java代码的编写。它提供了一系列的注解,可以自动生成Java类的getter、setter、构造函数、equals、hashCode等方法,从而减少了Java代码的冗余。Lombok的目标是通过注解来简化Java代码的编写,从而提高开发效率和代码的可读性和可维护性。

2023-05-06 11:14:21 176

原创 Jackson常用注解及应用场景

Jackson是一个Java库,用于将Java对象序列化为JSON格式或将JSON格式反序列化为Java对象。Jackson提供了一系列注解,用于控制序列化和反序列化过程中的行为。Jackson的主要特点如下:① 快速:Jackson是一个高性能的JSON处理库,可以快速地将Java对象序列化为JSON格式或将JSON格式反序列化为Java对象。② 灵活:Jackson提供了丰富的注解,可以用于控制序列化和反序列化过程中的行为,例如指定JSON属性名称、日期格式、忽略某个属性等。

2023-05-06 10:33:32 219

原创 设计模式之观察者模式

观察者模式是一种行为型设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,当主题对象发生变化时,它的所有观察者都会收到通知并自动更新。在 Spring 中,事件可以被视为主题对象,而事件监听器可以作为观察者对象来监听这些事件,从而实现事件处理的功能。最后,我们在主方法中创建购物车对象、商品数量显示器、总价显示器和添加产品的按钮,并将这些组件添加到面板中,用于后续的显示。通过以上的观察者模式的实现,我们成功实现了在线商城的购物车功能,并使用了观察者模式去处理商品数量和总价的更新。

2023-04-26 20:44:54 110

原创 设计模式之装饰器模式

中的 Bean 进行增强。④ConcreteDecorator(具体装饰器):具体装饰器是实现Decorator接口的子类,包含了一个Component类型的成员变量component,它是被装饰对象的引用。⑤ 当需要在一个类中,添加新的行为或属性,但又不想增加过多的子类时,装饰器模式可以提供一种更加灵活的方式,使得新增加的行为和属性可以根据需要进行随时添加和删除。① Component(抽象构件):是装饰器模式中需要装饰的对象的抽象基类或者接口,定义了对象操作的基本方法,可以是抽象类、接口或者普通的类。

2023-04-19 20:02:27 558

原创 设计模式之原型模式

MyBatis框架中的ResultMap,是一个在数据库查询结果与Java对象映射方向上的映射描述,其中用的是原型模式。Hibernate提供了一个实体类方法clone(),当需要复制实体对象时,可以直接调用该方法来复制对象,而不需要使用BeanUtils等工具类的copy方法。当需要创建新对象时,只需要使用已有的对象来调用复制方法,就可以创建一个与原对象相同的新对象。②创建对象时,构造函数的参数较为复杂,或者构造函数的过程比较耗时,可以通过原型模式来复制一个已有对象,省去重新构造的过程。

2023-04-19 08:59:50 49

原创 面向对象设计5大基本原则及Java举例说明

利用实际例子解释了java面向对象的5种设计原则

2023-04-17 13:03:41 447

原创 设计模式之组合模式

透明组合模式中的所有子类都定义了 Component 接口中的所有接口,因此,客户端无论处理 Leaf 还是 Composite 时,都可以使用相同的接口,这样使得判断一个节点是组合节点还是叶子节点变得无所谓,这样带来的好处是客户端更加简单、直观。安全式组合模式中将 leaf 和 composite 的操作分开,即一些复杂的操作只对 composite 开发而不放到 component 中,通过这种方式,客户端只能调用 Composite 自身的操作,而不能调用 Leaf 的操作。

2023-04-17 09:54:52 132

原创 Mysql数据库空字段为什么设置为Default Null

如果在 MySQL 数据库中创建数据表时,没有设置字段的默认值为 null,并且该字段也没有设置非空约束,则当该字段在插入新行或更新行时没有指定值,或者该值为 null 时,MySQL 会将该字段存储为一个特殊的值:空字符串(’’)或者 0(数字型),具体取决于该字段的数据类型。对于一个大型数据表,这些空字符串的存储空间可能是非常大的,而将允许为空的字段在数据库中存储为 null 可以大大减少数据表的存储空间,提高数据库的存储效率。而将允许为空的字段在数据库中存储为 null,可以减少存储空间。

2023-04-15 16:08:27 3660

原创 Mysql常用数据类型的含义和应用场景

VARCHAR 是可变长度的字符串类型,可以存储最大长度为 65535 个字符的字符串,但是如果我们知道该字段最大的存储值不会超过一个特定的长度,可以使用 VARCHAR(n) 来规定该字段的最大长度,来控制数据的存储空间。VARCHAR 的长度可以是从 1 到最大存储范围的任何长度,在选择 VARCHAR 的长度时,需要根据实际需求来选择字符类型和长度,以控制存储空间和数据存储特性。b. VARCHAR:用于存储较长的文本字符串,可变长度,通常用于存储较长的字符串,如地址、文章内容等等。

2023-04-15 15:23:00 505

原创 继承、组合、聚合的区别

继承、组合和聚合是面向对象编程中,用于实现类与类之间关系的三种常用机制。继承(inheritance)是指一个类从另一个类中继承(inherit)其属性和方法,被继承的类被称作父类、基类或超类,继承的类被称作子类、派生类或衍生类。子类可以继承父类的所有属性和方法,也可以重写或添加自己的属性和方法,还可以继续被其他类继承。继承实现了“is-a”(是一个)的关系,即一个类是另一个类的特殊类型。

2023-04-15 14:32:47 1416

原创 chatGpt---设计模式之代理模式

与GPT老师沉浸式学习,让chatGpt帮助我们成长,对于程序员,它只能大大提升我们的工作效率,并不会取代程序员。

2023-04-13 20:34:10 729

原创 我与GPT老师的对话-设计模式之建造者模式

与GPT老师沉浸式学习设计模式

2023-04-13 16:51:09 109

原创 程序员如何使用chatGpt

让GPT老师帮我们实现简单功能设计,架构设计和编程

2023-04-13 00:07:04 225

原创 我与GPT老师的对话---设计模式之单例模式

与GPT老师沉浸式学习设计模式

2023-04-11 20:41:43 115 1

原创 我与GPT老师的对话---设计模式之工厂模式

与chatGpt老师沉浸式学习设计模式

2023-04-11 10:43:21 140 1

空空如也

空空如也

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

TA关注的人

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