自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL日志管理

MySQL的日志分为好几种类型,在生产中看占用空间最大的是二进制日志,所以我们主要处理这个就可以达到不被日志爆磁盘的目的了。关于MySQL日志可以去看看这篇。

2024-10-17 09:25:02 401

原创 基于MySQL生成列实现逻辑删除条件下的字段唯一

背景实际业务中大多数的表采用的都是逻辑删除,而许多业务字段比如编码之类的都要求唯一,这个时候不能使用唯一索引来做,因为可能会存在删除再次添加的情况。

2024-09-30 16:20:35 618 1

原创 spring boot项目中LocalDateTime的json序列化处理

1. 默认的Jackson配置spring boot默认是采用Jackson来做json的序列化的。当我们使用LocalDateTime来表示时间的时候,如果不做相应的配置,那么前端接收到的时间就会是一个数组,类似于这种:"createTime": [2099, 12, 31, 23, 59, 59]引发这个问题的原因是json序列化的时候没有配置规则,所以采用了默认的序列化规则,返回了数组。所以解决的方法就是配置一个规则:@Configurationpublic class WebConfig

2021-07-08 11:30:56 9039 2

原创 Linux系统下日志查询命令

1. 查询包含文本的记录数量grep -c 'example' xxx.log2. 查询记录前后n行一般,使用上面那个查询数量的命令之后,如果记录数是1,直接使用下面的命令查询前后n行查找原因即可。但是如果记录数量大于1,那么就需要寻找更精确的查询条件来使匹配的记录数为1,比如时间。grep -n 'example' xxx.log3. 查询后面n行grep -A n 'example' xxx.log4. 查询前面n行grep -B n 'example' xxx.log...

2021-06-30 10:22:14 360

原创 mybatis plus的简单使用

1.maven依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.1</version> </dependency>

2021-05-21 19:47:31 584 1

原创 接收get请求传入的数组传参

1. 前端传参方式例如,我要传递一个数组[1, 2, 3],假设这个参数变量名为list,那么我有以下两种方式来传参:http://localhost:8848/douhao?list=1,2,3http://localhost:8848/douhao?list=1&list=2&list=32.后端如何接收可以选择使用数组或者List来接收,使用List需要添加@RequestParam注解。public void xx1(@RequestParam("list") Lis

2021-05-14 19:21:57 6480 1

原创 后端拼在字符串中的换行符\n如何在前端显示

后端拼接时用:"\n"分割,比如:String str = “白日依山尽,\n” + “黄河入海流;”;返回前台页面时,放入 <pre></pre> 标签中即可实现换行。

2021-02-22 19:51:11 3830

原创 一次跨域问题的解决经历(samesite)

1. 问题描述生产和测试环境使用nginx做了反向代理,所以不存在跨域的问题,但是在本地研发环境,由于前后端分离,前端和后端在不同的电脑上开发,存在跨域问题。前端使用的是vue,后端使用的是springboot。在前后端都做了跨域的设置,前端的设置为://前端在vue的main文件全局添加一下代码:import axios from 'axios';axios.defaults.withCredentials=true;后端的设置为:import org.springframework.co

2021-02-06 11:09:06 3018 2

原创 Windows的一些操作(便于编程)

