自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

打酱油的程序员

说你行你就行,不行也行!

  • 博客(106)
  • 收藏
  • 关注

原创 mysql常用汇总

mysql日常工作汇总

2023-01-06 11:07:24 192 1

翻译 GROUP_CONCAT函数

MYSQL GROUP_CONCAT 函数用法

2022-06-15 14:05:13 452

翻译 推荐好用 Spring Boot 内置工具类

Spring Boot 内置实用工具类

2022-06-01 16:37:37 271

原创 Mysql 实现行转列功能

Mysql 实现行转列功能问题:将以“/”分割的字符串’aaa/bbb/ccc/ddd/eee/fff’,转成如下:aaabbbcccdddeeefffSQL:SELECT SUBSTRING_INDEX( SUBSTRING_INDEX('aaa/bbb/ccc/ddd/eee/fff', '/', b.help_topic_id + 1 ), '/',- 1 ) AS 列 FROM mysql.help_topic b where b.help_topic_id < (

2022-02-11 16:24:46 370

原创 Mysql FIND_IN_SET函数

Mysql FIND_IN_SETFIND_IN_SET(str,strlist)FIND_IN_SET(str,strlist)str 要查询的字符串strlist 字段名 参数以”,”分隔,如:2,3,4,5,1查询字段(strlist)中包含(str)的结果,返回结果为null或记录注意:select * from table where FIND_IN_SET(id, ‘2,3,4,5,1’);使用find_in_set函数一次返回多条记录id 是一个表的字段,然后每条记录分别是i

2022-02-11 16:10:56 294

原创 Locate函数

Locate函数LOCATE(substr, str)LOCATE(substr, str, pos)LOCATE(substr, str)表示返回字符串substr第一次出现在字符串str中的位置select LOCATE('WORD', 'HELLOWORD-HELLOWORD') FROM DUAL;LOCATE(substr, str, pos)表示返回字符串substr第一次出现在字符串str中的位置,从pos开始。如果substr不在str中,则返回0。SELECT LOCATE(

2021-11-29 08:56:10 2624

原创 COALESCE函数

COALESCE函数COALESCE()函数MYSQL用法:SQLServer用法Oracle 用法一Oracle用法二COALESCE()函数主流数据库系统都支持COALESCE()函数,这个函数主要用来进行空值处理,其参数格式如下:COALESCE ( expression,value1,value2……,valuen)expression为待检测的表达式,而其后的参数个数不定,该函数将会返回包括expression在内的所有参数中的第一个非空表达式。如果expression不为空值则返回ex

2021-11-23 15:43:23 1470

原创 mysql-常用时间日期函数

mysql-常用时间日期函数 函数 释义 使用案例 结果 CURDATE()CURRENT_DATE() 将当前日期按照"YYYY-MM-DD"或者"YYYYMMDD"格式的值返回,具体格式根据函数用在字符串或是数字语境中而定 SELECT CURDATE(), CURRENT_DATE() FROM DUAL; 2021-11-22 2021-11-22 CURRENT_TIMESTAMP()LOCALT...

2021-11-22 21:59:04 569

原创 GIT常用命令列表

GIT常用命令列表 GIT常用命令列表 命令 备注 配置 git config --global -l 查看全局配置,--local 查看某个仓库 git config --global user.name xxxgit config --global user.email xxx 配置全局用户信息 拉取代码 git init 将本地目录初始化 git 仓库

2021-11-17 22:36:49 381 2

原创 MAC-XXL_JOB学习踩坑记录-Failed to create parent directories for [/data/applogs/xxl-job/xxl-job-admin.log

MAC-XXL_JOB学习踩坑记录源码下载地址启动报错源码下载地址①、GitHub:https://github.com/xuxueli/xxl-job②、码云:https://gitee.com/xuxueli0323/xxl-job启动报错报错信息如下:10:39:42,324 |-ERROR in ch.qos.logback.core.rolling.RollingFileAppender[file] - Failed to create parent directories for [

2021-11-07 11:07:15 2056 3

转载 Git 中的各种后悔药

Git 中的各种后悔药工作区的代码想撤销add 到暂存区的代码想撤销提交到本地仓库的代码想撤销Git 强大的撤销、版本回退功能,让我们在开发的过程中能够随意的回到任何一个时间点的状态,本文将从如下三个方面介绍 Git 中的后悔药:工作区的代码想撤销add 到暂存区的代码想撤销提交到本地仓库的代码想撤销工作区的代码想撤销可能有一天我正在写代码,写了很久发现写错了,想恢复到一开始的状态,一个笨办法就是把刚刚写的代码一行一行的删除,不过这种方式成本太高,我们可以通过 git checkout

2021-09-27 11:18:57 288

转载 Git 基本操作

Git 基本操作工作区和暂存区基本操作初始化仓库查看仓库状态添加文件到暂存区提交到本地仓库查看提交日志查看更改前后的差异压缩提交历史工作区和暂存区工作区很好理解,就是我们能看到的工作目录,就是本地的文件夹。这些本地的文件夹我们要通过 git add 命令先将他们添加到暂存区中。git commit 命令则可以将暂存区中的文件提交到本地仓库中去。在 Svn 中我们都是直接将文件提交到版本仓库中去,而在 Git 中,则多了一层关卡基本操作初始化仓库仓库的初始化有两种方式:一种是直接从远程仓

2021-09-25 15:25:50 177

原创 关于git push时: Support for password authentication was removed on August 13, 2021. Please use a person

关于git push时: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.的解决办法问题原因请自行百度(大概意思是说github从2021年8月13日对于密码验证的支持已经被删除了,请使用个人访问令牌),解决方案从 第 2 步开始首先,获取个人令牌请自行百度,有很多现成的案例获取到个人令牌后在终端执行如下命令:git re

2021-09-24 11:48:15 249

原创 从0~1实现分布式锁演变过程

从0~1实现分布式锁工作中用到分布式锁的场景并不多(行业性质决定),后来在一幅漫画中了分布式锁的实现思路对我影响挺深的,在经过一系列的查阅资料后终于决定从0到1自己实现分布式锁。首先看一段模仿减库存代码: @GetMapping("/getStock") public String getStock() { int stock = Integer.parseInt(stringRedisTemplate.opsForValue().get("stock"));

2021-08-13 18:11:28 176

转载 一幅漫画看懂什么是分布式锁

一幅漫画看懂什么是分布式锁

2021-08-08 18:04:01 171

原创 常见索引失效问题实测总结

常见索引失效问题实测总结建表语句:同mysql执行计划一文中一致以下为工作中汇总常见导致索引失效的案例(除1、2),如图,在emp表中建立名为index_name_age_posi的组合索引字段为emp_name、emp_age、emp_posi,1、全值匹配我最爱索引字段跟筛选字段完全一致,这是最完美的情况,分步如下:当只有emp_name匹配是走了索引,且索引的大小为302;当emp_name、emp_age匹配时走了索引,且索引的大小为306;当emp_name、emp_ag

2021-08-01 17:13:12 239

原创 一文看懂 mysql执行计划

一文看懂 mysql执行计划 执行计划怎么使用执行计划官网介绍:使用Explain关键字可以模拟优化器执行SQL查询语句,从而知道Mysql是如何处理SQL语句,分析查询语句或表结构的性能瓶颈怎么使用explain + sql 语句explain SELECT *FROM empWHERE 1=1AND emp_name LIKE '张三'AND emp_age = 52AND emp_posi = '广州';id:相同:执行顺序由上至下不同:id值越大优先级越高

2021-07-18 16:27:35 329

原创 索引小记(待完善)

索引小记索引索引是什么索引的优势和劣势优势优势索引类型主键索引普通索引唯一索引全文索引空间索引前缀索引其他(按照索引列数量分类):索引扫描索引的数据结构(待完善)索引索引是什么库索引好比是一本书前面的目录,能加快数据库的查询速度;索引往往是存储在磁盘上的文件中的;我们通常所说的索引,包括聚集索引、覆盖索引、组合索引、前缀索引、唯一索引等,没有特别说明,默认都是使用B+树结构组织(多路搜索树,并不一定是二叉的)的索引。索引的优势和劣势优势可以提高数据检索的效率,降低数据库的IO成本,类似

2021-06-27 16:32:58 130

原创 ImageIO读取图片出现一层红色背景解决方案

ImageIO读取图片出现一层红色的背景解决方案问题展示:在excel中插入图片,图片上像是铺了一层红色薄膜一样,效果如下图!代码如下: /** * * @Title: picture3 * @Description: * @author: zxfeng * @date 2021年3月25日 下午3:21:44 * @param workbook * @param sheet sheet对象 * @param file

2021-03-25 15:40:38 944 2

原创 再见,白云山

再见,白云山前言正文准备工作上山下山前言乍一看我的标题以为是我要离开白云山,其实这里的“再见”是再一次相见的意思,这是继去年我和上家公司中关系最好的同事也是朋友-“zhuhong”(我是欺负他故意这样称呼他的,只有他懂)去过之后,我和新公司同事阿梁一起去爬白云山,不为别的,只为放松心情,看美女,因为程序员的工作压力实在太大了!正文其实年前我们也计划过一次,因为早晨太懒了没能起得来所以就泡汤了,年假后又计划去爬白云山,但是天宫不作美周六那天恰巧下了一天雨。这次乘着项目组这周不加班可以忙里偷闲完成之前没

2021-03-20 20:03:23 199

原创 POI 将图片插入Excel的两种方式

POI 将图片插入Excel的两种方式前言第一种:图片插入至单元格第二种:插入图片至坐标前言项目中有个需求,导出excel时需要根据URL将图片插入excel,通过查找,POI有个提供画图的工具可以将图片插入excel,在网上大致有两种方法可以实现该需求,两种方式本人都尝试,其中第一种方式更加容易、简单,第二种方式稍微复杂;个人更加倾向于第一种。第一种:图片插入至单元格这种方式很简单,直接将图片插入指定单元格,并设置图片的长宽的限制。 /** * * @Title: pi

2021-03-10 17:10:42 5489 1

原创 JAVA集合

JAVA集合前言1. 接口继承关系和实现2. List2.1 ArrayList(数组)2.2 Vector(数组实现、线程同步)2.3 LinkList(链表)3. Set3.1 HashSet(Hash 表)3.2 TreeSet(二叉树)3.3 LinkHashSet(HashSet+LinkedHashMap)4. Map4.1 HashMap4.1.1 JAVA7实现4.1.2 JAVA8实现4.2 ConcurrentHashMap4.2.1 JAVA7实现4.2.1.1 Segment 段4.

2021-02-28 16:40:02 207

原创 如何去掉list集合中重复元素大全

如何去掉list集合中重复元素大全创建实体对象模拟集合方法一:遍历实体类的每一个属性方法二:利用list中contains方法去重方法三:java 8中流式去重操作方法四:HashSet去重问题由来,在平常开发中我们经常用到导入功能,将模板中的数据封装成对象装到集合中,一个集合容器里面有很多重复的对象,里面的对象没有主键,但是根据业务的需求,重复的数据是不能导入并且及时给予提示!创建实体对象public class Student { private String stuId; pri

2021-01-31 20:26:59 1997

原创 SpringBoot之创建定时任务

SpringBoot之创建定时任务缓存创建定时任务Corn 表达式cron表达式解释示例我们在平时开发中经常会遇到这样的场景,比如:我需要定时地发送一些短信、邮件之类的操作,也可能会定时地检查和监控一些标志、参数等,而SpringBoot创建定时任务非常的简单,只需要简单的几步就可以搞定!创建定时任务下面通过实例介绍如何在Spring Boot中创建定时任务,实现每过5秒输出一下当前时间在Spring Boot的主类中加入@EnableScheduling注解,启用定时任务的配置@Spri

2021-01-30 10:43:35 231

原创 ORACLE 工作中的知识

1、 SQL语句中exists和in的区别in 和 exists的区别: 如果子查询得出的结果集记录较少,主查询中的表较大且又有索引时应该用in,反之如果外层的主查询记录较少,子查询中的表大,又有索引时使用exists。其实我们区分in和exists主要是造成了驱动顺序的改变(这是性能变化的关键),如果是exists,那么以外层表为驱动表,先被访问,如果是IN,那么先执行子查询,所以我们会以驱动表的快速返回为目标,那么就会考虑到索引及结果集的关系了,另外IN时不对NULL进行处理。in 是把外表和内

2021-01-25 08:36:36 190

原创 缓存之Spring缓存

Spring缓存1.引言2. 几个重要参数3. @Cacheable注解3-1 源码3-2 案例4 工作原理4-1 缓存自动配置类 - CacheAutoConfiguration4-2 缓存配置选择器实现方法4.3 通过自动配置报告发现SimpleCacheConfiguration 默认匹配到4.4 缓存管理器-ConcurrentMapCacheManager5 @CachePut 注解6 @CacheEvict 注解1.引言从Spring3开始定义了org.springframework.ca

2020-12-26 14:10:55 348

转载 自动化构建工具-Maven

自动化构建工具-Maven1. Maven是啥2. Maven可以干啥3. 构建项目的几个主要环节4. Maven常用命令5. Maven核心概念5.1. Maven约定的工程目录5.2. POM5.3. 坐标5.4. 依赖① 依赖的目的是什么② 依赖的范围③ 依赖的传递性④ 依赖的排除⑤ 统一版本⑥ 依赖的原则:解决 jar 包冲突5.5. 仓库5.6. 生命周期5.6.1. 什么是 Maven 的生命周期5.6.2. Clean 生命周期5.6.3. Site 生命周期5.6.4. Default 生命

2020-12-10 21:43:20 169

转载 double和float精度问题小计

来自今日头条优秀文章:double和float精度问题小计原文链接:老大说:谁要再用double定义商品金额,就自己收拾东西走先看现象涉及诸如float或者double这两种浮点型数据的处理时,偶尔总会有一些怪怪的现象,不知道大家注意过没,举几个常见的栗子:1.典型现象(一):条件判断超预期System.out.println( 1f == 0.9999999f ); // 打印:falseSystem.out.println( 1f == 0.99999999f ); // 打印:t

2020-12-01 11:31:44 279

原创 PMP考点知识总结-第四章-项目整合管理

4.1 制定项目章程编写一份正式批准项目并授权项目经理在项目活动中使用组织资源的文件的过程。4.2 制定项目管理计划4.3 知道与管理项目工作4.4 管理项目知识4.5 监控项目工作4.6 实施整体变更控制4.7 结束项目或阶段...

2020-11-04 21:37:46 451

原创 PMP考点知识总结-前三章

引论发起人项目发起人通常负责项目商业论证文件的制定和维护,他们具有一定的职权,能为项目获取资金并提供资源。同时,项目章程由发起人发布,正式批准项目成立,并授权项目经理适用组织资源开展项目活动的。商业论证项目商业论证是指文档化的经济可行性研究报告,用来对尚缺乏充分定义的所选方案的收益进行论证,是启动后续项目管理活动的依据。商业论证列出了项目启动的目标和理由。它有助于在项目结束时根据项目目标衡量项目是否成功。商业论证是一种项目商业文件,可在整个生命周期中使用。在项目启动之前通过商业论证,可会做出继

2020-11-04 21:27:35 398

原创 Spring AOP小记

Spring AOP切面注解:@Aspect => 声明该类为一个注解类切点注解:@Pointcut => 定义一个切点通知注解:@Before => 在切点之前执行代码@After => 在切点之后执行代码@AfterReturning => 切点返回内容后执行代码,可以对切点的返回值进行封装@AfterThrowing => 切点抛出异常后执行@Around => 环绕,在切点前后执行代码封装请求信息:

2020-11-01 19:38:20 157 4

原创 SpringBoot打war包和jar包对比

springBoot读取jar中的配置文件jar 文件解压展开读取方式jar 文件解压展开打包后我的模板是被放在:\BOOT-INF\classes\treeModel读取方式this.getClass().getClassLoader().getResourceAsStream("指定模板");

2020-10-27 20:07:49 650

翻译 八种排序算法动画讲解

思维导图前言算法和数据结构是一个程序员的内功,所以经常在一些笔试中都会要求手写一些简单的排序算法,以此考验面试者的编程水平!动图来源于今日头条、动图来源于今日头条、动图来源于今日头条!1、冒泡排序1-1 思路:1、比较相邻的元素。如果第一个比第二个大,就交换它们两个;2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素就是最大的数;3、排除最大的数,接着下一轮继续相同的操作,确定第二大的数…4、重复步骤1-3,直到排序完成。1-2 动画演示:1-3实现

2020-10-11 17:17:21 1017 1

原创 关于Java中的Date类型保存至Oracle对应时间格式为Timesteap问题记录

问题由来:对象属性时间为Date(Java中的util下),数据库时间格式为Timesteap,在保存时出现为类型不匹配无法保存问题,经过各种搜索最终得以解决,记录如下:number转DateSELECT TO_CHAR(1598157285000 / (1000 * 60 * 60 * 24) + TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'YYYY-MM-DD HH24:MI:SS') AS CDATE FROM dual;

2020-08-29 19:20:19 625

原创 Date工具类-往后/往前移指定天数/判断是否是周末

1、计算两个Date日期相差多少天、时、分、秒、毫秒等public static int getDiffDays(Date start, Date end) { long nd = 1000 * 24 * 60 * 60; long nh = 1000 * 60 * 60; long nm = 1000 * 60; // long ns = 1000; // 获得两个时间的毫秒时间差异 long diff = end.getTime() - start

2020-08-29 19:08:35 970

转载 前后端分离跨域问题解决方案

转自江南一点雨1.问题焦点问题焦点主要在于跨域,开发环境和生产环境是两种完全不懂的配置思路。如果你直接在项目中引入 Vue,像用 jQuery 那样用 Vue,那没什么问题,你应该也不会有跨域的疑问。但是如果你做的是单页面应用(SPA),那么必然会有这样的疑问,跨域问题怎么搞!因为在单页面应用中,前端项目可以单独通过 node 启动,它单独占用一个端口,后端项目启动后也是另外一个端口,此时从前端发送请求到后端,由于两者处于不同的端口之上,因此必然存在一个跨域问题。但是大家想想,这个跨域有可能只是在

2020-07-26 16:44:49 1705

原创 初识mysql数据库锁小结

mysql数据库锁悲观锁悲观锁按照适用性质划分共享锁排它锁悲观锁按照作用范围划分行锁表锁乐观锁mysql数据库一般分为两类:悲观锁和乐观锁。悲观锁悲观锁是我们常说的数据库锁机制。悲观锁按照适用性质划分悲观锁按照使用性质划分为共享锁和排它锁。共享锁共享锁又称读锁,当事务为某几行上读锁时,允许其他事务只可以针对这几行进行读操作,不允许其他事务给这几行上排它锁,但是允许上读锁。上共享锁的写法:lock in share modeeg:select match from 表 where metch

2020-07-18 14:29:22 153

转载 数据库查询中where和having的用法

数据库查询中where和having的用法类型使用的角度类型“where”是一个约束声明,在查询数据库的结果返回之前对数据库中的查询条件进行约束,即在结果返回之前起作用,且where后面不能使用“聚合函数”;“having”是一个过滤声明,所谓过滤是在查询数据库的结果返回之后进行过滤,即在结果返回之后起作用,并且having后面可以使用“聚合函数”。使用的角度where后面之所以不能使用聚合函数是因为where的执行顺序是在聚合函数之前,如下面这个sql语句是错误的:select deptno,

2020-07-14 18:54:04 1598

原创 JDK动态代理与CGlib动态代理小结

JDK动态代理与CGlib动态代理区别JDK动态代理CGlib动态代理应用场景:比如进行日志记录、监控某个方法的运行时间、权限控制、事务管理 (调用方法前开启事务, 调用方法后提交关闭事务 )、缓存优化 (第一次调用查询数据库,将查询结果放入内存对象, 第二次调用, 直接从内存对象返回,不需要查询数据库 )等等,总的来说是执行目标方法前后都可以干一些其他的事情,在不改动目标方法的前提下将目标方法与其他操作实现解耦。区别如果目标类有实现接口则用JDK动态代理,如果目标类没有实现接口则用CGlib动态代理

2020-06-27 10:31:22 202

原创 SpringBoot将图片以URL的形式访问

在项目中我们难免会遇到访问图片,但是又不能出现存放图片具体的盘符,正好最近做产品时遇到这种场景,将以URL的形式访问图片的方法分享给进来的朋友们!SpringBoot处理这种形式,非常简单,只需要简单的几步配置就可以了!第一步:在properties文件配置图片存放路劲 这里我以我实际项目中的路劲演示server.resource=C:/behavior/#上传图片文件地址...

2020-04-26 21:19:18 2940 5

空空如也

空空如也

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

TA关注的人

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