00:01
各位同学大家好,我们继续来学习。上移通项目刚才呢给大家演示了MP实现对数据库的简单查询操作,那下面给大家演示用MP实现删除操作,在删除操作中的给各位主要演示这么四个删除。我们先总体上浏览别。首先第一个删除,咱们可以根据ID做删除,然后第二个删除叫批量删除,第三个叫简单的条件删除,这个批量和简单条件删除跟刚才查询差不多,比如说咱们快速演示一下,然后最后给大家再演一个删除,叫逻辑删除,这是咱们主要给各位演示这么一个删除,那我下面通过代码给各位详细写一下,首先我们先看第一个根据ID做删除,那我在这里边给各位写一下这个方法。
01:00
我写到这个位置。根据ID删除,然后里边呢,我们加上一个方法,咱们加上一个单元测试的方法。我们叫T头。Delete ID。然后在里边怎么做呢?咱就直接调用user map中的一个方法,这方法就叫做delete,白地里边传入一个ID值,那比如说我们现在到表里边,咱们找到一个数据,我们就找这个ID是一的数据,然后把ID传到里面去。最终我们调方法删除,它会返回,就是你那个影响的行数,也就是我们现在成功删了几条记录,咱把影响行数最终我们做一个输出,所以这样的话,咱就把这个方法完成了,根据ID做删除,那现在我把它执行一下,咱们看一下最终的结果是什么样的,我们来做测试。
02:02
咱们等他均完成。然后咱们看,首先我们看底层的语句是不是就是底delete,根据ID经删除,最终反应结果是一,就是咱们影响了异常记录,然后到表里边我们刷新,大家看ID是一的数据是不是就删掉了,所以这样的话,我们完成了第一个删除,根据ID删除,然后这个完成之后呢,下面还有一个删除叫做批量删除。就是这个操作,咱们在之前做那个查询中是不是做过类似,所以跟他一样,这个我就不演示了,咱们来看一遍,因跟刚才差不多,而且怎么做呢?我们调user侧麦中的方法叫delete泛ids,然后里边传入一个list集合,再用工具类直接构建集合,里边传用你的ID值,然后调方法就可以根据多个ID值做一个删除,这是第二个操作,然后第三个呢,大家看。这是什么?
03:00
是不是一个简单条件删除,也就是说我们删除的时候可以加条件,假如现在我根据名称删,根据名称和年龄删,那怎么做?咱们也是用map构建出一个条件,然后调方法叫delete by map,把构建条件的map传进去,最终根据条件可以做一个删除,所以这是关于最基本的删除功能,大家给他知道,而这个说完之后,下面呢,咱看一个重点,这个删除。这叫什么是逻辑删除,所以我这里边重点给大家讲,讲的就是逻辑删除。那我先说一下什么叫逻辑删除,有逻辑删除一个对应操作叫物理删除,咱先说什么叫物理删除,物理删除意思就是我表中数据就真正删掉了,比如说大家看我刚才这段代什么停之后,表中数据是不是就不存在了,这个叫物理删除,就真正删表中数据,那什么叫逻辑删除呢?
04:04
给各位说一下,你用逻辑删除之后,表中数据还存在,但是你在查询的时候,你就查不出来了,而他怎么做到呢?给各位写一下,就是咱们在这个表里面。添加一个字段作为我们的逻辑删除的这个标志,然后咱们每次删除的时候,咱就去修改这个标志位就可以了,比如说咱们约定我们零代表这个。没有删除,然后一代表已经删除,当咱们删的时候,把这标志位变成一没有删的时候,这就是零,所以用这种方式做一个逻辑删除,它的好处就是咱们表示数据并没有真正删掉,你在做恢复的时候会特别方便,所以这个叫逻辑删除,而实际中咱们一般也都是用到逻辑删除完成我们的功能。那逻辑删除怎么做?咱们看一下在MT中的实现方式,我们看怎么做,来看一下我的课件中,首先第一步。
05:07
在表里边呢,我们加个字段作为逻辑参述标志,然后加上之后,咱们在这个实体类上面加上它对应的属性,然后加上之后咱们可以配置,比如说我们的零代表不删除,一代表删除,但你不配置默认就是零是不删除,一直删除,然后咱们在执行方法之后,就能做到逻辑删除操作啊,当然这里边你需要在使用上边加一个注解,叫这个table logic,这是关于我们说的这么一个基本实现,那我下面给各位就来一起演示一下逻辑删除这个做法,咱们看怎么做。我写一下啊。首先里边的第一步,咱们在表里面添加上一个字段,对应的实体类里边添加上这么一个属性。
06:00
然后这个作为咱们的逻辑删除的一个。标志这是它的B补,那我下面给各位我们就来加强,那我们看怎么来做。首先第一个咱来到表里边,我在表里边的就添加上一个字段,这字段比如我起个名字就叫这个delete的。然后它的类型,咱就来一个类型,让它做一个逻辑删除的标志,这是第一个,然后加上之后,咱们在我们对应的实体类上面再加上这么一个属性,就是这个。Delete的,那我来加一下,来到我们的这类上边,咱们加个属性。Private in tIgEr deleted,所以第一步我们就完成了,完成之后里边的第二步,我们的做法就是在实体类里边我们做这个逻辑,删除的属性上边添加上一个注解,这是里边的第二步,那我们来加个注解,这注解我们写一下它的名字叫这个table。
07:16
另外咱们也可以为这个加一个初始值,用咱们之前说那个自动填充,这样的话就完成了。然后加上之后在自动填充里边,我们给这个删除加个初始值,默认值,咱就来个零,让它零的时候代表就是不删除,然后一就代表已经删除,所以咱们现在把这就加上了,然后加上之后现在逻辑删除过程我们就完成了,完成之后呢,咱们可以写个代码来做一下最终的测试,看一下这种效果,而测试代码跟之前一样,咱们可以根据ID直接删就可以了。那咱为了明显我这么做,我先加住一条数据,比如说给他改个名字啊,我叫这个保姆。
08:04
给加上,然后把它执行下。执行之后,咱们再来删除这个内容,就看一下逻辑删除是否能生效,我们先拎出来,再加数据。咱们到表里面看一下,现在我刷新大家看网五是不加进去了,目前delete的是不是等于零了,然后咱们根据ID我们来做一个删除,那我现在到我们的删除代码中把ID改成刚才这个ID值,改完之后咱们把代码。执行一下,看一下效果。刚才我说的,如果说效果正确的话,逻辑删除表中数据是不是还存在呀,但是标志位是会变成一啊。咱们先看一下它底层的语句是什么。大家清楚看到什么语句?是是不是就修改,把这个零的这个值是不是改成一了,然后到表里面我们看一下。
09:04
这值是不是有一啊,所以这样的话,我们就完成了一个逻辑参数操作,它的做法就这么来实现。直接加属性,加字段,然后在你的D类上边加上注解,最终我们测试跟之前那个方式一样,也是根据ID做删除,然后最终我们看到它的标志位就从零是不是就变成了一代表它已经被删掉了,这样的话我们就完成了,然后完成之后呢,比如现在啊,为了明显我稍微改一个数据啊,比如把这值呢,我先都改成零。改成零啊,比如这个咱们改成一,大家看,如果说咱们要查的话,正确的话,是不是查那个没有删的数据,也就说我这个标志位是零的,是不是这个数据,那咱们把我们最第一次最开始写的代码,咱们执行一下。看他能查出什么数据。那我们来试一下啊。这里边咱就演示LP中给咱们封装一个功能。
10:04
然后大家看查出几条数据。是不是六条数据。但是我表里边好像不是六条数据吧,是不是应该有八条数据,他只查了六条,为什么查六条,咱们看它的语句是什么。大家看这地方应该很好理解了,DP的等于什么是等于零了,所以MP它里面如果说你配置了逻辑删除它在查的话,那只会查D雷P的等于零的这个数据,也就是你没有删的数据,如果说你删除的数据他就不会帮我们查出来。所以这就是关于逻辑删除操作,各位把这功能给他知道,比如说咱们刚才分别演示的ID查询,批量查询,简单的条件查询,重点是咱说这个逻辑删除,根据它的标志位判断它是删除还是不删除,所以这个功能给各位就演示完成了。
我来说两句