00:00
好,那我们刚才讲的my be该如何处理模糊查询,那下面呢,大家来看一下咱们的第二个问题啊,叫做批量删除,那批量删除大家应该都见过,对吧?比如说呢,我们在一个邮箱里面,然后咱们的每一个邮件信息前面都有一个复选框,然后呢,当我们把这些复选框选中呢,来点击删除,然后就会把选中的这些邮件信息全部都删除掉。OK吧,好,那所以说我们现在要想实现这个批量删除的话,那我们的SQL句该怎么去写呢?大家想一下,那我们是不是可以这样去写delete from,表明while ID等于一,OID等于二,OID等于三,那当然呢,我们是不是在学习my circle的时候,大家也学习过这个in这个关键字,对吧?那这个关键字是用来干什么的,是不是就相当于咱们的or对不对?比如说while ID in,一逗号二,逗号三,它就相当于while ID等于一,OID等于二,OID等于三。
01:01
OK吧,好,那所以说我们现在买be,要想来处理咱们的这个批量删除的话,那他该如何进行处理呢?来下面大家来看,首先咱们先在我们的map接口中,然后把我们的方法来写一下啊好,大家来看。呃,首先呢,然后咱们先把注释给写上啊,这个来实现的是批量删除,然后下面咱们的返回值是int。然后方法名咱们就叫做delete more叫删除多个OK,然后既然我们现在要来使用while ID in这种方式来删除,那我们所传输过来的这个参数是不是就要满足我们这个SQ句的条件,也就是说我们要删除的时候,咱们的条件是每一个ID中间用逗号进行的分隔,那所以说呢,那我们是不是在这传输过来的应该也是一个ID拼接之后的结果,对不对?好啊,然后在这咱们加上一个a per也叫做ids,然后把这个circle句呢在我们的映射文件中,然后来写一下,大家看啊,好,首先这是一个删除操作,所以说咱们用到的标签是delete,然后方法名呢,要跟咱们SQ句的ID呢保持一致。
02:15
然后下面咱们来把circle句写一下,Delete from,表明T_user,然后while ID in,然后括号,那这里面咱们来获取我们传输过来的这个参数的话,咱们就有两种方式,首先第一种呢是井号大括号,第二种是Dollar大括号,那我们在这应该用什么呢?大家来想一下,如果我们在这使用了井号大括号的话,那大家想。那我们当前呢,咱们的井号大号是会自动加单引号的,对不对。那我们把各个ad拼接之后的结果加上一个单引号放在咱们的括号中,那这个SQ句它能不能来正常执行呢?首先大家看,比如说我们现在咱们来找到我们的circle样,咱们把这个circle去呢,来测试一下delete from,表名T_user,然后while idin,然后括号,然后大家来看,那比如说我们在这就写一个单引号,一逗号二逗号三,对不对,然后下面我们来一个F9执行,大家会发现这个CIRCLEQ5句啊,它在我们的my circleq里面来执行的时候,它是会直接报错的,为什么我们在这加上一个单引号,大家注意啊,因为我们的井号大括被解析之后,它是不是本身就会加上一个单引号对不对?那所以下面我们再来测试一下咱们的这个功能,大家来看啊,好复制一下。
03:42
好,然后咱们的方法名咱们就叫做test delete more OK,好,然后下面咱们来调用的方法是不是应该是map.delete more,比如说咱们在这就写个一逗号二逗号三,好然后这三个数据呢,是不是在数据库中只有三存在,那所以说咱们到时候能删除的话,也只会把这个三给它删除掉,对不对?然后下面大家看它的返回值是一个int类型的result,好然后咱们可以把它给输出一下啊。
04:13
行,下面大家来看,我们现在如果来执行咱们的这个S口语句的话,它会不会有问题呢?咱们来执行,大家来看啊好。大家看没有任何问题对吧?但是大家都知道我们刚才已经把这个circle语句写到了我们的circle样中,它是会直接报错的,但是呢,我们现在通过my bet来执行的话,它并不会报错,但是他所得到的结果是我们想要的结果吗?并不是。大家来看,当我们通过井号大括来实现批量删除的时候,虽然说我们的SQ就没有报错,但是最终它更新的结果呢,是零,那也就是说明受影响的行数是零,而我们当前传输过来的一逗号二逗号三是要删除我们的ID等于一以及ID等于二等于三的这三条数据的,虽然说咱们的一和二不在。
05:08
没有,但是咱们的三这条数据是有的,但是它在这能删除吗?删除不了,为什么?因为它的格式不正确,我们要想来使用while ID in的话,那括号里面咱们是不能加单引号的,所以说在批量删除的SQL语句中,大家注意我们是不能来使用我们的井号大括号的,大家只能来使用谁啊,都大括号,好,这个时候我们再来执行,然后大家来看啊。好,我们当前咱们的SQ语句没有任何问题,对不对,对吧?好,然后这个时候咱们更新了几条啊,更新了一条,因为123咱们只有三是在我们的表里面的,所以说我们现在咱们来刷新一下之后,大家会发现三没有了,那不就说明我们当前咱们的批量删除成功了吗?对不对啊,这个大家一定要注意,批量删除为什么不能使用我们的井号大括号,就是因为井号大括号会自动加单引号,而这样的circle区它是不正确的,所以说它是无法实现批量删除的,那所以在我们的my be在使用这个well ID in这种方式实现批量删除的时候,我们只能通过Dollar大括号来获取参数,而不能通过井号大括号来获取参数,这个大家注意啊,好。
我来说两句