自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 日志级别和打印日志调优

日志级别和打印日志调优

2022-07-20 10:12:04 3059 1

原创 分布式事务实战——seata整合flowable(一)

seata整合flowable——AT模式实战章节简介:背景介绍实战部分踩坑和解决方案1.背景介绍背景是微服务项目,采用的是seata分布式事务整合flowable工作流引擎。首先看业务场景,需要做分布式事务改造的分为工作流服务、业务服务两个微服务,其中:a.工作流服务就是flowable引擎封装的发起流程、审批等部分。通过工作流引擎提供的ExecutionListener事件监听器在审批结束之后调用业务的审批通过接口。b.业务服务主要是通过调用flowable服务的送审、接收fl

2021-06-04 16:52:04 3616 2

原创 seata分布式事务报错can not get cluster name in registry config

最近在做flowable+seata的整合,配置中心注册中心用的是nacos,频繁出现报错:can not get cluster name in registry config 'service.vgroupMapping.account-service-fescar-service-group', please make sure registry config correct经检查,你需要确认:1.seata的server端registry.conf文件中,注册中心和配置中心是否正确2

2021-06-03 09:46:06 27603 1

原创 OceanBase代替Oracle的踩坑记录

最近接到的任务,客户要求使用OceanBase代替Oracle,因此使用OceanBase的Oracle模式代替。记录一下这个过程中遇到的坑。OceanBase版本:2.2.501.SQL脚本差异主要区别是OceanBase不支持add constraint这种写法,需要写在括号内部。例如:Oracle:-- Create tablecreate table ACT_EVT_LOG( log_nr_ NUMBER(19) not null, type_

2021-05-12 09:36:02 5061 1

转载 ERR This instance has cluster support disabled

意思就是配置里指定的是redis集群,但是实际没有连接到redis集群。我是启的单机redis,所以肯定报错了,改成集群启动后成功。所以需要把redis改成集群启动,参照这篇博客:https://blog.csdn.net/catoop/article/details/93767573...

2021-01-07 15:49:51 1426

原创 Mybatis框架(一)——Mybatis和Hibernate的对比和技术选型

数据持久层框架介绍:1.数据持久层的常见解决方案数据持久层框架是为了方便我们和数据库打交道而出现的,常见的解决方案有以下这些:Mybatis(Mybatis-plus)、hibernate、springdata jpa、ObjectiveSQL 、通用mapper其中Mybatis+MybatisPlus和hibernate加起来基本占据了大部分市场,因此这两套解决方案也是我们了解的重点。2.Mybatis和Hibernate的对比和技术选型Mybatis是不完整的解决方案,更像是”SQL模板

2021-01-06 16:00:43 832

原创 Cannot resolve method 如何解决

IDEA报错Cannot resolve method但是项目可编译可运行是缺少Lombok插件在Files-settings-plugins搜索lombok下载、重启、解决

2020-11-30 15:15:06 7687 1

原创 Flowable引擎(一)——表结构

一、表的类型和功能区分Flowable的数据库名称全部以ACT_开头,第二部分是两个字符的标识,代表了该表的功能,第三部分是具体名称。ACT_RE_ *:“ RE”代表存储库。具有此前缀的表包含“静态”信息,例如流程定义和流程资源(图像,规则等)。ACT_RU_ *:“ RU”代表runtime运行时。这些是运行时表,其中包含流程实例,用户任务,变量,作业等的运行时数据。ACT_HI_ *:“ HI”代表history历史。这些表包含历史数据,例如过去的流程实例,变量,任务等。ACT_GE_ *:

2020-11-10 09:27:46 437

转载 List<Map<String, String>>存放map对象的问题

今天遇到一个问题,给List<Map<String, String>>存放map的时候先给map赋值,然后存入list中,最后再clear掉map,便于下次循环赋新的值public class Test { public static void main(String args[]) { List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();

2020-11-09 14:34:12 2310

原创 [WARNING] Corrupted STDOUT by directly writing to native stream in forked JVM 1

昨天打包项目的时候,进行maven install遇到了这个问题[WARNING] Corrupted STDOUT by directly writing to native stream in forked JVM 1查阅之后在starkoverFlow找到了相关的问题解答作者说:Dropping the surefire version to 2.18 stops the jvm from crashing but does not execute the tests. Any versio

2020-10-15 09:14:59 6171 4

原创 Gitlab在fork之后如何和主仓库同步

上一篇文章讲到了在Gitlab上如何多人协作开发。Gitlab多人协作流程—fork和merge request但是这个项目并不是你一个人在提交MR,难免会出现当你想提交时,你fork出来的仓库已经跟源项目不同步了(也就是你MR之前别人已经MR过了),出现这种情况,肯定要将源项目的库重新和你fork出来的仓库同步。1.首先git remote -v查看远程仓库路径如果只有origin没有upstream,需要使用“git remote add upstream+源项目地址“”的命令增加上游代码库

2020-09-17 17:44:20 10262

原创 Gitlab多人协作流程—fork和merge request

1.创建一个group空间test作为你个人的开发空间2.然后对于你想要贡献代码或者修改代码项目进行fork,并且加入该test空间3.你的test空间之中就有了一个fork出的仓库,现在clone这个你fork出来的项目到本地4.然后开始你的coding过程,然后git commit提交你的改动5.如果你fork的项目提示有冲突,说明你fork的项目在你fork之后有改动并且你没有更新,如果你的开发环境是IDEA的话,使用Update Project即可6.然后push你的改动到你的

2020-09-11 15:56:34 4435

转载 idea启动设置application找不到主类

找不到需要把主类所在的java文件设置为Sources文件 idea才读取得到步骤打开file–project structure–Modules将主类所在java文件夹设置为Sources再次打开application设置,可以找到主类了

2020-09-10 17:57:19 5712

原创 Windows系统查看端口占用并关闭

启动项目时报错Description:The Tomcat connector configured to listen on port 8000 failed to start. The port may already be in use or the connector may be misconfigured.显然是端口占用问题,IDEA如果非正常退出(例如用任务管理器关闭),这些端口就没有被释放。如何查看端口占用并杀死进程1.首先WIN+R打开运行,输入cmd进入命令行2.使用ne

2020-09-10 14:19:15 924

原创 springboot+mybatis的多表查询如何实现

表关系有如下表关系,目标是实现多表查询,查询所有拥有角色的用户,也就涉及了三张表。dto:这边有两种方式完成多表查询,第一种是把你需要的属性例如uName用户名和rName角色名这两个字段放入UserRole中,第二种是直接将role和user对象放入UserRole中。第一种的好处是没有额外开销,需要什么就放什么,缺点是不方便扩展,第二种造成了一点空间浪费,但是后续如果加入其他查询需要的字段,不需要修改dto。此处选择的是第二种。mapper.xml接下来是构造mapper.xml文件中的

2020-08-11 09:50:14 3406 4

原创 mybatis分页查询pagehelper插件

PageHelper是国人开源的分页插件,使用简单,文档是中文易读易懂。这边贴一下插件的Github地址:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md如何使用:上述文档说的非常详细,这边就贴一下实际代码和注意事项1.PageHelper.startPage():调用这个方法之后,下一次sql查询将会被分页,注意只有第一次查询。参数:pageNum——分页之后展示第几页。pageS

2020-08-11 09:19:18 332

原创 postman的请求结果为NULL的部分该如何去掉

背景用postman测试的时候,例如你做SELECT一个表中的A字段,返回结果可能会有A字段的数据和B字段为NULL的结果,因为你并不是每个字段都需要。例如:如何不显示为NULL的字段呢?在Dto对象上添加@JsonInclude(value = JsonInclude.Include.NON_NULL)的注释,返回结果就只会显示不为NULL的结果了。...

2020-08-06 09:49:49 2589

原创 @GetMapping和@PostMapping区别详解

@GetMapping:直接从URL获得数据,以www.xxx.com/?id=1类似这种形式传输。举例:这个URL中,请求来到后端,并且是一个Get方法,那么selectById就会接受到一个id=1这样的参数@PostMapping请求会从body部分拿到数据,好处是一些不希望用户看到的数据会放在body里面传输。举例这个post方法,pageNum和pageSize数据都在body里面而不是在url里...

2020-08-06 09:39:43 20960

原创 Dao层service层controller层mannager层和biz层详解

本篇文章内容1.阿里开发手册关于应用分层的部分2.对于阿里应用分层的理解1.阿里开发手册关于应用分层的介绍1.开放接口层: 可直接封装 Service 方法暴露成 RPC 接口;通过 Web 封装成 http 接口;进行 网关安全控制、流量控制等。2.终端显示层: 各个端的模板渲染并执行显示的层。当前主要是 velocity 渲染,JS 渲染, JSP 渲染,移动端展示等。3.Web 层: 主要是对访问控制进行转发,各类基本参数校验,或者不复用的业务简单处理等。4.Service 层:

2020-08-06 09:29:02 25638 5

原创 Mybatis零基础入门教程

阅读你将学会:1.从零开始配置一个Mybatis项目2.通过非常简单的实例掌握Mybatis基本操作3.mybatis的三种SQL映射方式1.1项目介绍基于mybatis的mysql数据库增删改查程序。1.2程序流程和目标效果:1.有一张student学生表,只有学号id、名字name、年龄age,三个属性2.通过mybatis完成对student表的增删改查(crud)3....

2019-12-31 14:43:10 415 1

原创 策略模式——在游戏设计中的思路

阅读本文你可以:1.带入游戏角色设计实例,了解策略模式2.分析该实例,进一步体会策略模式的优势1.什么是策略模式策略模式的定义:策略模式定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。定义太生硬看不太懂不要紧,下面通过一个游戏设计的实例,很快就可以理解其中的精神。2.结合实例分析策略模式你是一款格斗游戏开发人员,现在需要对游戏角色和角色...

2019-12-17 15:00:22 768

原创 C/C++内存管理笔试题

这是一道不算难的笔试题,只要熟悉C/C++内存区域划分就可解答。int globalVar = 1;static int staticGlobalVar = 1;void Test(){static int staticVar = 1;int localVar = 1;int num1[10] = {1, 2, 3, 4};char char2[] = "abcd";char* ...

2019-09-14 17:54:53 563

原创 链表的中间结点

题目:给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。思路:两个指针,一快一慢,快的走两步,慢的走一步,快指针走到倒数第一个结点时,慢指针就在中间。细节问题:总体思路是快慢指针的前提下,有两种方法,我推荐第二种:第一种:一个循环内,快指针每次走两步,但是这样就要多写一个判断,防止快指针第二步走到空上。第二种:拿一个互斥...

2019-08-29 09:39:46 107

原创 移除链表元素

题目:删除链表中等于给定值 val 的所有节点实例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5解题思路:前后两个结点依次遍历每一个链表元素即可。这道题的易错点在于对头结点就等于val的处理上,因此两种办法处理头结点:方法一忽视头结点,直接从第二个结点开始判断,在最...

2019-08-27 16:25:53 127

原创 内存对齐问题

结构体为什么需要内存对齐?1.第一是硬件原因,不是所有硬件都支持对任意地址的任意数据进行访问,有些平台只支持对某些地址处的特定类型数据进行访问,不然硬件就会抛异常2.一些数据结构,尤其是栈,需要在内存自然边界上对齐。如果不对齐,处理器需要对该内存进行两次内存访问,而对齐了只需要访问一次,效率要高一些结构体内存对齐规则1.首先有一个概念,默认对齐数,是编译器默认的对齐数和该成员大小的较小值。...

2019-08-26 20:38:45 367

原创 Linux——如何删除用户以及结束其进程

首先尝试userdel username出现提示,当前用户在被某些进程使用,无法删除所以先使用以下指令删除该用户所有进程killall -u username再使用userdel username删除成功...

2019-08-08 22:26:18 2185

原创 C/C++——实现扫雷游戏

C/C++实现扫雷小游戏源代码:github:https://github.com/KamSss/C-Practice/tree/master/Minesweeper扫雷小游戏/Minesweeper扫雷总体构造:a.简易的游戏菜单逻辑b.初始化棋盘c.布置雷的位置d.排雷、棋盘打印、判断输赢(难点)a.简易的游戏菜单逻辑简单的通过一个输入0和1实现判断是玩游戏还是退出游戏的逻辑...

2019-08-04 23:41:18 1509 1

原创 常见排序算法——插入排序(希尔排序、直接插入排序)

希尔排序(一)简介:希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。(二)时间、空间复杂度:O(n^(1.3—2)):最好1.3次方最坏平方(插排)O(1)(三)实现思路1.对当前数据按照一定的增量分组,增量的大小在工程上的习惯是gap = ( len / 3) + 1。2.对划分出的每一组分别进行直接插入排序,使得当前数据逐渐贴近有序。...

2019-07-29 13:09:17 229

原创 C/C++——格式化输出%5.3s的输出结果

%s是输出字符串,那%5.3s呢?先说结论%X,Ys的格式化输出,X是总长度,Y是从字符串中从左边取Y位,剩下的位数补空格我们尝试以下代码#include<stdio.h>#include<stdlib.h>int main(){ printf("%s\n", "computer"); printf("%4.3s\n", "computer"); pri...

2019-07-24 23:20:04 2112

转载 Linux系统——重要目录/var,/bin,/usr,/lib介绍

/usr/lib  程序或子系统的不变的数据文件,包括一些site-wide配置文件.名字lib来源于库(library); 编程的原始库存在/usr/lib 里./var包括系统运行时要改变的数据。其中包括每个系统是特定的,即不能够与其他计算机共享的目录/usr/local  本地安装的软件和其他文件放在这里./bin  几乎所有用户命令.有些命令在/bin 或/usr/local...

2019-07-24 12:00:46 6951

原创 计算机图形学实验——直线扫描算法C/C++实现(VC和TC环境)

生成方法用了中点画线法完成实验,中点画线法利用了直线的一般式方程:F(x,y) = 0 ;Ax + By + C = 0; 这条直线将平面区域的点分为三个部分,直线上方、直线下方、在直线上。遇到的问题写的过程中发现《计算机图形学》书上用的setpixel()函数和initpraph()函数无法使用,查了之后才知道这几个函数是Turbo C编译器的。之后查到在EasyX的官网,可以下载 &lt...

2019-06-21 22:30:11 1691

原创 程序员必看的书籍列表!从现在开始提升自己!(持续更新)

因为我的水平还留在基础篇的部分,所以此篇文章会持续更新。。。基础篇《C和指针》《Cpp primier plus》《剑指offer》《Unix高级环境编程》《Unix网络编程》《Linux鸟哥私房菜》如何学Python:官方文档《代码大全code complete》《C++ cookbook》系列《高质量 C++/C 编程》(这本书的书评不高 但是题目很经典)《图解TCP/...

2019-06-09 11:18:39 708

原创 Linux系统——gdb调试技巧

gdb调试技巧1.入门调试技巧2.进阶调试技巧前言我们知道,在linux环境下调试代码是不轻松的,至少很多IDE集成开发环境下的调试工具都比Linux下的调试要好用。但是Linux也有像gdb这样的工具,帮助我们进行相对方便的调试。使用-g选项允许gdb调试我们在Linux环境下编译代码时,默认生成的可执行文件是没有办法使用 gdb 进行调试的,但是我们在编译选项里输入 -g选项...

2019-06-06 16:50:28 224

原创 Linux系统——理解权限操作和粘滞位

本篇知识点清单1.Linux的权限划分2.Linux的权限管理(权限操作的指令)(1)认识Linux的权限系统权限意味着有高有低,在Linux下有两种用户,超级用户(root用户)和普通用户:root 用户:可以在Linux里做任何事情,权限比普通用户高普通用户:能做的事情有限。如何查看当前权限以及切换不同用户我们在终端里看到的 $ 就代表普通用户,# 就代表 root 用户...

2019-06-01 12:56:00 257

原创 编程之旅——谁是世界上最好的编译器

1.C和C++工具GCC/G++说到类unix系统(Linux等),可就绕不开GCC和G++了,他们是这种环境下几乎最常见的编译器了Visual C 系列微软公司最出名的编译器,从十年前的 VC6.0 到现在的 2013和2017 这一款集成开发工具都非常好用 (特别是调试很爽)缺点是不支持Linux开发(毕竟是敌对势力2.Java工具Eslise这个工具曾经很火,但是现在已经人气...

2019-05-30 23:05:49 1621

原创 Linux系统——基本指令和使用方法

Linux基本指令入门索引ls指令cd指令(1)ls指令用法:ls[选项][目录或文件]功能:如果跟一个目录,列出该目录的所有子目录和文件。如果跟一个文件,列出文件名和相关信息常用选项:⭐ls指令演示⭐更好用的ll指令:其实是ls -l的缩写,可以显示目录/文件的详细信息:(2)cd指令用法:cd + 目录名(进入该路径下的目录)cd …(进入上级目录)cd...

2019-05-30 22:47:06 267

原创 C++练习题——密码安全等级划分

题目:密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分。一、密码长度:5 分: 小于等于4 个字符10 分: 5 到7 字符25 分: 大于等于8 个字符二、字母:0 分: 没有字母10 分: 全都是小(大)写字母20 分: 大小写混合字母三、数字:0 分: 没有数字10 分: 1 个数字20 分: 大于1 个数字四、符号:0 分: 没有符号10 分: ...

2019-05-30 22:46:16 916

原创 LeetCode和NewCode常见错误(持续更新)

use of undeclared identifier使用了未定义的标识符解决:可能是没有在结构体内定义导致的comparison of integers of different signs: ‘int’ and ‘size_type’错误信息:int 和 size_t 两种不同类型的整数在进行比较错误实例:int i = 0;for(i = 0 ; i < strin...

2019-05-18 20:07:11 5708

原创 Linux系统——Linux介绍和环境搭建

(一)初识Linux和开源精神!这一个部分我主要想说一说这几个事情:为什么要学Linux?什么是Linux?怎么学Linux?(1)为什么要学Linux1.Linux是全世界市场份额最高的操作系统,也是任何一个程序员都会用到的操作系统(a)在移动嵌入式领域,大名鼎鼎的安卓系统就是基于Linux系统开发的,而它在市场重所占的比重接近85%,覆盖了大多数手机、平板、电视、游戏机、路...

2019-05-07 14:47:19 463

原创 C/C++——操作符总结

C语言操作符总结对这段时间里C语言里的操作符学习进行一个总结操作符列表:算术操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号操作符下标引用·函数调用·结构成员算术操作符+ - */ %‘ / ’号操作符:1.作用于整型量时,会自动消除四舍五入的量,如:111/10=11,个位上的1被四舍五入消除了。2.当两边的操作数都是整数时,...

2019-04-08 20:42:29 302

空空如也

空空如也

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

TA关注的人

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