William(王明高) Blog

长风波浪会有时,直挂云帆济沧海。

Mybatis Plus 更新 null 的策略踩坑记

Mybatis-plus 更新 Null 的策略踩坑记 在一个管理页面,有一个非必填字段被设置成空了并提交更新,再次打开的时候,发现字段还在,并没有被更新成功。 使用的数据库映射框架是 Mybatis-plus ,对于Mybatis 在更新字段的时候会对空进行校验,如果字段为 null,会被忽略加入 sql。 应对策略 推荐策略:使用 UpdateWrapper (3.x) 使...

详解“强软弱虚引用”

详解“强软弱虚引用” 一、前言 就像在日常生活中,从超市购买了某样物品后,如果有用,就一直保留它,否则就把它扔到垃圾箱里让清洁工人收走。一般说来,如果物品已经被扔到垃圾箱,就不可能再把它捡回来使用了。 但有时候情况并不这么简单,我们可能会遇到一些鸡肋的物品,食之无味,弃之可惜。这种物品目前已经无用了,保留它会占空间,但是立刻扔掉它也不划算,因为可能未来还会派用场。对于这样的可有可无的物...

Springboot实现网页消息推送的5种方法

SpringBoot实现网页消息推送的5种方法 一、为什么需要消息推送? 传统的HTTP请求是客户端主动请求,服务端被动响应的模式。但在很多场景下,我们需要服务器能够主动将消息推送给浏览器,例如: Web版即时通讯 股票、基金等金融数据实时更新 系统通知和提醒 协同编辑文档时的实时更新 …… 二、消息推送实现方案 1. 短轮询 (Short Polling)...

20条sql优化小技巧,每一条都能救你一命

20条SQL优化小技巧,每一条都能救你一命。 1. 避免SELECT * 别一上来就 SELECT *,你觉得这样写省事,但数据库得把整张表的每一列都给你搬过来,代价大得吓人。需要啥列写清楚,别偷懒。 -- 错误写法 SELECT * FROM users; -- 正确写法 SELECT id, name, age FROM users; 优化原因:减少网络传输数据量,避免无用字...

使用方法句柄(methodhandle)和变量句柄(varhandle)以编程方式访问方法和字段

使用方法句柄(MethodHandle)和变量句柄(VarHandle)以编程方式访问方法和字段 方法句柄(MethodHandle) 方法句柄是Java 7 中引入的一种新机制,提供了一种直接、高效且类型安全的方法来调用方法。与反射相比,MethodHandle 的调用速度更快,因为它们不需要在运行时解析方法签名。 使用示例: 要使用方法句柄,首先需要获取一个方法的句柄。这可以通过...

Mysql Like的模糊查询如何优化+虚拟列

MySQL中like的模糊查询如何优化 当然还可以ES等 这里只说mysql怎么搞 典型回答 在MySQL中,使用like进行模糊查询,在一定情况下是无法使用索引的。如下所示: ●当like值前后都有匹配符时%abc%,无法使用索引 ●当like值前有匹配符时%abc,无法使用索引 ●当like值后有匹配符时’abc%’,可以使用索引 那么,like %abc真的无法优化了吗?...

在spring boot项目中整合mybatis Plus并实现数据权限控制,同时通过threadlocal动态获取部门信息

Spring Boot项目中整合Mybatis-Plus并实现数据权限控制,同时通过ThreadLocal动态获取部门 1. 添加依赖 在pom.xml中添加Mybatis-Plus和Spring Boot的相关依赖。 <dependencies> <!-- Spring Boot Starter Web --> <dependency...

Spring boot 中解决跨域问题(cors)

在 Spring Boot 中解决跨域问题(CORS)有以下几种常用方式,根据不同的场景选择合适的方法: 1. 使用 @CrossOrigin 注解(局部配置) 直接在 Controller 类或方法 上添加注解,允许指定来源的跨域请求。 @RestController public class MyController { @CrossOrigin(origins = ...

Docker & kubernetes (k8s) to deploy a python

Here's an integration guide for Python, Docker, and Kubernetes (k8s) to deploy a Python application: 1. Python Application Start with a simple Flask application (app.py): from flask import Fla...

Websocket多实例实现方案

在Spring Boot中实现WebSocket多实例时,由于WebSocket连接是有状态的,多个实例之间需要共享连接信息。通常可以通过以下两种方式实现: 1. 使用消息中间件(如RabbitMQ、Kafka) 通过消息中间件,多个实例可以共享消息,确保客户端无论连接到哪个实例都能收到消息。 实现步骤: 引入依赖: 在pom.xml中添加WebSocket和消息中间...