- 博客(72)
- 资源 (2)
- 收藏
- 关注
原创 软件工程-23种设计模式和7大设计原则
软件工程这一个大的学习章节中,其中有23种软件设计模式和七种设计原则需要掌握,下面为大家梳理出相关的知识点。
2022-10-04 17:05:55 3681
原创 MySQL索引失效场景以及解决方案
在对SQL语句进行索引查询时会遇到索引失效的时候,对于该语句的可行性以及性能效率方面有至关重要的影响,本篇剖析索引为何失效,有哪些情况会导致索引失效以及对于索引失效时的优化解决方案,其中着重介绍最左前缀匹配原则、MySQL逻辑架构和优化器、索引失效场景以及为何会失效......
2022-07-21 13:35:49 5321 6
原创 数据库中的事务四大特性和隔离级别
一、数据库的事务是什么?为什么需要事务在多个改变数据库中的值操作下其中一个操作发生崩溃,继而会导致此次崩溃后的数据紊乱。举个例子:转账是生活中常见的操作,比如从A账户转账100元到B账号。站在用户角度而言,这是一个逻辑上的单一操作,然而在数据库系统中,至少会分成两个步骤来完成:1.将A账户的金额减少100元2.将B账户的金额增加100元在这个过程中可能会出现以下问题:1.转账操作的第一步执行成功,A账户上的钱减少了100元,但是第二步执行失败或者未执行便发生系统崩溃,导致B账户并没有相
2022-03-10 10:53:42 1381
原创 一篇文章教你MySQL从卸载到安装全过程
一、前言还在为旧版本MySQL删除注册表而烦恼吗,还在为找不到新版本MySQL安装包而四处求包吗,本文直接把MySQL从卸载到安装所有过程罗列出来。废话不多说,接着往下看。整个MySQL重装的过程可以分为以下三步:1.完全卸载旧版MySQL(注意此步骤需备份旧版MySQL中的所有数据库)2.下载、安装新版MySQL(这里会介绍官网以压缩包形式和MSI自动安装包形式)3.配置MySQL环境变量二、完全卸载旧版本首先把旧版本的MySQL卸载干净,如果有同学是安装新版本直接跳过此目录。这里先说明备
2021-12-02 16:53:27 1676 5
原创 SQL中各动词语句大全及使用语句
下面整理一下SQL中各动词如CREATEALERTDROPSELECTINSERTDELETEUPDATE等使用场景以及对应的SQL语句。
2024-10-24 09:11:22 154
原创 Error running ‘XXX‘: Command line is too long. Shorten command line for XXXor also for Spring Boot
启动服务时报错Error running ‘XXX’: Command line is too long. Shorten command line for XXXor also for Spring Boot总的来说:此part是很有可能超长从而导致Command line is too long现象的。
2023-11-01 16:36:41 6202
原创 npm install 报node-sass command failed
最近在前端项目Vue项目install时会出现node-sass command failed的错误,原因是NodeJS和node-sass的版本不对应导致的,本文将给出解决方案。
2023-10-24 08:50:42 1279 1
原创 MinIO分布式存储服务
MinIO 对象存储系统是为海量数据存储、人工智能、大数据分析而设计,基于Apache License v2.0 开源协议的对象存储系统,它完全兼容 Amazon S3 接口,单个对象的最大可达 5TB,适合存储海量图片、视频、日志文件、备份数据和容器/虚拟机镜像等。作为一个开源服务,MinIO 在设计上汲取了Glusterfs的相关经验不教训,系统复杂度上作了大量简化,目前大小只有40+M,部署只需要一个命令即可完成!
2023-05-02 17:10:57 4440 1
原创 VSCode格式化插件分享-Prettier
由于之前使用的Beautify格式化插件已经没有在维护了,所以这里再分享一个Formatter插件-Prettier。
2022-12-26 13:42:02 1761
原创 Redis夺命8连Call,你顶的住吗?!
不管是面试还是在项目开发中绕不开的中间件其中就有Redis,那么你是否真的了解了Redis,看看下面的问题是否能回答上吧!
2022-12-19 15:50:58 184
原创 Vue3与Vue2生命周期不同点
随着Vue3发布了两年多的时间,越来越多的小伙伴已经将老项目中的Vue2版本进行升级或者在新项目中使用到了Vue3.x的版本,今天就来总结以下Vue3相较于Vue2升级的生命周期不同点在哪。
2022-12-19 14:45:13 959
原创 哪些场景会使@Transaction注解失效?
今天给大家分享一下关于@Transaction哪些场景会失效这个问题,整合了一些关于@Transaction相关知识,这是一个在项目中常常会用到的注解,然而在不经意的一些细节就会导致这个注解失效,无法实现事务特性。
2022-10-24 09:32:36 925
原创 npm install @antv/xflow无法下载该依赖
最近在学习使用基于antV-X6框架搭建的Xflow组件,在开始下载依赖时就遇到了问题,下面详细说明 @antv/xflow无法下载的情况。该解决方案适用于所有npm install时安装依赖无法安装的情况。
2022-10-19 14:10:38 2172 1
原创 初识前端搬砖神器--AVUE
最近在开发项目过程中使用到了框架AVUE,他是基于elementUI和VUE高度封装后的框架,其特点是省时、省力(避免大量的CV操作),刚开始可能有些许的不习惯,使用了几天熟悉后就会感受到快乐了~下面我把使用属性分别用中文标示出来供大家查阅。...
2022-07-18 17:32:11 2942
原创 初识flowable工作流-实现简单请假流程SpringBoot+VUE
flowable实现简单请假流程,后台使用SpringCloud分布式框架,前端使用Vue。
2022-07-13 17:27:27 3950
原创 JAVA项目中使用POI(版本4.2.1) 解决报错 java.lang.NoClassDefFoundError: org/apache/poi/POIXMLDocumentPart
一、前言最近在做Word转Html时遇到了使用POI的4.2.1版本时报错:二、原因解析经过对比发现4.2.1版本比旧版本多了ooxml包,导致找不到POIXMLDocumentPart,所以这里的解决方案有两个:1.可以在项目中把旧版本的jar包源码修改后上传到maven仓库。2.依旧使用4.2.1版本并把配套的jar包依赖一同升级。本篇文章介绍第二种解决方法。三、依赖包依赖包中主要是xdocreport的版本一定要升级到2.0.2。 <dependency>
2022-05-31 13:43:42 14335 6
原创 JAVA中的BIO、NIO、AIO是什么?
一、前言最近面试时遇到了面试官问BIO、NIO、AIO相关的问题,当时有些深入点的问题没有答上来,这里给大家解释一下这三种IO的意义与关系。二、了解IO流Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer。Java中其他多种多样变化的流均是由它们派生出来的。字符流和字节流是根据处理数据的不同来区分的。字节流按照8位传输,字节流是最基本的,所有文件的储存是都是
2022-05-02 09:00:00 455
原创 查询哪些表有唯一索引(除了主键)
SELECT table_name, column_name, index_name, count(table_name) as index_count FROM information_schema.statistics WHERE index_name != 'primary' AND table_schema = 'your_database' GROUP BY table_name
2022-04-20 17:39:28 452
原创 JAVA项目中使用IText7和JFinal模板引擎渲染Html并显示中文
一、前言本文使用IText7中的html2pdf来实现HTML转PDF,模板引擎用的是JFinal模板引擎,当然其他模板引擎大同小异都是可以的,后面会给出解决转换后PDF无法显示中文问题。二、实现1.工具类代码import java.io.File;import java.io.IOException;import java.util.HashMap;import java.util.Map;import com.itextpdf.html2pdf.ConverterProperties;
2022-04-14 18:36:21 995
原创 JAVA 计算当月有多少天
1、计算当前月总共的天数 /** * 计算当前月有多少天 * * @return */ public int getDays(int year, int month) { int days = 0; if (month != 2) { switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days = 31; break
2022-04-08 10:43:42 6268
原创 navicat清空指定数据库的所有表数据
1、指定表清空数据。 # 清空表数据并设置id从1开始自增truncate table 表名;2、批量删除指定数据库的表数据。SELECT #这里可以拼出之后需要执行的清空数据库的表SQL CONCAT( 'truncate TABLE ', table_schema, '.', TABLE_NAME, ';' ) FROM INFORMATION_SCHEMA.TABLES WHERE #单个或多个数据库 table_schema IN ( '数据库1', '数据库2' );将
2022-04-01 14:44:38 7790
原创 Java项目Swagger报错:java.lang.NullPointerException: null
一、前言记录一下遇到的在SpringBoot项目中引用Swagger配置时启动报错,导致Swagger无法访问,但是项目可以启动并能访问后台接口。二、报错信息1、后台错误信息:2022-01-24 13:42:20.638 ERROR 18508 --- [ main] d.s.w.p.DocumentationPluginsBootstrapper : Unable to scan documentation context defaultjava.lang.NullPoi
2022-01-24 14:35:54 7224 9
原创 MySQL添加索引优化问题
一、索引的特点当MySQL单表记录数过大时,增删改查性能都会急剧下降。MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度。一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的,而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量。索引优势和劣势:优势: 大大减少了服务器需要扫描的数据量,可以帮助服务器避免
2021-12-22 17:21:52 372
原创 JDK1.8新特性 stream流使用
1、取集合中的指定字段为新的集合List<Long> ids = list.stream().map(CatalogCode::getId).collect(Collectors.toList());2、根据指定字段排序List<dto> list = dtoList.stream().sorted(Comparator.comparing(dto::getId)).collect(Collectors.toList());3、根据条件排序List<dto>
2021-12-13 09:55:09 455
原创 mabatis-plus分页查询只有500条返回值解决方案
1、前端传入pageSize设为-1。2、后台设置page的size为-1。IPage<Test> page = new Page((long)query.getPage(), (long)query.getPageSize());page.setSize(-1);原因是因为框架底层设置最大长度为500
2021-12-10 14:42:15 2039
转载 实现逻辑性强的业务代码时写SQL好还是写面向对象代码好?
记得刚入公司带我的研发哥们能写一手漂亮的 SQL,搜索准确、执行快、效率高。配合Web项目中的查询展示数据的需求,基本是分分钟完成任务。那段时间基本是仰视的态度,每天都去讨教一点手写 SQL 的要点,翻看一些 SQL 优化调整的技巧。随后经历了几个项目的打磨,不断去调整公司的框架,发现项目中大段 SQL 出现的概率越来越小。我不得不停下脚步,开始反思和总结出现这种现象的原因。如果你手上不忙并且感兴趣,请听我慢慢道来。下面是一个经典的系统权限数据库设计,作为例子来展开论述。组织机构、用户、角色、
2021-10-25 11:12:29 956
原创 java8中for循环的几种写法
1、最常规的循环/* 建立一个数组 */ int[] integers = {1, 2, 3, 4}; /* 开始遍历 */ for (int j = 0; j<integers.length; j++){ int i = integers[j]; System.out.println(i); } 2、使用迭代器循环/* 建立一个Collection */ String[] strings = {"A", "B", "C", "D"}; Collection
2021-10-24 15:43:22 8305 1
原创 SpringBoot集成ActiveMQ
一、消息队列概述1、什么是消息队列?消息队列是消息中间件的一种实现方式。消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。目前的消息队列有:ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。本篇主要对activeMQ集成到SpringBoot项目做详解。消息队列在实际应用中常用的使用场景有异步处理,应用解耦,流量削锋和消息通讯四个场景。异
2021-08-31 17:53:43 3312
原创 JAVA List中替换某一对象值
private static <E> void replaceAll(List<E> list,E oldObject,E newObject) { for (int i = 0; i < list.size(); i++) { //遍历 if(oldObject.equals(list.get(i))) { //如果list中存在与oldObject相同的值,则用newObject替换 list.se
2021-07-08 15:06:47 3644 1
原创 Java word2007中的XWPFParagraph、XWPFTable解析、替换
本文是word2007版本也就是适合文件类型为.docx文件的解析过程,主要是对XWPFParagraph、XWPFTable对象解析。一、文件上传首先从前端传入word文件,可以将文件上传到服务器、本地项目中、临时路径,主要是为了获取到文件的绝对路径,用于将MultipartFile类型转为File类型。二、文件解析1、上传文件解析,这里业务需求是将解析出来的字段里面有特殊标识,识别到后替换。 File f = new File(file); if (!f.exists())
2021-06-25 11:44:04 3980
原创 Java 将List集合中的数据倒序、复制
如果想将List集合中的数据全部倒序又不重新new一个集合的话可以使用:List<String> list = new ArrayList();list.add("a");list.add("b");list.add("c");Collections.reverse(list);这样本来是:a,b,c --> c,b,a当然想要复制list集合中的数据也是有方法的,可以使用:List list1= Collections.copy(list)以上就是将List集合中的数据
2021-06-09 13:50:04 3614
原创 Java交集、并集、差集的方法
1、改变原有数组的值。交集:retainAll()并集:addAll()差集:removeAll()2、不改变数组原有值。调用CommonHelper工具类交集:mergeIds()差集:diffIds()
2021-06-04 16:37:52 168
原创 MySQL根据数据库名称、表名称查询所有字段以及相关信息
1、根据库名获取所有表的信息SELECTFROMinformation_schema.TABLESWHERETABLE_SCHEMA = ‘数据库名称’;2、根据库名获取所有表名称和表说明SELECTTABLE_NAME,TABLE_COMMENTFROMinformation_schema.TABLESWHERETABLE_SCHEMA = '‘数据库名称’;3、根据表名获取表名和表字段SELECTTABLE_NAME,TABLE_COMMENTFROMinfor
2021-05-28 11:00:44 2290
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人