00:00
各位同学,下面呢我们继续来演示MP对数据库的增删给查操作,刚才咱们演示的第一个就是查询,所有大家感受到了,这个过程中我们并没有写插的文件,也没有编写SQL语句,它的核心部分就是创建map继成贝map,在测试类中咱们注入直接调用map中的方法就可以实现对数据库的操作,所以这就是它的分围地方,那下面呢,给大家进寞的演示。那我下面来写第二个操作,我们来写一个添加操作,也就是向表中我们加入一条数据,那我下面给大家快速写一下,加上一个T的。然后加上这个写一个方法。Public等A等。方法。然后在里边我们来做一操作,那怎么做呢?还是调用map中的方法,这方法大家看一下叫insert,然后insert里边呢,一个角色的对象,那我现在我就把这对象,咱们为了测试我来一个对象。
01:07
等于妞一个。决策对象,然后向里边来set它的切块内容,这个set部分呢,我就从课件直接复制了,然后大家看到我现在set以上几个值,把这个拿过来。大家看到啊,第一个就是角色的名称,第二个角色编号,第三个角色描述,所以现在这个对象完成,完成之后我们把对象传入到这个方法中去,这样的话就能完成添加,添加之后它会返回一个值,这个值是什么呢?给大家说明一下啊。比如说我现在加入了一条记录,那它就返回一,我加入了两条记录,它就返回二,就是你这个影响的行数,也就是说你成功加了一条记录。然后之后我们可以把这个对象再自我输出,这个过程中呢,有一个细节问题,之前咱也简单说了一下,这里边说的更详细一点,大家注意啊,我现的时候这个里边有个属性就是的ID,这个ID你发现我这里边并没有进去,那它怎么做呢?因为我在数据库中大家看啊,我数据库表里边,我把这个表建标语打开,大家看这个位置。
02:28
这是什么?Tocrement是不是自动增长,所以我现在在MP里边,咱们看这一类里边加了这个相关的属性和注解,叫做ID type凹凸,它就表示自动增长,比如说这个值,那就不需要设置,它会帮我们自动加进去,就是表示主键的生成策略自动增长,然后里边还有其他值,咱们看一下啊,我把这个点开。大家看里边这是什么,是不是叫枚举啊,然后里边有很多策略,第一个自动增长,第二个就是没有策略,第三个input表示咱们需要手动输入,就是你手动往里面set ID值,然后第三个,第四个是生成一个唯一的一个值,每次值都是唯一的,这是它里边自带的主键策略。另外还有几个过时的,这咱就不看了,主要是这么几个,我们目前用的是自动增长这个策略,这个为明确。
03:26
然后这个添加之后,如果说咱把这对象输出,它会做件事情,把你生成那个主ID值给你回填到对象中去,也就是说这几行代码中没有ID,当你添加之后再输入对象里边会包含你的ID,那我现在啊,把这个影响行数咱们也输出一下。现在这个就完成了添加操作,添加操作完成之后,现在我把它执行一下,咱们看一下最后的结果是怎样,等它执行出来。
04:06
大家看啊,现在已经完成了,完成之后我们看到上面是S后L语句insert,然后这是它相关的参数,包括你看啊输出的什么是这个一啊,然后在里边把这个对象的应该都做这个输出啊,只是我们刚才生成的时候呢,咱们在那个。To死人里边没有它那个ID址,我把那个给他稍微改造一下啊,把ID值给它也输入出来。我们给它稍微改造一下啊。我们这么来做直接啊,从这个对象中把它的ID值给到直接咱们输出一下,这样的话看能更明确,因为它里面有个继承关系啊,突瑞啊,这是它的负类,所以现在我再执行一下啊,这个值稍微改一下,其实刚才已经加进去了,但为了明确,我给它加上一个一了,为了测试一下。现在我再做执行,然后咱们看一下最终的结果是怎么样。
05:05
等它执行出来结果。然后大家看啊,现在是不是出来了,各位看啊,这个一影响行数,就是成功加了一条记录,然后这个ID值是十,表示自动增长的铸件值,所以现在这个完成咱们到表里边,我们来看一下这个表中的数据。我们找到啊,找一下数据。直接这么来看,呃,这个位置我给他刷新一下,大家看啊,刚才我加了第一次叫角色管理员ID是九,第二次叫角色管理员1ID是十,刚才我把ID10是不是也做了输出,所以以上是咱完成的用MP实现这个进价操作,这个咱们叫点到这里。然后添加之后,我们继续往下演示,这个刚才已经说过了,然后下面演示什么,我们演示一个修改操作以及删除操作,那咱们先看一下这个修改操作,我在这里边给大家写一下。
06:05
咱们还是写到这个位置。修改操作在这里边加上这个方法,这个为了方便我就直接复制,咱们快速改一下修改方法,我起个名字就叫update。那大家想一下啊,这个修改应该怎么去做呢?怎么实现?各位应该能想到啊,它里边应该分成两步,第一步操作,根据ID进行查询,然后第二步设置要修改的值,如果写的具体点,应该还有第三步调用方法实现最终的修改,这就是修改一个基本过程,包括大家想一下,我们在一个系统中做修改功能的时候,第一步是不是先到一个页面中显示原始数据,第二步你改它的值,第三步点确定是不是改你数据库中的最终数据,所以它里面就是三步。
07:03
那我们写一下啊,第一步根据ID查询,咱们map中有个方法我们找一下啊,大家这个白里边呢,我传入一个ID值,刚才咱一个值是十,我把十传进去,根据ID我们做一个查询,这是里边的第一步。ID查询,包括就是根据里边的这个应查询,然后这个之后第二步呢,设置要改的值,我们就改一下他这个角色的名称,因为他之前名称叫角色管理员一。那我给它改一下啊,我就改成这个叫硅谷。角色管理员,那就改一个值了,但是你可以改更多,然后之后我们调用方法,那就是调用map中的方法,Update ID对象,最终完成修改,它返回到也是这个影响的数,我把这个最终最后输出。
08:04
所以各位看到啊,这就是用MP实现去改操作,那这个之后咱们来测试一下,试一下结果,看最终结果是怎么样,就看一下表中ID的数据能不能完成最终修改。等它执行出来啊。大家看啊,这里边成功了,然后你看最后语句,第一步先查询,然后设置值,最后进行修改,用update进行修改,反值是一影响了一行到表里边刷新。你看这里啊,At硅谷角色管理员是不是也完成了修改,所以咱们到这里就把修改功能给各位,最终也是完成,大家把这个清楚啊,属于最基本的一个操作。然后修改之后我们继续来看啊,下面一个操作叫什么删除,删除呢?给大家演示两个,一个是根据ID删除,还有一个是批量删除,这是删除操作,但是说删除之前,这里要特别说这么一个细节问题。
09:11
给大家先做一个说明,然后示啊,首先大家看啊,我们现在这里就是里属性,在属性中呢,就是它继承的贝斯enity中有这么一个属性,大家看这个。叫什么意思,Deleted就是是否删除这个属性,什么意思呢?我在这里边给大家写一下啊。我画张图来说明。它表示什么叫做逻辑删除。挑这里啊,逻辑删除,那说一下什么意思啊,说到逻辑删除就不得不提一个叫物理删除,咱先说什么叫物理删除,然后再解释逻辑删除,物理删除大家可以理解为就是真正。
10:00
去删除你表里面的数据,也就是说我一执行之后,表中数据就没有了,就类似于我现在比如说把这条数据给它删掉啊,一删它就不存在了,这个叫物理删除。那什么叫逻辑删除,这里特别强调啊,因为实际中我们一般用的都是逻辑删除,它的含义就是我实现了删除操作。但是呢,这个数据它还存在,只是说我这数据查询不出来了,这个叫做逻辑删除,说的通俗点,逻辑删除的本质其实做的不是删除,而是一个修改操作,它是通过一个标志位。来实现这个逻辑删除的效果本质上是做的修改操作。说的具体点,比如说我现在约定。这个零代表没有删除。一代表已经删除啊,当然你可以是别的值啊,我就以零和一为例,那这个时候我要删怎么做?就把这个值改成一,就表示已经删除了,而这个属性,比如我们叫意思d deletet等。
11:15
写一下啊意思delete。就根据这个字段属性,如果它是零,表示没有被删掉,如果它是一,表示已经删掉了,咱们在查的时候只查询这个值等于零的数据,这个就叫逻辑删除,数据还在,但是你查不到了,因为我只能查这个值等于零的数据,这称为逻辑删除。那这个怎么做?给大家具体演示啊,因为实际中一般都是逻辑删除。我们的做法就是,因为咱们用的是my plus里边给我们做的封装,它的做法就是第一步你在表里边加上一个逻辑删除标志的字段,我已经加过了is d delete的,然后在这一类中加个属性,这咱们也加了is d deletet的。
12:03
加上之后在这个属性上边特别注意啊,咱要加一个注解,这注解是MP封装的,就是它。Table logic,它表示进行逻辑删除,加上它之后就可以了,然后之后呢,我们来做个测试,试一下这个效果,咱们就做一个删除操作。我这里写一下啊。删除操作,删除呢,我们先根据ID进行删除。Delete ID。在里边加上啊,Map中的方法叫做delete,白地里边传入一个ID值,咱就传个十了,把它删掉,最后返回的还是影响行数,这个我就不输出了啊,咱直接看效果是怎么样,这就是删除的写法调方法实现,只说我加了一个属性对应这个注解,然后它就能实现逻辑删除。
13:04
那咱们测试一下啊。大家看啊,就是这么来看啊,我这条数据ID是十,它目前的值是不是零,如果一块删掉之后,这个值会变成一。打麦测试看结果。等他定出来啊,啊,咱们都知道实践嘛,是检验真理的唯一标准啊,那那通过事实来说话,看他最终是怎么样的。大家看啊,最终成功了,然后咱们仔细看啊,你看他做了什么操作。是不是就是修改操作呀,把这个值改成了一到表里边看一下。是变成了一啊,现在就完成了逻辑删除,而我刚才提到了啊,逻辑删除之后呢,咱们查只查等于零的数据,一的数据就查不到了,那这个怎么做,MP给咱封装了,不需要咱们再去关心,我现在啊,直接把咱们第一个方法查询,所有的方法咱们执行一下,看什么结果,就看他查出的是哪些数据。
14:10
等他执行啊。大家看啊,大家看,先看结果,最终返回到应该是有这么三条记组,就三条记录,管理员,总经理,决策管理员,也就是说这套数据没有查到,因为他已经被删掉了,咱们看他的语句中。看到这里的吧,这各位应该能看懂啊,什么意思?是不是只它等于零的这个数据,一它代表已经删掉了,这就是逻辑删除,而逻辑删除中我课件中也特别提到了,就是它默认情况下,零代表没有删掉,一代表已经删除,当然你可以改这个规则,比如我约定啊,十代表没有删,11代表删掉可以,只一般咱没必要改,用默认就可以了,默认情况下零代表没有删,一代表删掉,如果删掉的话,这数据那就查不到了,这就是逻辑删除,根据ID进行实现。
15:09
这个我们就讲到这里,然后这个之后呢,下边还一个操作就是批量删除,这个我就直接复制啊,咱们试一下这个效果,因为这个比较简单了。咱们直接拿过来。大家看啊,什么叫批量删除呢?比如说我现在啊ID删,每次只删一条记录,我现在想一次性删这么两条记录,或者删三条记录,那怎么做用批量删除进行实现,这就是批量删除,然后他怎么做调用delete bench ids里边注意啊入是一个collection集合,我这里简单构建一个集合,比如里边我写两个值,你就来一个一和二。把这两个数据给它删掉,现在肯定都是逻辑删除,那咱们试一下效果啊,就把ID是一,还有ID是二的两条记录我们都给它删掉。
16:07
等他执行,看结果。大家看啊,最后反应结果是二做的是阿威的修改到表里边刷新。咱们看到啊,很明显两个值是变成了一,所以以上就完成了MP实验这数据库的删除操作。
我来说两句