自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

手写ArrayList

手写ArrayList

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

原创 【Mybatis-Plus】mybatisplus更新时,实体字段为空,数据库不更新的解决方案

从前端传过来的数据实体字段, convertType 和 step 设为null时,使用mybatis-plus 的 updateById方法往数据库中更新时,这两个字段不更新,数据不为空可以插入。在需要更新的字段上加上 mybatis plus 的注解 @TableField(fill = FieldFill.UPDATE) ,它的作用是字段填充时要更新此字段。mybatis-plus在更新的时候做了null判断,默认不更新为null的传参。有两种方法都可以解决这个问题,都是加注解。

2024-01-12 17:30:04 1281

原创 ES深度分页

2,只查询第一页,通过字段empId排序,从大到小来查询。

2024-01-04 19:36:48 377

原创 ES语法查询

ES查询

2024-01-04 15:18:00 411

原创 mybatis开启日志打印配置

mybatis日志配置打印

2023-11-10 16:24:31 603

原创 linux命令查看磁盘使用情况

1,linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况。2, du命令查看当前文件目录各个文件夹大小。

2023-07-06 14:38:03 320

原创 Mysql快速备份

insert into 新表 (select * from 需要备份的表);create table 新表 like 需要备份的表;1.备份表结构和数据(先完整备份表结构,再插入数据)Mysql快速备份sql。

2023-05-17 11:00:00 203

原创 redis死锁+mq消费者断开

1,全局lock变量,导致多线程情况下锁无法释放;获取锁的代码又是while死循环,导致栈溢出,最后mq消费端自动断开了。1,Lock变量改为局部变量。

2023-05-13 00:38:05 152

原创 游标+存储过程

1,先查询结果集,然后遍历结果集。

2023-04-27 19:09:08 78

原创 遇到的java.lang.ClassCastException问题

说明nodeUserTaskDTO.getCcDetails()集合里面的对象是JSONObject,根本不是WfDefCCDTO对象。nodeUserTaskDTO.getCcDetails()集合里面的对象是JSONObject,根本不是WfDefCCDTO对象。提示:java.lang.ClassCastException,然后我报错提示定位到代码,他是一个for循环,眼看着没问题啊。,查看代码发现:集合对象被转换成JSON对象了。

2023-04-08 15:51:14 306

原创 mac修改springboot项目前端HTML页面端口号

idea修改springboot项目端口号

2022-08-12 16:45:43 789

原创 如何用postman访问必须登录的接口

postman设置登录信息

2022-07-21 11:31:31 7558 2

原创 iOS 手机安装Charles证书失败解决方法

Charles证书安装

2022-07-10 18:59:21 10292 1

原创 linux如何查看当前用户以及修改用户角色权限

linux用户角色

2022-06-18 16:18:03 14135

原创 redis过期策略

Redis的过期策略一般有以下三种:1,定时过期每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除。该策略可以立即清除过期的数据,对内存很友好;但是会占用大量的CPU资源去处理过期的数据,从而影响缓存的响应时间和吞吐量。2,惰性过期只有当访问一个key时,才会判断该key是否已过期,过期则清除。该策略可以最大化地节省CPU资源,却对内存非常不友好。极端情况可能出现大量的过期key没有再次被访问,从而不会被清除,占用大量内存。3,定期过期每隔一定的时间,会扫描一定数量的数据库的e

2022-05-31 00:01:16 1578

原创 redis之list来实现限流