前言这篇博客主要记录一些在平时编程学习以及生活过程中会用到的一些Windows设置。1. win10环境下时钟设置到秒win10环境下桌面右下角的时钟默认是只显示到分钟的,有些时候我们需要时钟显示到秒,我们可以通过修改注册表来实现这一需求。直接贴百度的教程《百度经验》2. 查看连接过的WiFi密码win10环境下win + x接i调出Windows PowerShell,使用cmd窗口也是可以的(我比较懒,cmd要敲的键盘多一点,而且cmd窗口关闭之后不能保存上次的输入历史记录,但是Win

2020-12-27 22:41:09 204 1

原创 由单元测试引发的打包惨案

情景再现自己写了一个聚合项目,想把子模块打包出来java -jar运行一下,结果发现,项目在IDEA中可以正常运行,但是一打包就报错,而且maven控制台打印的日志比平时多出好多,比较重要的日志如下:[INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ platform ---[INFO] [INFO] -------------------------------------------------------[INFO]

2020-12-26 21:50:54 933

原创 nacos在Windows环境下运行cmd控制台显示中文乱码解决

1. 原因引起中文乱码的原因是nacos的编码格式默认是UTF-8,而Windows的默认编码格式是GBK,二者冲突导致中文乱码。2. 解决方法在nacos的安装目录下,找到\nacos\conf文件夹下的nacos-logback.xml文件,修改其中的编码格式。 <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> &lt

2020-12-22 21:36:53 1827

原创 MySQL使用时间作为判断条件

背景:在开发过程中,我们经常需要根据时间作为判断条件来查询数据,例如:当月,当日,当前小时,几天内…1. 当月我们只需要使用一个mysql的MONTH(date)函数即可实现。(注意判断年份)MONTH(date);-- 用法:MONTH函数返回一个整数,表示指定日期值的月份。-- 举例SELECT MONTH('2020-11-11 00:00:00')-- 返回值是112. 30天内之所以把“30天内”放在当月的后面,是因为我经常会遇到这两个需求相互转换的情况,“30天内”也可以称

2020-11-14 22:27:15 2524

原创 基于springboot的定时任务实现(非分布式)

1. 核心注解在springboot项目中我们可以很方便地使用spring自己的注解@Scheduled和@EnableScheduling配合来实现便捷开发定时任务。@EnableScheduling注解的作用是发现注解@Scheduled的任务并后台执行,此注解可以加到启动类上也可以加到执行调度任务类上。经测试,当有多个包含定时任务的类时,@EnableScheduling注解加在其中一个类上就可以保证所有定时任务的成功实现。注意:定时任务的类上还需要配合使用@Configuration或@Co

2020-11-09 10:12:32 231

原创 springboot项目文件上传相关配置

1. 最大文件上传大小限制springboot是内置Tomcat的,内置的Tomcat的最大文件上传大小限制默认是2M,如下图所示:所以,如果上传超出2M的文件就会报错,报错为:org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException2. 设置大小限制在配置文件(application.properties/application.yml)中加入如下设置即可:server: t

2020-10-26 11:24:15 589

原创 调教你的IntelliJ IDEA:一些便捷设置

1. 设置启动时不打开上次关闭的项目这个设置其实是因人而异的,我个人觉得每次都打开上次关闭的项目会使电脑变卡,而且手动选择一下项目也没多麻烦。下面就是设置的位置。2. 设置同时可以打开窗口的数量3.智能提示忽略大小写智能补全时忽略大小写,例如,输入str就会提示String...

2020-10-10 16:23:46 564

原创 java代码做正则校验

背景在开发过程中,前端会做例如电话号码、邮箱等等之类的正则校验,为了保持数据的一致性,后端也要做类似的正则校验。java代码示例import java.util.regex.Pattern;public boolean isValid(String value) { //先做个非空校验 if (StringUtil.isNullOrEmpty(value)) { return false; } else { //中英文括号和-_. Str

2020-09-30 15:45:51 1679

原创 查看占用CPU或内存最高的进程,并分析原因(linux系统下)

1. 查看占用CPU或内存最高的进程命令:top上面那张图中,我们需要关注的就是红框标注的,现在是没有问题的,如果出现不正常的占用时,我们只需要找到第一个的PID就好。2.根据PID查看进程详情ps -ef | grep PID这一步是让你知道哪个服务出了问题。3. 转换线程ID转换16进制,具体的原因请问度娘。printf "%x\n" PID4. 定位占用线程jstack PID | grep 16进制 -A 30后面的-A 30意思是显示30行...

2020-09-11 10:55:53 1891

原创 No anonymous write access.没有匿名访问写的权限

报错如下:解决方案:设置姓名和邮箱git config --global user.name "username"git config --global user.email "email"

2020-08-05 10:04:29 1091

原创 mysql当日、月数据的统计(完整率)

1.场景说明平台每天都会接收分公司上报的指标(mq发消息给平台,平台解析入库,分别进device表和kpi表)。kpi表是其他指标表,device表是设备信息指标表,每天要统计分公司上报指标的完整率,一类指标发送一条就算发送,重复发送还是只算一条。其中,device表只存一类指标,kpi表存27类指标,27类指标根据字段kpi_id区分。现在需要统计分公司每天的指标完整率和当月的指标完整率。2.sql实现2.1当天的指标完整率2.1.1设备指标当天推送情况统计SELECT count( 1 )

2020-07-23 10:15:15 1569

原创 IntelliJ IDEA 小技巧:Bookmark(书签)的使用

1.创建书签在你想要创建书签的地方,按F11键,那个地方就会出现一个对号,这就创建了一个书签。如果你想对这个书签做一个特殊的标记,IDEA也是支持的,同时按Ctrl +F11,会出现如下的界面,这个叫做“书签助记符”。如果你点击A,那么书签就会变成下图那样,而不是一个对号。也有快速添加助记符书签的快捷键,Ctrl + shift + 数字键。注意,这个快捷键只支持0-9十个数字助记符书签的快速添加。2.编辑书签创建了书签之后,按shift + F11可以查看全部已存在的书签。你可以点击

2020-07-13 15:01:05 34463 13

原创 mysql查询报错Subquery returns more than 1 row

首先翻译一下这句报错:“子查询返回多行”。我出现这种情况的sql语句如下:UPDATE app_info set app_name = '61儿童劫'WHERE app_id = '031cb9d72e7b40d6b4aa23e049365913'and FIND_IN_SET('03fc8f60804a11eaa920ce79dca53588',(SELECT user_id FROM user_table WHERE table_name = 'app_info'))一开始,子查询只查出一条

2020-06-01 14:51:47 1874

原创 Mybatis的mapper.xml中if标签test判断的用法

1. 等于条件的两种写法① 将双引号和单引号的位置互换<if test=' testString != null and testString == "A" '> AND 表字段 = #{testString}</if>② 加上.toString()<if test=" testString != null and testString == 'A'.toString() ">  AND 表字段 = #{testString}</if&gt

2020-05-29 15:20:55 42245 5

原创 IntelliJ IDEA 小技巧:自定义Postfix Completion,快捷开发

1. 什么是 Postfix Completion ?首先说一下什么是 Postfix Completion,这个短语直译为中文的意思是“后缀完成”。其实不用解释,已经十分清楚了。我们在使用IDEA的时候,肯定使用过这种小技巧,例如我们需要创建一个类对象的时候,我们会敲new Boss().var,然后敲回车,IDEA会自动帮我们补全这个new语句,即Boss boss = new Boss();,但是我们是否想过这个操作是怎么实现的呢?我们是否可以自定义这种实现?这就是Postfix Completi

2020-05-17 15:14:18 4404

原创 二维数组

1. 什么是二维数组?二维数组其实就是一个元素为一维数组的数组;2. 如何定义一个二维数组?① 指定数组个数和一维数组元素个数数据类型[][] 变量名 = new 数据类型[m][n];解释:m表示这个二维数组有多少个一维数组;​ n表示每个一维数组元素的数量。举例:String[][] array = new String[3][3];System.out.printl...

2020-05-04 17:26:28 231 1

原创 使用 DATEDIFF( )函数实现“查询指定天数内的数据”

1. DATEDIFF( )函数函数返回两个日期天数的差。DATEDIFF(expr1,expr2)差 = expr1 - expr2;示例:SELECT DATEDIFF("2020-05-03","2020-05-03")结果:SELECT DATEDIFF("2020-05-01","2020-05-03")结果:注意:其他数据库也有DATEDIFF( )函数,但...

2020-05-03 16:55:44 1803

原创 mysql的LPAD()函数和RPAD()函数

L和R分别是left和right的缩写,pad是填充的意思,所以这两个函数是用来填充字符串的。其用法为(用LPAD()举例):LPAD(str,len,padstr)返回字符串str,将其左填充字符串padstr至len个字符的长度。 如果str大于len,则返回值缩短为len个字符。示例:mysql> SELECT LPAD('hi',4,'??');+------------...

2020-05-03 16:29:57 1585

原创 代码千万行,规范第一条

一、变量和常量1.变量命名要规范(小驼峰,大驼峰)2. Value Never Read没有使用该变量的值。赋值之后,变量或者被重新赋值,或者超出范围之外。//错误的代码示范r = getName(); r = getNewBuffer(buf);修复建议:为了使代码易于理解和维护,删除不必要的赋值。3. Local variables should not be declare...

2020-04-25 20:50:46 2656

原创 pagehelper的使用及避坑

pagehelper是一个非常简单实用的分页插件,但是还是有一个小坑在里面的,话不多说,直接上干货。1. 分页的使用PageInfo<T> pageInfo = PageHelper.startPage(pageNum,pageSize).doSelectPageInfo(() -> mapper.query());参数说明: pageNum 第几页​ page...

2020-04-25 20:38:35 11649

原创 springboot项目启动不报错但是启动不了

前言:记一次学习过程中的springboot项目启动异常及异常解决。最近在学习使用Alibaba的fastjson,新建了一个springboot项目,写好controller和service,结果一启动,不报错,但是项目就是不在运行状态。状况如下图所示:然后秉持着“凡事不决问度娘”的原则,我百度了一下这个问题,首先尝试了给启动类try catch的方式:@SpringBootApplic...

2020-04-20 18:45:16 12097 1

原创 把list集合转换为JSON

把list集合转换为JSON字符串,然后我们就可以很轻松地将其存入数据库,并可以很方便地取出还原。在这里我使用的是alibaba的fastjson。import com.alibaba.fastjson.JSON;1.将list转换为JSONJSON.toJSONString(list)2.将JSON转换为listList<String> strings = JSONOb...

2020-04-08 16:09:18 6140

原创 springboot项目application.properties文件的基本配置

#基本配置server.port=8080spring.application.name=test_oss#本地数据库配置spring.datasource.url = jdbc:mysql://localhost:3306/sg_iot?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&a...

2020-04-08 16:01:40 331

原创 mybatis批量insert

现在,有这么一个使用场景,我们有一个传参对象的集合,我们现在要把这个集合存入数据库中。我们要使用mybatis的<foreach>标签来实现批量新增。示例SQL<!--将日志分析结果存入数据库--> <insert id="insertAnalyzResult"> INSERT INTO oss_record VALUES ...

2020-04-08 15:57:49 288

原创 利用mysql生成UUID

在日常的开发环境中,我们经常使用UUID来当做主键,一般我们使用的都是现成的工具类,但其实mysql就可以生成UUID。使用方法mysql生成UUID是使用的UUID()函数,如下图:但是生成的这个UUID中间是有“-”隔开的,我们一般是不要的,所以需要将“-”去掉。这里我们使用REPLACE()函数来实现去掉“-”。这样,我们就得到了我们想要的UUID。REPLACE(UUID()...

2020-04-08 15:48:33 1354

原创 git修改提交名字

大家在使用git的时候,有的时候可能不是使用自己的账号,或者说账号的信息不符合自己的预期,具体表现在什么地方呢?在提交代码的时候,名字不是自己的,或者是名字不是自己想要的。下面就是如何查看和修改。git修改用户名和邮箱(修改用户名就是修改提交的名字)用户名和邮箱地址是本地git客户端的一个变量,不随git库而改变。每次commit都会用用户名和邮箱纪录。1、查看用户名和地址git co...

2020-03-24 09:37:33 10332 1

原创 mybatis中and和or的一些细节处理

在实际的项目中,我们避免不了地要写SQL,SQL中避免不了地有条件判断,我们可以使用mybatis的<where>标签,里面使用<if>标签来达到,有数据则判断,没数据不执行判断的目的。举例如下:<select id="queryModelUpSize" resultType="java.lang.Integer" parameterType="java.lang...

2020-03-24 09:16:29 8622

原创 安装本地jar包到maven仓库

问题场景:项目中,我们使用了一个中央仓库里没有的jar包,导致pom文件报红,项目无法正常启动。解决方案:利用maven工具安装jar包到本地仓库。操作步骤:1. 验证maven工具首先,我们要验证maven工具是否正常,打开cmd输入mvn-v会显示出本机安装的maven的版本情况,如果没有报错,说明maven是正常的。2. 安装jar包到本地仓库2.1 复制jar包的路径复制...

2020-03-16 10:12:24 874 2

原创 swagger使用问题收集

1. 打开swagger-ui时后台报错java.lang.NumberFormatException: For input string: “”报错的原因是pom引入的io.springfox:springfox-swagger-ui:2.92版本的jar包内置为io.swagger:swagger-models包为1.5.20版本。1.5.20版本中判断example只判断是否为null,没...

2020-03-02 11:58:46 1457

原创 REPLACE INTO语句和唯一索引UNIQUE INDEX

在开发中,我们经常会用到REPLACE INTO语句,下面的内容是我在使用过程中的一点笔记。1. 关于受影响的行数使用REPLACE INTO语句之后,会显示受影响的行数,会有两种情况,即:1或者大于1。1.1 受影响的行数为1说明REPLACE INTO语句没有替换原数据表中的数据,此时REPLACE INTO语句相当于一个INSERT语句1.2 受影响的行数大于1一般都是2,说明R...

2020-03-02 11:56:43 3762 2

原创 Maven学习笔记及IDEA使用

初识Maven1.什么是Maven?Maven在美国是一个口语化的词语,意为“内行、专家”。关于Maven比较正式的定义是:Maven是一个项目管理工具,它包含了一个项目对象模型(POM:Project Object Model),一组标准集合,一个项目声明周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在...

2020-02-13 10:37:16 460

原创 Java中的日期转换(String转Date、Date转String以及日期格式转换)

1. String转Date//将String转换为DateString dateString = "2020-02-12 20:55:09";DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date date = null;try { date = df.parse(dateString);} catch (P...

2020-02-12 21:11:15 38941

空空如也

空空如也

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

TA关注的人

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