- 博客(25)
- 收藏
- 关注
原创 关于rabbitmq持久化的时候报错在这个交换机中已经是true但是current is‘false‘
是因为对列之前第一次设置的时候是true需要删除队列重新设置持久化。
2023-01-20 22:14:24
351
原创 mybatisplus主键自增策略
mybatisplus 修改主键的自增策略修改为主键自增的时候报错[Err] 1062 - ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry ‘1’ for key ‘PRIMARY’修改配置文件在修改数据库的主键为自动递增保存的时候出错
2022-11-01 14:24:55
914
原创 网关gateway + nacos 遇到503错误
因为nacos兼容feign,feign集成ribbon,默认实现负载均衡;或许是nacos不兼容springcloud gateway自带的ribbon。
2022-10-30 17:09:06
1001
原创 nacos集群搭建常见的坑
在搭建集群的时候千万要注意自己的版本在高版本中在本地搭建几圈连续的端口号会启动不了nacos 集群中的端口号必须不能是连续的,配置文件中在配置集群的时候集群的ip地址号必须时候真是的ip地址不能是127.0.0.1否则会找不到地址,而且在使用naginx进行负载均衡nacos的地址得修改成nagnix中配置的监听的端口号。Nacos启动异常:failed to req API:/api//nacos/v1/ns/instance after all servers([127.0.0.1:8848])
2022-10-29 14:35:29
816
原创 Gitee推送失败的解决方法
git pull 远程库地址 分支 --allow-unrelated-histories。pull后又报一个新的错误 拒绝合并不相关的历史 直接强制合并现在可以正常push了。先拉取远程库中的代码因为如果远程库的代码版本比本地库的高的话是不能push成功的。原因是仓库里有文件了,我们推送新的项目的时候造成了冲突,仓库已经有主人了;原因一般是因为我们本地的项目一致没有和远程仓库接触过。
2022-09-18 17:13:47
3482
原创 Git报错fatal: this operation must be run in a work tree
【代码】Git报错fatal: this operation must be run in a work tree。
2022-09-16 20:18:19
10541
原创 linux笔记
cat 从第一行开始显示文件的内容-A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;-v :列出一些看不出来的特殊字符-E :将结尾的断行字节 $ 显示出来;-T :将 [tab] 按键以 ^I 显示出来;-b :列出行号,空白行不标行号-n :列出行号,连同空白行也会有行号tac从最后一行显示文件的内容nl 显示的时候显示行号-b :指定行号指定的方式,主要有两种:-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
2022-09-15 21:23:15
500
原创 Linux下MySQL报错的解决‘Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘..
最后问题是由于新增加 了一块硬盘没有对硬盘进行一个格式化在学习的过程中应该保留一些快照解决问题能够事半功倍。
2022-09-15 19:00:28
478
原创 mybatis
如果入参是多个可以通过指定参数位置进行传参,是实体类包含不住的条件实体类只能封装成员变量的条件如果某个条件有区间范围的判断或者两个值进行处理则实体类包不住。二级缓存使用的是mapper的作用域,不同的sqlsession只要访问的是一个mapper.xml则共享二级缓存。一级缓存使用的是sqlsession的作用域同一个sqlSession共享一级缓存。当我们返回的的数据来自不同的表的时候通过实体类是不能进行接收的返回的键就是列名。站在订单的方向查询订单的同时将客户的信息查出。多个学生只有一个老师。
2022-09-08 15:59:00
843
原创 mybatis中foreach标签的使用
collection:属性的值为 list array map 就是参数位置传过来的类型三种分别对应的参数是List 数组 map集合。mapper.xml: 就是吧数组中传过来的参数进行一个遍历 加入数组的内容是1,2,3那么查询的内容就是id 是1,2,3的数据。在编写mapper文件的时候当入参是数组集合map,参数超过一个时候参数parameterType省略。item是每次遍历出来的对象或者值 名字可以任意。separator是多个值或对象之间的分隔符。应用场景:查询多个指定id的用户信息。
2022-09-07 23:30:36
988
原创 mybaits中动态更新的意义
在一些使用更新的场景中,假设我们更新的对象是一个实体类,我们的mapper是对每一列都进行更新,如果我们只对其中一部分字段进行了值的更新那么其他没有赋值的字段会被默认值给覆盖,实际上我们需要的效果是我们传入那个字段的值就对那个字段的进行更新否则保持原来的值不变这才是我们想要的效果 可以使用set标签进行解决。set标签的作用就是进行一个动态的判断只有当if标签里的条件满足之后才会对拼接表达式的内容。这段代码的含义是对一个用户进行更新用户的信息包括id username password。
2022-09-07 23:05:46
238
原创 java aspectj execution 表达式的书写及其含义
package com.zhangsong1.s01;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;import org.springframework.stereotype.Component;import java.util.Arrays;//切面类@Aspect//交给AspectJ的框架去识.
2022-05-10 15:46:45
597
原创 Java循环嵌套练习————99乘法表
for(int i=1;i<=9;i++) { for(int j=1;j<=i;j++) { System.out.print(j+"*"+i+"="+i*j); System.out.print(" "); } System.out.println(); }
2022-01-14 10:05:02
181
原创 顺序查找及其优化C语言
#include<stdio.h>void sort(int *arr, int len)//直接插入排序{ for (int i = 0; i < len-1; i++) { int end = i;//记录最后有序的下标初始第一个元素有序 int temp = arr[end + 1];//待插入的元素; while (end >= 0) { if (temp < arr[end]) { arr[end + 1] = arr[e.
2021-10-13 10:52:58
219
原创 顺序查找(c语言描述)
#include<stdio.h>int Search(int *arr,int len,int key)//顺序查找{ int i = 0; for (; i < len; i++) { if (arr[i] == key) return i; if (i ==len) return -1; }}int main(){ int arr[] = { 5, 32, 11, 43, 90, 23 }; int len = sizeof(arr) /.
2021-10-13 10:19:17
167
原创 图的邻接矩阵及其实现C语言
邻接矩阵就是在图中如果存在边的话就把矩阵相应位置的值设置为权值无权图设置为1#include<stdio.h>#define MAXSIZE 100typedef struct{ int data[MAXSIZE];//顶点数组 int arc[MAXSIZE][MAXSIZE];//邻接矩阵 int vexnum, edgenum;//当前的定点数和边数 }MGraph;void CreateMgrapg(MGraph *p){ int i, j, k, w;
2021-10-10 18:56:00
1787
原创 邻接表创建无向图
#include<stdio.h>#include<stdlib.h>#define MAXSIZE 100typedef struct Node//边表{ int adjvex;//储存顶点对应下标 Node *next;}Node;typedef struct VerexNode//顶点表{ char data; Node *firstB;}VerexNode, AdjList[MAXSIZE];typedef struct Mgraph//邻接...
2021-10-10 16:41:32
750
原创 寻找共同的表尾
就是先比较长度如果长度不一样让长的链表先遍历到相同的长度然后同时向后遍历如果有一个结点的值相同则退出循环#include<stdio.h>#include<stdlib.h>typedef struct LNode//定义结构体{ char data; LNode *next;}LNode,*LinkList;void tailList(LinkList &L,char arr[],int n){ L = (LNode *)malloc(sizeof(
2021-09-27 20:50:43
71
原创 链栈的基本操作
链栈是一种数据存储结构,可以通过单链表的方式来实现,使用链栈的优点在于它能够克服用数组实现的顺序栈空间利用率不高的特点,但是需要为每个栈元素分配额外的指针空间用来存放指针域,使用链栈较顺序栈来说不存在栈满;链栈就是仅在表尾进行插入删除的单链表,插入和删除采用的是头插法#include<stdio.h>#include<stdlib.h>typedef struct StackNode{ int data; struct StackNode *ne...
2021-09-20 15:06:27
410
原创 顺序栈的基本操作
栈是一种运算受限的线性表,是一种先进后出的数据结构,限定只能在一端进行插入和删除操作,允许操作的一端称为栈顶,不允许操作的称为栈底顺序栈的实现是十分简单的跟顺序表的顺序存储基本一致顺序栈的基本操作如下:#include<stdio.h>#include<stdlib.h>#define MaxSize 50//顺序栈的初始空间#define Stackcream 10//存储空间分配增量typedef struct{ int data[MaxSize]
2021-09-18 21:26:23
836
原创 如何创建带头结点的双链表
深度在创建带头结点的双链表前我们需要先了解什么是双链表:双链表是在单链表的基础上多了一个 指向其直接前驱的指针初始状态因为只有一个头结点所以,L->next=NULL;L-.prior=NULLL;这样在任何一个结点都可以很方便的访问其前驱结点和后继结点在访问其前驱和后继是时间复杂度都为O(1)创建头结点的双链表可以使用头插法和尾插法来实现下面依次讲解:...
2021-09-18 13:57:24
1034
1
原创 创建带头结点的循环单链表
循环单链表顾名思义就是相当于一个环,单链表只能顺着指针链向后查找,但是在尾部寻找第一个结点的时候时间复杂度较高,我们可以多引进一个指向尾部的指针这这样寻找第一个结点和最后一个结点的时间复杂度都为O1c语言的详细代码实现有两种方法实现循环单链表分别是尾插法和头插法,循环单链表的创建跟单链表类似,只是在初始化的时候因为是循环单链表那么刚开始只有一个头结点那么他的尾结点的指针是指向他自己本身的,所以初始化为空的时候要L->next=L;代码如下:#include<stdio.h.
2021-09-17 11:35:48
2660
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人