1,使用Redis的list数据结构类型实现限流代码如下: String key = "userId" + "接口名" ; int listLength = llen(key); if (listLength < 10) { lpush(key, new ()); } else { long time = lindex(key, -1); if (now() - time &

2022-05-23 23:51:45 331

原创 java线程池大小设置

1,假设机器有N个CPU,那么对于CPU(计算)密集型的任务,应该设置线程数为N+1;2,对于IO密集型的任务,应该设置线程数为2N;参考:线程池大小设置

2022-05-20 01:33:07 709

原创 秒杀系统设计

1,系统架构框架:SSM业务:只关注秒杀这块,所以页⾯只有两个,分别是秒杀商品列表页和商品详情页特点:短时间内,⾼并发。2,业务流程参考:秒杀系统

2022-05-17 13:52:17 86

原创 5种常用的线程池

ExecutorService接口有多个实现类可用于创建不同的线程池,如表所示是5种常用的线程池;1,ExecutorService pool = Executors.newCachedThreadPool();2,ExecutorService pool = Executors.newFixedThreadPool(10);3,ScheduledExecutorService pool = Executors.newScheduledThreadPool(2);4,ExecutorService

2022-05-08 15:09:47 326

原创 kafka消息的顺序性和可靠性

1,kafka如何保证消息的顺序性kafka 写入partion时指定一个key,列如订单id,那么消费者从partion中取出数据的时候肯定是有序的,当开启多个线程的时候可能导致数据不一致,这时候就需要内存队列,将相同的hash过的数据放在一个内存队列里,这样就能保证一条线程对应一个内存队列的数据写入数据库的时候顺序性的,从而可以开启多条线程对应多个内存队列。参考:mq消息顺序性...

2022-05-06 01:14:26 1316

原创 MySQL之MVCC实现机制

参考:MVCC实现机制

2022-04-29 00:21:40 798

原创 多线程之AQS

1,舒服舒服

2022-04-25 00:28:47 206

原创 订单表分库分表的思路

直接上方案,不扯那不多:按照用户id打散订单数据。以uid来切分数据,有两种思路:1,某个范围的uid订单到哪些库。0到2千万uid,对应的订单数据到a库、a表。2千万到4千万对应的订单到b库。为什么这种方案用得比较少呢?容易出现瓶颈吗。某个范围内的用户,下单量比较多,那么造成这个库的压力特别大。其他库却没什么压力。2,使用uid取模运算。第二种方案业界用得比较多。一方面、处理简单,程序上做取模运算就好了。另一方面、使用取模的方式,数据比较均匀分散到多个库去了。不容易出现单个库性能瓶颈。但

2022-04-19 00:11:09 4466

原创 内存溢出常见原因及解决方法

引起内存溢出的原因有很多种,常见的有以下几种:1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据。解决方法:检查对数据库查询中,是否有一次获得全部数据的查询;对于数据库查询尽量采用分页的方式查询。2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收。解决方法:检查List、MAP等集合对象是否有使用完后,未清除的问题。List、MAP等集合对象会始终存有对对象的引用,使得这些对象不能被GC回收。3.代码中存在死循环或循环产生过多重复的对象实体。解决方法:检查代码中是否有死循环

2022-04-18 15:38:06 8152

原创 redis分布式锁的实现原理

参考:1,Redisson实现Redis分布式锁的N种姿势2,Redlock:Redis分布式锁最牛逼的实现

2022-04-17 23:58:30 4957

原创 联合索引数据结构

参考:联合索引

2022-04-14 14:28:15 407

原创 cookie和session的区别

参考:添加链接描述

2022-04-14 12:39:00 200

原创 事物的传播机制和隔离级别

数据库和spring的事物的传播机制和隔离级别1,数据库事物的传播特性和隔离级别2,spring事物的传播特性和隔离级别

2022-04-13 00:16:08 662

原创 kafka

1, kafka架构组件概念详解:Broker、Topic、Partition、Leader/Follower、Consumer Group、zookeeper2,如何保证消息按顺序执行

2021-07-28 20:11:00 76

原创 UML类图

1,http://blog.itpub.net/31379315/viewspace-2646131/

2021-05-14 21:09:42 184

原创 设计模式之单例模式

1,单例模式定义保证一个类只有一个实例,并且提供一个全局访问点。2,场景:重量级的对象,不需要多个实例,如线程池,数据库连接池。3,类图:代码示例:1,懒汉式:package com.dalingjia.pattern.singlePattern;/** * 单例模式:双重检测锁机制 * 线程安全并且不会提前初始化实例对象(注意两次判断检测的作用) */public class SingletonPattern { /** * 定义一个私有的静态si

2021-05-13 21:06:28 83

原创 mysql表字段支持表情

1,MySQL表字段支持表情设置ALTER TABLE poi_attribute_value MODIFY attribute_value TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;参考链接:https://www.cnblogs.com/tujietg/p/13358776.html

2020-12-09 15:14:30 491

原创 mysql offset用法

SQL查询语句中的 limit 与 offset 的区别:limit y 分句表示: 读取 y 条数据limit x, y 分句表示: 跳过 x 条数据,读取 y 条数据limit y offset x 分句表示: 跳过 x 条数据,读取 y 条数据

2020-11-21 16:39:48 16836 9

原创 git常用命令

1,git每次操作代码都需要输入密码的解决办法git config --global credential.helper cache注:如果不想在每一次推送时都输入用户名和密码,你可以设置一个“credential cache”;最简单的方式就是将其保存在内存中几分钟,可以简单的运行git config --global credential.helper cache 来设置它。...

2020-06-02 21:47:57 160

原创 ElasticSearch重要知识点

text字段和keyword字段的区别1,将字段设置成keyword的时候,已有的值不会被分词;2,text类型的字段会被分词。参考文档:ES查询

2020-05-13 21:49:21 229

原创 ElasticSearch的Java API

BoolQueryBuilder查询的时候一般使用BoolQueryBuilder的filter方法,因为filter不会进行打分评估(计算_score的值),而must方法会计算,should也会。

2020-05-13 17:20:08 812

原创 Mysql常用SQL语句

1,查询表字段个数select count(*) from information_schema.`COLUMNS` where TABLE_SCHEMA='m_crm_analysis' -- 数据库名 and TABLE_NAME='journal'; -- 表名2,

2020-04-19 20:13:43 225

原创 Java中枚举类的ordinal()方法

定义一个枚举类:enum Season { SPRING, SUMMER, AUTUMN, WINTER}Enum类提供了一个ordinal()方法,用来返回枚举对象的序数,比如本例中SPRING, SUMMER, AUTUMN, WINTER的序数就分别是0,1,2,3。在某些情况下,我们需要根据这个序数生成我们需要的枚举对象。我们可以使用枚举类型的values()方法做到:...

2020-01-14 17:57:37 15607

原创 CURL简介

CURL:使用命令行的方式向远程的服务通过HTTP协议发送GET/POST请求,并获得来自远程服务器端的反馈。curl常用的参数有:-X 用来接请求参数,如:GET,POST,PUT,DELETE-d 用来标识客户端向远程服务器发送数据,数据的格式一般是json-H 用来标识请求头的信息......

2020-01-12 21:48:17 439 1

原创 使用YYYY-MM-dd遇到的坑

代码如下:public static void main(String[] args) { SimpleDateFormat yMd = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.YEAR...

2020-01-03 20:26:17 418

原创 Java8的reduce使用

public static void main(String[] args) { Stream<Integer> stream = Arrays.stream(new Integer[]{1, 2, 3, 4, 5, 6, 7}); //求集合元素之和 Integer result = stream.reduce(0, Integer:...

2019-12-31 15:50:03 723

空空如也

空空如也

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

TA关注的人

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