MyBatis-Plus(简称MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。它继承了 MyBatis 的所有特性,并在其基础上增加了更多便捷的功能,如代码生成器、性能分析插件、分页插件等。 2. MyBatis-Plus中的锁表概念 在数据库操作中,锁表是指对数据库表进行锁定,以防...
三、需求 我们有一张客户表customer,里面有客户手机号(phone)和客户地址(address)等字段,其中客户手机号(phone)是需要加密保存到数据库中的。 1、在添加客户信息时,自动将客户手机号加密保存到数据中; 2、在查询客户信息时,自动解密客户手机号; 四、实现思路 1、编写一个实体类,凡是此实体类的数据都表示需要加解...
①:数据库表中添加锁标记字段, 默认值为1 ②:实体类中添加对应字段,并设定当前字段为逻辑删除标记字段 package com.ieheima.domain; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; @Data //表明和实体类不对应 //@TableName("tbl_user") public class User { //适用数据库默认的生成策...
MyMetaObjectHandler ---这个通用方法是给你 @TableField 注解用的,实现乐观锁不需要也行 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 package com.Common; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import org.apache.ibatis.reflection...
com.baomidou.mybatisplus.extension.service.IService#saveOrUpdate(T, com.baomidou.mybatisplus.core.conditions.Wrapper)方法(以下简称B方法),并发场景下,数据库报了如下错误图片。 二、为什么是间隙锁死锁? 如上图示,数据库报了死锁,那死锁场景千万种,为什么确定B方法是由于间隙锁导致的死锁?
二、微服务注册中心的读写锁优化 现在进入主题,我们主要聊一下微服务注册中心里面的读写锁优化。 为什么要聊一下这个问题呢? 因为如果你出去面试,很可能被问到读写锁的问题,此时你可以自然而然的带出来,你之前了解过Spring Cloud微服务技术架构,同时对里面的微服务注册中心的注册表读写锁优化有一些自己的感悟和看法。
A同学在生产环境使用了Mybatis-Plus提供的com.baomidou.mybatisplus.extension.service.IService#saveOrUpdate(T, com.baomidou.mybatisplus.core.conditions.Wrapper)方法(以下简称B方法),并发场景下,数据库报了如下错误 死锁日志 2 为什么是间隙锁死锁?
mybatis没有能实现这这种场景的功能,mybatis plus实现了插件式的乐观锁,但是只能用于更新。你的这种...
1、创建实体类,实体类上加上版本号字段,同时加上@version注解 2、数据库加上对应的版本号字段 3、mybatis-plus加上乐观锁配置信息 4、单测测试先读再修改,...