当前位置: 首页 > news >正文

精品课程网站开发项目广州推广排名

精品课程网站开发项目,广州推广排名,好的网站设计特点,韶关城乡建设部网站首页系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 MyBatisPlus之逻辑删除 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、什么是逻辑删…

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
MyBatisPlus之逻辑删除


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 系列文章目录
  • 前言
  • 一、什么是逻辑删除
  • 二、逻辑删除的使用
  • 三、自动填充
    • 自动填充步骤
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:

在学习MyBatisPlus的过程中,逻辑删除是一个比较重要的知识点。逻辑删除是指使用一个特殊的字段来表示数据库表中的一条记录是否被删除了(或是否存在),例如为数据库表中的每一条记录都增加一个is_delete字段,当is_delete为1时,表示该记录已经被删除了,当is_delete为0时,表示该记录还有效。与逻辑删除相对的就是物理删除,指直接从数据库中删除记录。

逻辑删除是为了方便数据恢复和保护数据本身价值等的一种方案,但实际就是删除。如果需要频繁查出来看就不应使用逻辑删除,而是以一个状态去表示。

希望通过本文的介绍,大家对MyBatisPlus的逻辑删除有一个初步的了解。后续会详细介绍逻辑删除的实现在此基础上。


提示:以下是本篇文章正文内容,下面案例可供参考

一、什么是逻辑删除

逻辑删除是一种用于表示数据删除状态的数据处理方式。在逻辑删除中,数据并没有从数据库中真正被删除,而是通过标记或更新一个字段来表示该数据已被删除。

常见的实现方式是在数据库表中添加一个名为is_deleted的字段,并将其设置为1或true来表示数据已被删除,设置为0或false来表示数据未被删除。这样,在查询数据时,可以通过添加条件来过滤出已被删除的数据。此时增删改查的Sql语句发生变化:

  • 插入: 不作限制
  • 查找: 追加where条件过滤掉已删除数据。例如 select id,name,deleted from user where deleted=0
  • 更新: 追加where条件防止更新到已删除数据。
  • 删除: 转变为更新,例如 update user set deleted=1 where id = 1 and deleted=0

逻辑删除的好处是可以保留数据的历史记录,以便在需要时进行恢复或审计。同时,它还可以避免由于误操作或数据完整性问题导致的数据丢失。

需要注意的是,逻辑删除只是一种数据处理方式,并不代表数据真正被删除。在实际应用中,需要根据具体情况选择合适的数据处理方式,并确保数据的安全性和完整性。

二、逻辑删除的使用

1.在配置文件配置逻辑删除

# mybatis-plus相关配置
mybatis-plus:# 全局配置global-config:db-config:# 全局逻辑删除的字段名logic-delete-field: deleted# 逻辑已删除值(默认为 1)logic-delete-value: 1# 逻辑未删除值(默认为 0)logic-not-delete-value: 0

2.修改实体类,添加逻辑删除属性

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Student extends Model<Student> {@TableId(value = "sid")private Integer id;@TableField("sname")private String name;private String email;private String gender;private Integer age;@Versionprivate Integer version;@TableLogicprivate Integer deleted;
}

3.修改数据库表,添加一列整型deleted字段并设置默认值为0
4.测试删除和查询方法,会看到删除时将deleted字段变为1,查询时添加条件deleted=0

三、自动填充

因为存在逻辑删除字段,所以在向数据库插入数据时,都需要将deleted字段的值设置为 0。每次插入数据都要设置这个值,非常繁琐。因此,MyBatis-Plus 提供了自动填充功能来解决这个问题。

自动填充步骤

1.为实体类的自动填充字段添加@TableField

@TableLogic
// 自动填充字段
@TableField(fill = FieldFill.INSERT)
private Integer deleted;

填充策略:

  • DEFAULT:默认不处理
  • INSERT:插入操作填充字段
  • UPDATE:更新操作填充字段
  • INSERT_UPDATE:插入操作和更新操作均填充字段

2.自定义填充类实现MetaObjectHandler接口

@Component
public class MyMetaObjectHandler implements MetaObjectHandler {/*** 插入时填充逻辑* @param metaObject 元对象*/@Overridepublic void insertFill(MetaObject metaObject) {/*** 参数1:填充字段名* 参数2:参数值* 参数3:元对象*/this.setFieldValByName("deleted", 0, metaObject);}/*** 更新时填充逻辑* @param metaObject*/@Overridepublic void updateFill(MetaObject metaObject) {}
}

总结

提示:这里对文章进行总结:

  1. 什么是逻辑删除:逻辑删除是指文件或数据没有被真正删除,只是通过对数据进行标注,使其无法被识别到。这种删除操作通常是可逆的,即可以使用适当的工具或软件将删除的文件或数据恢复出来。
  2. 常规逻辑删除:在数据库表中添加一个is_delete字段,值为0表示数据未删除,值为1表示数据已删除。插入数据时,该字段默认为0。删除数据时,将该值设置为1。查询和更新数据时都将is_delete=0作为条件,只查询和更新未删除的数据。
http://www.bjxfkj.com.cn/article/103825.html

相关文章:

  • 向google提交网站在线域名ip查询
  • 网页制作素材软件有哪些seo优化排名教程
  • b站推广是什么意思服务营销论文
  • 宝丰县建设局网站黑帽seo365t技术
  • b2b网站名称和网址有哪些济南seo全网营销
  • 白银网站建设熊掌号seo基础入门视频教程
  • seo营销方法关键词优化一年的收费标准
  • 新郑市住房建设局网站赚钱软件
  • 自己如何做公司网站视频百度风云榜
  • 网站开发web泰安网络推广培训
  • 做自主外贸网站和后台费用多少营销型网站建设运营
  • 网站建设 报价百度产品大全首页
  • 网页设计网站含义网站关键词推广工具
  • 本机网络ip做网站百度网盘官网登陆入口
  • 农业生态园电商网站建设我想在百度上做广告怎么做
  • 建设网站需要哪些人搜索引擎优化的主要工作
  • 做网站用什么程序百度引擎搜索推广
  • 做网站排名工具seo关键词优化软件
  • 做照片书的网站营销型网站建设套餐
  • wap网站还有能打开的吗网站域名ip地址查询
  • jsp做网站能实现什么功能企业管理8大系统
  • 做一个网上商城网站建设费用多少百度一下首页极简版
  • matebook e 网站开发seo综合查询软件排名
  • 移动wifi多少钱一个月北京网站优化托管
  • 织梦美女图片网站模板青岛网站设计公司哪家好
  • 用ih5做微网站苏州网站建设公司排名
  • 宣传策划方案模板北京网站优化服务商
  • 起名最好的网站排名500个游戏推广群
  • 做的比较好的设计公司网站最近有哪些新闻
  • 竹子网站建站百度下载免费官方安装