00:00
好,下面呢,我们来讲一下咱们的最后一个注解,然后叫做逻辑删除,那首先呢,大家要知道什么叫做逻辑删除,大家也要知道逻辑删除的一个应用场景,那我们以后咱们在开发的项目中呢,然后呢,用户可以对我们当前删除的一些数据来进行一个恢复的操作,那这个时候我们就需要用到的一个逻辑删除,那什么叫逻辑删除,那有逻辑删除就有什么删除呀。物理删除,物理删除指的是真实删除,我们从当前的这张表中通过delete将我们的这条数据给它删除掉。这个就是真实删除,而逻辑删除其实指的是一个假删除,我们可以在这张表中啊去设置一个表示删除状态的一个字段,比如说咱们把它设置为默认值为零,表示的是未删除状态,而当我们进行了一个逻辑删除之后,我们就可以将这个字段的值给改为一,那从此之后我们从这张表中所查询出来的数据应该都是未删除状态的数据,这个大家注意啊,所以说这个时候咱们的逻辑删除它其实是删除功能吗?不是它就会变成一个修改功能。好,那下面呢,那我们来看一下它的使用场景呢,其实就是可以进行数据的恢复,那我们该如何通过my be plus来实现逻辑删除呢?非常简单,大家来看,首先呢,我们在咱们的这个表里面去添加一个新的字段,叫做is deleted。
01:30
好啊,行设置完成之后,它的类型咱们设置为int,默认值咱们设置为零就可以啊,好,然后来点击保存好,然后大家可以看一下我们当前咱们的这些数据,Is delete的这个字段的值是不是都是零,OK吧,好,那我们同样的在我们的实体类中,我们也要来设置一个这样的字段,然后private,然后应该是一个inte类型,叫is be OK,好,这个大家应该都知道,为什么这样写吧,因为我们的字段有字段的规则,实体类中的属性有属性的规则,OK吧,然后我们下面再把这个再把我们当前的属性上,然后加上一个注解,叫做logic。
02:19
叫做logic。叫做table logic就可以,然后这个来表示的就是我们当前的一个逻辑删除的字段,好,那我们下面咱们再来测试一下咱们的删除功能,这个时候大家会发现咱们的删除还是真的删除吗?就不是了啊,就比如说我们现在咱们来删除的是我们的ID为一,ID为二,ID为三的这些这三条数据,然后我们下面咱们在这来一个执行,大家来看一下我们最终的一个结果还是删除的操作吗?就不是了,它就会变成一个修改操作,将我们当前指定为逻辑删除的这个字段的值,然后把它给修改为一来大家看啊。
03:05
好,然后我们来拉到最后,然后大家看,然后我们最终咱们受影响的行数是三,然后我们当前咱们的删除功能是不是就变成了什么修改功能,大家来看一下update t_U的set is比delete等于几等于一默认值为零,零表示的是未删除状态,那既然咱们现在进行了逻辑删除之后,把它修改为一了,那说明一表示的就是已删除状态,OK吧,然后再加上我们当前的条件,而且在这儿还有一个条件,就是我们当前所删除的这些数据,它本身就是处于未删除状态的,OK吧,好,然后下面呢,我们再来测试一下查询,那既然咱们已经进行了逻辑删除,那对于用户来说,我们已经删除的数据我们应该是看不到的,对不对?所以说我们再来找到我们的查询,咱们的这个查询功能是不是应该是来这样啊,咱们把它给注释掉,然后咱们来查询一下我们。
04:05
当前的所有数据,OK,这个时候大家再来看,我们还能否查询到我们已经逻辑删除成功的这些数据呢?来,大家看一下。啊。OK,这个时候大家来看我们当前所查询出来的数据有123吗?没有?大家来看一下它所对应的circle口尾句,Select u ID as ID,因为我们当前咱们的实体类中的这个属性是ID,而我们的字段名是UID,然后username下划线啊,User_name asname,因为我们的属性是name,而我们当前的这个字段名叫username,对吧?然后再往下age email is delete。From t_u well is deleted等于零,那所以说我们现在查询出来的应该是什么?处于未删除状态的这些数据,所以说当我们使用了my be plus之后,我们还需要来每一次再进行逻辑删除的时候来进行一个修改的操作吗?不需要,然后我们还需不需要在查询的时候特殊的来指定我们当前的这个is deleted等于零这个条件吗?也不需要了。所以说在我们使用了my be plus之后,我们当前的逻辑删除会自动转换为咱们的修改操作,而我们当前咱们的一个查询功能会自动来查询我们当前未删除状态的一些数据,OK,那这个就是我们最后的一个注解,叫做逻辑删除。
我来说两句