- 博客(31)
- 收藏
- 关注
原创 前后端项目,spring boot 整合 spring srcurity出现全局异常统一处理类失效--解决方法
前后端项目,spring boot 整合 spring security ,因为spring security 过滤器链导致全局异常统一处理类失效的解决方法及原理,通俗易懂
2022-03-21 19:09:54
1636
原创 Java注解与反射详解
注解概述Java注解(Annotation)又称Java标注,是JDK1.5引入的一种注释机制。Java中的类、构造器、方法、属性、参数都可以用注解进行标注。例如junit的@Test注解,重写方法的@Override注解等。作用对Java中类、构造器、方法、属性、参数做标记,用来特殊处理。根据业务需求来决定。例如junit的@Test注解,就用来标记这个方法是测试方法,没有标注就不能当成测试方法执行。重写方法的@Override注解,用来标注该方法是重写父类(父接口)方法,如果不是就会报错等。自
2021-11-21 14:09:08
342
原创 docker不能运行mysql容器
docker运行mysql容器命令/mydata/mysql/这个文件夹是我自定义放置数据卷的docker run -p 3306:3306 --name mysql -v /mydata/mysql/log/:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=roor -d mysql:5.7进入容器docker
2021-11-18 16:25:35
1762
原创 Fatal message conversion error;message rejected;it will be dropped or routed to a dead letter exchan
在使用rabbitmq的时候出现消息反序列化失败,如下异常:Fatal message conversion error; message rejected; it will be dropped or routed to a dead letter exchange, if so configured经过定位分析,原因是在MQ消息的生产端,设置了序列化转换Jackson2JsonMessageConverter,而默认的序列化类为SimpleMessageConverter。且在消费端没有设置反序列
2021-11-09 12:21:33
2889
原创 数据库视图详解
视图视图是基于 SQL 语句的结果集的可视化的表。视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。只保存SQL逻辑,不保存查询结果 。一般用于会在多个地方用到同样的查询结果,或者该查询结果使用的SQL语句较复杂。创建视图#方式一:CREATE VIEW 视图名 AS 查询语句;#方式二:这个视图没有就创建,有就修改CREATE OR REPLACE VIEW 视图名AS查询语句;示例一:-- 创建视图实例1:将学⽣表中性别为男的学⽣⽣成⼀个
2021-11-05 20:54:14
6221
原创 数据库之事务详解
TCL语言TCL(Transaction Concrol Language),事务控制语言。事务由一条或一组SQL语句组成一个执行单元;特点(ACID):原子性(atomicity),一个事务是一个不可分割的工作单位,事务中的操作要么都执行,要么都不执行。一致性(consistency),事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。隔离性(isolation),一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,
2021-11-05 20:02:02
687
原创 redis有序集合zset详解
zset概述Redis有序集合zset与普通集合set非常相似,是一个没有重复元素的字符串集合。不同之处是有序集合的每个成员都关联了一个评分(score),这个评分(score)被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分是可以重复的 。因为元素是有序的, 所以你也可以很快的根据评分(score)或者次序来获取一个范围的元素。访问有序集合的中间元素也是非常快的,因此你能够使用有序集合作为一个没有重复成员的智能列表。此外,有序集合中的元素是按顺序获取的(因此它们
2021-10-31 19:38:09
8977
原创 数据库约束详解
约束NOT NULL:非空约束,强制列不接受 NULL 值,约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。UNIQUE:唯一性约束,约束唯一标识数据库表中的每条记录,具有UNIQUE约束的列的值在这一列具有唯一性。PRIMARY KEY:主键约束,有自定义的UNIQUE和NOT NULL约束,并且每个表只有一个主键.FOREIGN KEY:外键约束,指向另一个表中的 UNIQUE(唯一约束的键)。CHECK:检查约束,用于限制列中的值的范围,如果对一个表定义
2021-10-31 13:03:18
4324
原创 数据库及数据库表管理常用指令
DDL语言DDL(Data Definition Language),数据定义语言,用于库和表的管理。创建数据库#如果要创建的库名已存在,会报错CREATE DATABASE 库名;#如果没有这个库就创建,有就不创建,容错率高,建议使用CREATE DATABASE IF NOT EXISTS 库名;修改数据库修改库名注意:这条语句已经废弃,因为不安全,可能造成数据丢失。如果真的要改关闭DBMS后直接在DBMS的文件夹下找的要修改的库(文件夹),重命名即可。RENAME DATABAS
2021-10-31 11:53:52
278
原创 INSERT、UPDATE、DELETE、TRUNCATE指令详解
DML语言:DML(Data Manipulation Language),数据操纵语言,在SQL语言中,负责对数据库对象运行数据访问工作的指令集,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入、更新与删除。INSERT INTO用于向表中插入新记录。#方式1:#需要指定列名和被插入的值(列可以调换顺序,但是要和值一一对应)INSERT INTO 表名(列名1...) VALUES(值1...);#插入多行,每个VALUES()以逗号隔开INSERT INTO 表名
2021-10-31 11:41:50
1324
原创 redis数据类型hash详解
redis数据类型sets详解hashRedis hash 是一个键值对集合。Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。类似Java里面的Map<String,Object>例如用户ID为查找的key,存储的value为用户对象,包含姓名,年龄,生日等信息,如果用普通的key/value结构来存储主要有以下3种存储方式:每次修改用户的某个属性需要,先反序列化改好后再序列化回去。开销较大。 以用户ID与属性
2021-10-30 22:03:10
1007
原创 使用element-ui的upload上传文件后台MultipartFile为null解决方案
问题描述:在使用element-ui的upload上传文件时,后台接收的MultipartFile为null相关html代码<el-dialog title="导入" :visible.sync="dialogImportVisible" width="480px"><el-form label-position="right" label-width="170px"><el-form-item label="文件"><el-upload:multip
2021-10-29 12:06:19
5725
10
原创 集成EasyExcel导入与导出excel表的数据
把数据导出到xlsx文件添加依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.1</version> </dependency>创建实体类在对应属性上面添加注解,设置表头内容@Data@AllArgsConstructor@N
2021-10-28 20:35:11
212
原创 element-ui树形数据不显示展开图标解决方案
问题描述:在使用element-ui的下图组件时,出现有子节点的记录不能显示展开的图标 相关代码:<template> <div class="app-container"> <el-table :data="list" style="width: 100%" row-key="id" border lazy :load="getChildrens
2021-10-28 19:26:21
6807
原创 redis数据类型sets详解
redis数据类型lists详解SetsRedis set对外提供的功能与list类似是一个列表的功能,特殊之处在于set是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的。Redis的Set是string类型的无序集合。它底层其实是一个value为null的hash表,所以添加,删除,查找的复杂度都是O(1)。一个算法,随着数据的增加,执行时间的长短,如果是O(1),
2021-10-28 11:05:05
551
原创 mysql5.5不能同时存在两个时间戳问题解决方案
问题描述:需求:当创建这条记录时create_time和update_time都自动插入当前系统时间,当修改这条记录时,更新update_time相关sql:错误信息:Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause原因分析:根据错误信息可知在DEFAULT或ON UPDATE子句中,只有一个T
2021-10-27 17:29:48
3094
原创 leetcode数据库例题讲解
本篇所有题均来自leetcode,刷题必备第二高的薪水leetcode原题链接编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。+----+--------+| Id | Salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+例如上述 Employee 表,SQL查询应该返回 200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应.
2021-10-27 12:28:18
195
原创 redis数据类型之lists详解
redis数据类型String详解redis数据类型keys详解list单键多值Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差。l就是left、左边,r就是right、右边从表头插入一个或多个值。(头插)lpush value1 value2......有左边插入自然有右边插入,从右边插入就是把l改成r从表尾插入一个或多个值。
2021-10-26 22:06:13
365
原创 保姆级详解--idea上传代码到gitee
在gitee创建仓库输入仓库名称路径会自动生成,也可以自己修改仓库介绍,随意就好点击创建如图所示点击HTTPS,默认也是复制地址(后面要用)idea操作1、创建git仓库2、点击后如图所示选中自己项目的根目录,点击确认3、右键根目录,点击git,然后添加到缓冲区4、同样步骤点击commit,提交到本地仓库5、点击提交后如图所示6、确认提交后,等待提交完成7、注意检测出错误和警告看自己需求是否继续提交8、push到gitee9、点击push如图所
2021-10-25 23:04:35
178
原创 redis数据类型String详解
StringString是Redis最基本的类型,一个key对应一个value。String类型是二进制安全的。意味着Redis的string可以包含任何数据。比如jpg图片或者序列化的对象。String类型是Redis最基本的数据类型,一个Redis中字符串value最多可以是512M。设置key-valueset key value获取指定key的valueget key将给定的value追加到原值的末尾append key value获得值的长度strlen k
2021-10-24 16:09:17
599
原创 redis数据类型keys详解
Redis键(key)设置key-valueset key value获取指定key的valueget key查看当前库所有keykeys *exists key判断某个key是否存在,1–存在,0–不存在exists key查看key是什么类型type key删除指定的key数据del key删除指定的key(s),若key不存在则该key被跳过。但是,相比DEL会产生阻塞,该命令会在另一个线程中回收内存,因此它是非阻塞的。 这也是该命令名字
2021-10-24 15:10:42
1361
原创 redis入门
NoSQL随着用户访问量大幅度提升,同时产生了大量的用户数据,大量io。加上后来的智能移动设备的普及,给cpu、内存、带来了巨大压力。NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库。NoSQL 不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。不遵循SQL标准。不支持ACID。远超于SQL的性能。NoSQL适用场景对数据高并发的读写海量数据的读写对数据高可扩展性的NoSQL不
2021-10-23 21:27:37
116
原创 万字详解DQL
DQL语言DQL(Data QueryLanguage), 数据查询语言,关键字:SELECT 、FROM 、 WHERE。语法格式:SELECT 【查询列表】FROM 【表名】;注意:查询列表可以是表中的字段,常量值,表达式,函数。查询的结果是一个虚拟的表格查询表中的多个字段 :将表中所有字段罗列查询列表的每个字段用逗号隔开。SELECT 【字段1,字段2,字段3...】FROM 【表名】;查询表中所有字段:用通配符【*】代替所有字段SELECT * FROM.
2021-10-23 15:05:06
449
原创 数据库基础知识
数据库相关概念:DB: 数据库(database),存储数据的“仓库”,它保存了一系列有组织的数据。DBMS: 数据库管理系统(database management system),数据库是通过DBMS创建和操作的容器。SQL: 结构化查询语言(structure query language),专门用来与数据库通信的语言。数据库存储数据的特点将数据存到表中,表再放到库中。一个数据库可以有多个表,每个表都有一个自己的名字,用来标识自己,表名具有唯一性。表具有一些特性,这些特性定义了数据在表
2021-06-01 23:36:56
1085
2
原创 数据结构与算法----十大排序
在讲解各大排序算法前,我们先了解一下稳定排序,就是待排序的元素列中可能存在两个或两个以上关键字相等的记录。排序前的序列中Ri领先于Rj(即i<j).若在排序后的序列中Ri仍然领先于Rj,则称所用的方法是稳定的。比如int数组[1,1,1,6,4]中a[0],a[1],a[2]的值相等,在排序时不改变其序列,则称所用的方法是稳定的。冒泡排序这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。.
2021-05-22 15:41:12
234
原创 数据结构与算法---B+树
再了解B+树之前如果还有不清楚B-树的可以了解先去一下,方便后续理解。B-TreeB+Tree简介B+树是一种树数据结构,通常用于数据库和操作系统的文件系统中。B+树的特点是能够保持数据稳定有序,其插入与修改拥有较稳定的对数时间复杂度。B+树元素自底向上插入,这与二叉树恰好相反。定义B+树是B树的一种变形形式,B+树上的叶子结点存储关键字以及相应记录的地址,叶子结点以上各层作为索引使用。一棵m阶的非空B+树满足如下条件:每个结点至多有m个子女;除根结点外,每个结点至少有m/2个子结点,.
2021-05-19 14:24:48
1011
原创 数据结构与算法---B-Tree
手撕B-Tree注意不是“B减Tree”,而是“B杠Tree”,B-Tree就是B树,没有所谓的B减树!!!B树是一种平衡多叉排序树,这里指的平衡是指所有叶节点都在同一层上,从而避免出现像二叉排序树那样的分支退化现象;多叉是指多于二叉,因此B树是一种动态查找效率较二叉排序树更高的树结构。如图所示:探讨B树之前,我们先了解关于B树的一些概念:B树的 阶 :就是B树中每个结点最多子节点个数,例如2-3树的阶是 3 ,2-3-4树的阶是 4 ;(下面会以2-3树来讲解)B-树的 关键字 :结
2021-05-18 21:22:17
678
原创 JavaSE----抽象类和接口
抽象类抽象类是以 abstract 修饰的类,抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。有抽象方法的类必须是抽象类,抽象类可以没有抽象方法。语法格式:public abstract class AbstractDemo {}abstract class AbstractDemo {}访问权限只能是缺省或public;抽象方法如果你想设计这样一个类,该类包含一个特别的成
2021-05-17 18:03:58
423
原创 数据结构与算法---KMP算法
对于字符串匹配的算法比较多,像暴力匹配,Boyer-Moore 算法、Sunday 算法,以及我们今天要讲的KMP算法(Knuth-Morris-Pratt 算法)。在去了解暴力匹配之前我们先了解了解暴力匹配暴力匹配暴力匹配在匹配不上的时候都会将指针指向本次进行匹配的【发起点】的下一位置。而模式串的指针移至起始位置。尝试匹配,发现对不上,原串的指针会一直往后移动,直到能够与匹配串对上位置。不难得知暴力匹配的时间复杂度为 O(n*m)(n为原串的长度,m为模式串的长度);空间复杂度为O(1),.
2021-05-16 14:34:38
245
原创 数据结构与算法---Manacher算法
manacher算法是处理回文子串的一种经典算法。处理回文子串一般使用暴力匹配,动态规划,中心扩散,以及manachar。在写manacher算法前我们先了解一下中心扩散以及动态规划。暴力匹配比较简单就不再阐述了。中心扩散法中心扩散法,顾名思义就是以某一个位置为中心,向周围扩散,直到满足条件或到达边界。中心扩散法的思路是:遍历每一个索引,以这个索引为中心,利用“回文串”中心对称的特点,往两边扩散,看最多能扩散多远。代码实现: public String longestPalindrome1(Str
2021-05-15 18:32:15
601
8
原创 数据结构与算法---红黑树
手撕红黑树1.什么是红黑树?红黑树(Red Black Tree) 是一种自平衡二叉查找树,在1972年由Rudolf Bayer发明的,当时被称为平衡二叉B树(symmetric binary B-trees)。后来,在1978年被 Leo J. Guibas 和 Robert Sedgewick 修改为如今的“红黑树”。红黑树是一种特化的AVL树(平衡二叉树),都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。与二叉树相比,在TreeNode中加了color属性
2021-05-15 09:45:15
296
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人