项目中数据库表设计原则用到了逻辑删除:数据本身没有被删除,只是将deleted字段设置为1

mybatis-plus在逻辑删除方面的设置如下:

mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl//sql打印
global-config:
db-config:
logic-delete-field: deleted//逻辑删除
logic-delete-value: 1
logic-not-delete-value: 0

在实体中,相关的设置如下:

 /**
* 逻辑删除 1删除 0 未删除
*/
@TableLogic
private Integer deleted;

测试过,全局配置和在实体中加入@TableLogic注解,可以二选一,因为在实体中加入太麻烦,所以建议全局配置,实体中可以不写注解,也可以达到逻辑删除的效果

最后:关于deleted在数据库的存储问题,我一直存的类型是tinyint(1) ,这是对的,因为它的选值不是0就是1

今天在用代码生成器的时候,发现生成的实体是Boolean类型的,查询资料后的结论是,tinyint(1)对应Boolean

关键的问题是,我以为这个1是长度,其实不是,tinyint(1)理论上只能存储0和1(实测实际上也可以存其他值),要存其他值可以设置为tinyint(4)

建议:以后将只存储一个数字的字段设置为tinyint(4), 包括逻辑删除,这样在用代码生成器时自动反射为Integer

最后结论:

1. 逻辑删除用mybatis-plus的全局配置即可

2. 只存储一个数字的字段设置为tinyint(4), 包括逻辑删除deleted

mybatis-plus逻辑删除deleted的更多相关文章

  1. mybatis 乐观锁和逻辑删除

    本篇介绍easymybatis如配置乐观锁和逻辑删除. 乐观锁 easymybatis提供的乐观锁使用方式跟JPA一样,使用@Version注解来实现.即:数据库增加一个int或long类型字段ver ...

  2. mybatis配置的逻辑删除不好使了

    在使用mybatisplus中,可使用逻辑删除.案例中,使用mybatisplus逆向生成model,使用delete_status为识别逻辑删除字段. springboot 中配置启动逻辑删除 my ...

  3. 小书MybatisPlus第8篇-逻辑删除实现及API细节精讲

    本文为Mybatis Plus系列文章的第8篇,前7篇访问地址如下: 小书MybatisPlus第1篇-整合SpringBoot快速开始增删改查 小书MybatisPlus第2篇-条件构造器的应用及总 ...

  4. Lind.DDD.ILogicDeleteBehavor~逻辑删除的实现

    回到目录 关于逻辑删除 对于逻辑删除之前的做法是在实体类中加个字段,一般是status,其中一种状态是删除,当然也有其它做法,如加个bool的字段IsDeleted,这些其实都过于武断,即它在基类里加 ...

  5. spring boot项目自定义数据源,mybatisplus分页、逻辑删除无效解决方法

    Spring Boot项目中数据源的配置可以通过两种方式实现: 1.application.yml或者application.properties配置 2.注入DataSource及SqlSessio ...

  6. Spring boot+Mybatisplus用AR模式实现逻辑删除操作

    Mybatisplus的AR模式 Active Record(活动记录),是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录.ActiveRecord ...

  7. mybatis-plus逻辑删除

    MP(mybatis plus)已经大大简化了我们好多的开发操作,基本的增删改查都有了,包括代码生成等等,今天想说的是它的逻辑删除功能.我们都在数据库设计时候经常会有is字段,表示是否删除,为了留下员 ...

  8. 【mybatis-plus】分页、逻辑删除

    通过mybatis-plus实现分页,也是很简单,插件大法. 一.分页 1.配置分页插件 把分页的插件也配置到统一的配置类里: @Configuration // 配置扫描mapper的路径 @Map ...

  9. Java开发学习(四十八)----MyBatisPlus删除语句之逻辑删除

    1.逻辑删除 接下来要讲解是删除中比较重要的一个操作,逻辑删除,先来分析下问题: 这是一个员工和其所签的合同表,关系是一个员工可以签多个合同,是一个一(员工)对多(合同)的表 员工ID为1的张业绩,总 ...

  10. 获取jsp选中复选框的id传到后台controller,进行逻辑删除等操作

    逻辑删除设备:(数据表中还有这条记录,不显示出来) 思路: 数据表加个字段display,值为Y/N,只显示display为Y的,删除时,把display的值改为N,就不会显示出来 jsp页面如下图, ...

随机推荐

  1. 转码服务serverless探索

    背景 公司目前主要聚焦于视频这个领域,利用视频为媒体.文旅.会议等行业进行赋能. 既然聚焦于视频领域,那么视频转码则是绕不开的话题. 为了降低成本,以及保证产品的核心能力,公司自建了一套转码系统. 转 ...

  2. vue中使用xlsx 导出表格

         <t-table v-show="false" id="exportTab" row-key="index" :data=& ...

  3. Mybatis-Plus 之BaseMapper 方法详解

    package com.itheima.dao; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomido ...

  4. python spacy [E050] Can't find model 'en_core_web_sm'

    出现问题 [E050] Can't find model 'en_core_web_sm' 使用管理员权限打开shell控制台,输入命令 python -m spacy download en_cor ...

  5. 网络储存服务ip-san搭建

    简单的介绍一下SAN(存储区域网络存储区域网络和SAN协议,简称SAN),它是一种高速网络实现计算机与存储系统之间的数据传输.常见的分类是FC-SAN和IP-SAN两种.FC-SAN通过光纤通道协议转 ...

  6. php 允许跨域

    1.控制器 header("Access-Control-Allow-Origin: *"); class Index extends Api {} 2.app/admin/con ...

  7. java开发细节

    Java开发细节 Java源文件以.java 为扩展名.源文件的基本组成部分为类(class),如本类中的Hello类 Java应用程序的执行入口是main()方法.它有固定的书写格式: public ...

  8. EF Core级联保存时DbUpdateConcurrencyException报错异常

    出现改报错异常的原因是,EF Core不支持级联更新时添加新的子项!!! 如果主体子项添加一个新内容,EF Core则认为这个内容原本已经存在了(实际是你新增的),只不过并发冲突中被其他进程删除掉了, ...

  9. ubuntu 安装php7.2 oracle扩展

    一:介绍 php要连接访问oracle需要安装三个东西 1:Oracle Instant Client:即时客户端库 2:php的Oracle数据库扩展:oci8 3:php连接pdo的oci扩展:p ...

  10. Curl 命令举例

    curl是一个强大的网络请求lib,虽然强大,但是参数太多哈,不得不吐槽,下面列举一下常用使用方法,供大家CV POST 请求 入门: curl -X POST "http://localh ...