- 博客(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 2106
原创 linux命令查看磁盘使用情况
1,linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况。2, du命令查看当前文件目录各个文件夹大小。
2023-07-06 14:38:03 357
原创 Mysql快速备份
insert into 新表 (select * from 需要备份的表);create table 新表 like 需要备份的表;1.备份表结构和数据(先完整备份表结构,再插入数据)Mysql快速备份sql。
2023-05-17 11:00:00 253
原创 redis死锁+mq消费者断开
1,全局lock变量,导致多线程情况下锁无法释放;获取锁的代码又是while死循环,导致栈溢出,最后mq消费端自动断开了。1,Lock变量改为局部变量。
2023-05-13 00:38:05 186
原创 遇到的java.lang.ClassCastException问题
说明nodeUserTaskDTO.getCcDetails()集合里面的对象是JSONObject,根本不是WfDefCCDTO对象。nodeUserTaskDTO.getCcDetails()集合里面的对象是JSONObject,根本不是WfDefCCDTO对象。提示:java.lang.ClassCastException,然后我报错提示定位到代码,他是一个for循环,眼看着没问题啊。,查看代码发现:集合对象被转换成JSON对象了。
2023-04-08 15:51:14 360
原创 redis过期策略
Redis的过期策略一般有以下三种:1,定时过期每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除。该策略可以立即清除过期的数据,对内存很友好;但是会占用大量的CPU资源去处理过期的数据,从而影响缓存的响应时间和吞吐量。2,惰性过期只有当访问一个key时,才会判断该key是否已过期,过期则清除。该策略可以最大化地节省CPU资源,却对内存非常不友好。极端情况可能出现大量的过期key没有再次被访问,从而不会被清除,占用大量内存。3,定期过期每隔一定的时间,会扫描一定数量的数据库的e
2022-05-31 00:01:16 1650
原创 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 371
原创 java线程池大小设置
1,假设机器有N个CPU,那么对于CPU(计算)密集型的任务,应该设置线程数为N+1;2,对于IO密集型的任务,应该设置线程数为2N;参考:线程池大小设置
2022-05-20 01:33:07 755
原创 秒杀系统设计
1,系统架构框架:SSM业务:只关注秒杀这块,所以页⾯只有两个,分别是秒杀商品列表页和商品详情页特点:短时间内,⾼并发。2,业务流程参考:秒杀系统
2022-05-17 13:52:17 105
原创 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 349
原创 kafka消息的顺序性和可靠性
1,kafka如何保证消息的顺序性kafka 写入partion时指定一个key,列如订单id,那么消费者从partion中取出数据的时候肯定是有序的,当开启多个线程的时候可能导致数据不一致,这时候就需要内存队列,将相同的hash过的数据放在一个内存队列里,这样就能保证一条线程对应一个内存队列的数据写入数据库的时候顺序性的,从而可以开启多条线程对应多个内存队列。参考:mq消息顺序性...
2022-05-06 01:14:26 1361
原创 订单表分库分表的思路
直接上方案,不扯那不多:按照用户id打散订单数据。以uid来切分数据,有两种思路:1,某个范围的uid订单到哪些库。0到2千万uid,对应的订单数据到a库、a表。2千万到4千万对应的订单到b库。为什么这种方案用得比较少呢?容易出现瓶颈吗。某个范围内的用户,下单量比较多,那么造成这个库的压力特别大。其他库却没什么压力。2,使用uid取模运算。第二种方案业界用得比较多。一方面、处理简单,程序上做取模运算就好了。另一方面、使用取模的方式,数据比较均匀分散到多个库去了。不容易出现单个库性能瓶颈。但
2022-04-19 00:11:09 4923
原创 内存溢出常见原因及解决方法
引起内存溢出的原因有很多种,常见的有以下几种:1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据。解决方法:检查对数据库查询中,是否有一次获得全部数据的查询;对于数据库查询尽量采用分页的方式查询。2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收。解决方法:检查List、MAP等集合对象是否有使用完后,未清除的问题。List、MAP等集合对象会始终存有对对象的引用,使得这些对象不能被GC回收。3.代码中存在死循环或循环产生过多重复的对象实体。解决方法:检查代码中是否有死循环
2022-04-18 15:38:06 8518
原创 事物的传播机制和隔离级别
数据库和spring的事物的传播机制和隔离级别1,数据库事物的传播特性和隔离级别2,spring事物的传播特性和隔离级别
2022-04-13 00:16:08 674
原创 kafka
1, kafka架构组件概念详解:Broker、Topic、Partition、Leader/Follower、Consumer Group、zookeeper2,如何保证消息按顺序执行
2021-07-28 20:11:00 91
原创 设计模式之单例模式
1,单例模式定义保证一个类只有一个实例,并且提供一个全局访问点。2,场景:重量级的对象,不需要多个实例,如线程池,数据库连接池。3,类图:代码示例:1,懒汉式:package com.dalingjia.pattern.singlePattern;/** * 单例模式:双重检测锁机制 * 线程安全并且不会提前初始化实例对象(注意两次判断检测的作用) */public class SingletonPattern { /** * 定义一个私有的静态si
2021-05-13 21:06:28 98
原创 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 517
原创 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 17282 9
原创 git常用命令
1,git每次操作代码都需要输入密码的解决办法git config --global credential.helper cache注:如果不想在每一次推送时都输入用户名和密码,你可以设置一个“credential cache”;最简单的方式就是将其保存在内存中几分钟,可以简单的运行git config --global credential.helper cache 来设置它。...
2020-06-02 21:47:57 172
原创 ElasticSearch重要知识点
text字段和keyword字段的区别1,将字段设置成keyword的时候,已有的值不会被分词;2,text类型的字段会被分词。参考文档:ES查询
2020-05-13 21:49:21 242
原创 ElasticSearch的Java API
BoolQueryBuilder查询的时候一般使用BoolQueryBuilder的filter方法,因为filter不会进行打分评估(计算_score的值),而must方法会计算,should也会。
2020-05-13 17:20:08 1174
原创 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 241
原创 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 17248
原创 CURL简介
CURL:使用命令行的方式向远程的服务通过HTTP协议发送GET/POST请求,并获得来自远程服务器端的反馈。curl常用的参数有:-X 用来接请求参数,如:GET,POST,PUT,DELETE-d 用来标识客户端向远程服务器发送数据,数据的格式一般是json-H 用来标识请求头的信息......
2020-01-12 21:48:17 535 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 437
原创 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 767
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人