mybatis delete 存在id单删除不掉_Mybatis-plus常见用法总结三

前面已经介绍了Mybatis-plus基本用法,今天为大家分享一些Mybatis-plus高级应用

  1. 逻辑删除
  2. 自动注入
  3. 枚举类型处理
  4. Sql注入器
  5. 多租户

表结构

CREATE TABLE `sys_role` (  `id` varchar(64) NOT NULL COMMENT '主键',  `code` varchar(64) NOT NULL DEFAULT '' COMMENT '角色编码',  `name` varchar(64) NOT NULL DEFAULT '' COMMENT '角色名',  `type` char(2) NOT NULL COMMENT '角色类型,1:管理员,2:普通',  `tenant_code` varchar(64) NOT NULL DEFAULT '' COMMENT '租户编码',  `create_user` varchar(64) NOT NULL DEFAULT '' COMMENT '创建用户',  `create_time` datetime NOT NULL COMMENT '创建时间',  `update_user` varchar(64) NOT NULL DEFAULT '' COMMENT '更新用户',  `update_time` datetime NOT NULL COMMENT '更新时间',  `is_del` char(1) NOT NULL DEFAULT '0' COMMENT '是否删除,0:未删除,1:删除',  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='角色';
fefe5b768fd09b43e512206d718e66ab.png

逻辑删除

全局配置

在配置文件中增加如下配置

mybatis-plus:  global-config:    db-config:      logic-delete-field: isDel#全局逻辑删除字段值 3.3.0开始支持,详情看下面。      logic-delete-value: 1 # 逻辑已删除值(默认为 1)      logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

局部配置

在实体类删除字段上增加@TableLogic注解

/** 是否删除,0:未删除,1:删除 */@TableLogicprivate String isDel;

全局配置和局部配置实现的结果是一样的,下面针对局部配置做一下测试

@Autowiredprivate RoleMapper roleMapper;@Testpublic void logicDel() {    roleMapper.deleteById("1");}
96b91e997a43c9b6579abc33c139f4a9.png

从结果可以看出角色id为1数据的is_del被设置为1

使用Mybatis-plus自带方法删除、更新和查找都会where条件后面加上删除字段

以查询为例看一下效果

@Test void loginDel2() {    roleMapper.selectList(null);}
b13cc2c64f15f205cdfcc58257b5b019.png

从打印的sql中可以看出,在where后面添加了is_del='0'限定,所以要查询所有数据可以采用自定义sql实现

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值