在MySQL中,使用delete_at字段作为逻辑删除的标记是一种常见的做法。当需要删除某个记录时,不是直接删除该记录,而是将delete_at字段设置为当前的时间戳。这样既保留了数据的历史记录,又实现了逻辑删除的功能。而MyBatis-Plus是一款强大的MyBatis扩展插件,其中包含了逻辑删除组件,可以帮助我们更加方便地实现逻辑删除。首先...
`update_time`timestampNULLDEFAULTNULLCOMMENT'更新时间',`delete_time`timestampNULLDEFAULTNULLCOMMENT'删除时间',`is_deleted`tinyint(4)unsignedNOTNULLDEFAULT'0'COMMENT'逻辑删除标识位',`version`int(11)unsignedNOTNULLDEFAULT'0'COMMENT'版本号',
删除标志位不使用0、1,改为使用删除时间戳来替代,使用初始值0或者Null来作为未删除标志符,会占用一定的存储空间,但可以显示删除时间,并且 MyBatisPlus 自带就支持了这种做法,使用这个方法只需,将删除标识字段用 datetime 存储,逻辑未删除值和已删除值支持配置为字符串null,另一个值支持配置为函数来获取值如now() ...
问题的关键就是让is_delete的值不同,可以使用0代表未删除,用其他值代表已删除 这个其他值可以是UUID、时间戳、主键id 由于uuid和时间戳,有一定概率会重复(想用可以去想办法如何解决重复问题),所以我选用的是使用注解id 添加注解,或者使用全局的配置文件都可以 // 在删除标记字段上增加注解,value为未删除的值,delv...
原来Mybatis中:我们需要在mapper中自定义方法,然后在mapper.xml中使用sql实现方法 但是使用了Mybatis-plus之后,我们直接继承 “BaseMapper<>”:它里面有单表的增删改查各种方法以及实现 我们继承它以后就拥有了这些方法,就不用写mapper.xml文件了; */ }
mybatis-plus小知识 常见的主键生成策略 自动增长 缺陷:分库分表时需要上一张库的表最后的值加1 UUID 缺陷: 每次生成随机唯一的值 但随机生成值,但排序不方便 Redis生成ID 使用redis的原子操作实现 mp自带策略 通过snowflake算法实现,每次生成值都不同(雪花算法:默认)...
在开发中,我们经常会有逻辑删除和唯一索引同时使用的情况。但当使用mybatis plus时,如果同时使用逻辑删除和唯一索引,会报数据重复Duplicate entry的问题。 举个例子: 原来数据库结构: 这里location_id是唯一索引 CREATE TABLE `eam_location` ( `id` int(11) NOT NULL AUTO_INCREMENT, ...
在逻辑删除方面,MyBatisPlus提供了更为灵活的实现方式。通过为实体类添加一个`deleted`字段,并使用`@TableLogic`注解进行配置,可以实现在删除操作时不真正从数据库中移除数据,而是将其设置为不可用状态。这样既能保留数据,又不影响数据的查询和管理。本文通过实际代码实例,深入解析了MyBatisPlus中ID生成...
* 逻辑删除时间戳,新增纪录时默认为0,删除记录时取当前系统时间戳 */ @TableField(fill = FieldFill.INSERT) private Integer removeTimestamp; /** * 账号 */ private String account; public String getId() { return id; } public void setId(String id) { ...
基于SpringBoot使用MyBatisPlus 1.3 SpringBoot整合MyBatis开发过程 1、创建SpringBoot工程 2、勾选配置使用的技术 1)删除无用的文件 2)手动添加mp依赖 【原因】mp未被收录到idea的系统内置配置,无法直接选择加入 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><ve...