大家好,楚明来为大家回答以上问题,可能很多人都不知道逻辑删除物理删除,今天让我们一起看看吧!
区别:物理删除是真正的删除,再也找不到这个文件了。
逻辑删除并没有真正的删除掉,可以重新恢复。
物理删除:真实删除。将对应数据从数据库中删除,之后查询不到此条被删除数据;
逻辑删除:假删除。将对应数据中代表是否被删除字段状态修改为“被删除状态”,之后在数据库中仍旧能看到此条数据记录。
拓展资料:
在计算机中资料数据等都以文件形式存储,删除文件分为两种情况。分为逻辑删除和物理删除。
逻辑删除是指文件没有被真正的删除,只不过是文件名的第一个字节被改成操作系统无法识别的字符。通常这种删除操作是可逆的,就是说用适当的工具或软件可以把删除的文件恢复出来。
物理删除是指文件存储所用到的磁存储区域被真正的擦除或清零,这样删除的文件是不可以恢复的。
参考资料:逻辑删除与物理删除百度百科
清空回收站是物理删除还是逻辑删除
在windows7的回收站窗口中进行清空回收站操作后回收站被清空,其中的文件或文件夹被从硬盘清除。在Windows7中,将删除的文件暂时保存在回收站中,使逻辑删除而不是物理删除。
mybatis逻辑删除和物理删除
MyBatis的插件MyBatis-Plus,又叫苞米豆(baomidou),简称MP,官方说,它是为了猿类崛起而生,为了提高生产率而生,为了简化开发而生,不管它为了什么而生吧,反正是它出生了。
MyBatis-Plus对MyBatis只做增强不做改变,所以引入它不会对现有工程产生影响,只需要做简单的配置,就可以快速进行单表的CRUD操作,从而节省时间,提高效率。
MyBatis-Plus插件有很丰富的功能,比如:单表CRUD操作、代码生成、自动分页、逻辑删除等。
下面我们来简单介绍一下MyBatis-Plus的使用
1、pom.xml
去掉MyBatis的核心依赖(org.mybatis.spring.boot.mybatis-spring-boot-starter),增加MyBatis-Plus的依赖:
2、配置application.yml、po、dao和Application
application.yml中配置数据库连接:
blog数据库中article表的实体类ArticlePo:
注解说明:
@TableName:表名注解,标识实体类对应的表
@TableId注解:主键注解,当type = IdType.AUTO时,表示这个主键是自增主键
blog数据库中article表的dao,ArticleDao:
BaseMapper接口:利用Mybatis接口编程的实现机制,默认提供了一系列的增删改查的基础方法。
在Article11Application中配置 MapperScan 注解:
3、增加数据
insert:增加数据,insert返回值int代表insert了多少条记录
示例:在ArticleController中编写增加数据的接口:
说明:
1)一般业务逻辑处理在service层,这里为了方便,直接在controller中演示了
2)@Resource注解:注入ArticleDao,后续的方法中不再重复注入
4、删除数据
delete:物理删除数据,返回删除了多少条数据
示例,删除title为Mybatis-Plus test的数据:
1)物理删除后,恢复数据很困难,所以一般情况下,业务处理采用逻辑删除的方式
5、更新数据
update: 更新数据
示例,修改title为Mybatis-Plus test的数据的title为Mybatis-Plus update:
updateById: 根据主键id更新数据
示例,修改id为7的数据的title为Mybatis-Plus updateById:
注意 :
1、updateById方法:若传入实体Model,则会根据主键把其他字段全部更新一遍
问题:使用baomidou拿出某条数据的数据实体后,有其他人把数据库中这条数据的某个字段更新了,再用baomidou的updateById方法更新时,会把此字段再更新回来
解决:
方法1:使用sql语句,只更新需要更新的字段
方法2:新建实体Model,Model中只放主键和需要更新的字段
6、查询数据
selectOne: 查询单条数据
示例,查询id为7的数据:
1、selectOne方法
1)结果没有数据时,返回null
2)结果有一条数据时,返回此数据
3)结果有两条或两条以上数据时,报错
解决办法:在最后增加 .last(" limit 1 ") 语句
selectList: 查询多条数据
示例:查询title为Mybatis-Plus update的数据
7、打印sql日志
打印执行的sql,在application.yml中配置,一般配置在开发环境
MyBatis-Plus的其他注意事项
1、如果数据库表字段中有desc、describe等mysql关键词或预留关键词,使用selectList/selectOne会报错,需要单独写sql查询语句
2、有时我们需要在Dao中单独写方法来写sql语句,这时方法的命名跟baomidou自带的命名不要一样,否则即使参数不同,也会有问题:Dao中单独写的方法,会把baomidou的方法覆盖,就调用不到baomidou的方法了
本文示例代码, 详见
若您觉得还可以,请帮忙点个 “赞” ,谢谢
逻辑销毁和物理销毁
销毁有以下两种方式,即逻辑销毁和物理销毁:
1、逻辑销毁就是用随机字符将硬盘填充满,国家保密局对于逻辑销毁的模式限制为6次以上,即需要对硬盘进行6次不同模式的复写,方可认为是不可恢复的销毁,就目前的商业性数据恢复来说,只要进行1次完整的覆写,就无法恢复数据了;
2、物理销毁则是对介质进行物理层的破坏,通常有两种模式,粉碎和消磁,对于粉碎来说,其颗粒要小于一定尺寸方可认为是安全的销毁。而消磁则是通过一个瞬间激发的强磁场击穿硬盘,消磁后,不仅硬盘碟片的信息会消失,就连
游戏公告是逻辑删除还是物理删除
如果大家喜欢逻辑删除物理删除,欢迎大家收藏!
本文有网友:蛋花贡献,如若转载,请注明出处:http://weichuming.com/w/62185.html
生活网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。本站非盈利且无偿提供信息存储空间服务,不拥有所有权,如有文章有不实信息或侵犯了您的权益,请邮件weichuming@126.com反馈核实。