00:01
OK来,那么接下来的话呢,我们再给他说第二种情况就是多个参数啊,对于这个多个参数来讲的话,我们其实就不用去管它是什么类型的了,只要你参数的个数是大于一的。对吧,就是大于等于二的,那么它的处理情况都是一样的,你不用管它是什么类型的,听明白了吗?只要你个数是大于大于这个一的,也就是最最起码得有两方,那么这种情况下就是多个参数了,它的处理都是一样的啊,那么怎么处理呢?我们先不看这个地方是吧,我们先来测试啊,你看到这个错误,那么你的印象呢,就会更深一点。OK,来,回到我们的开发工具中,我再加上个方法,在这个接口里面呢,我再加上一个方法啊,我教什么方法呢?我还是去查我的对象,但是我这一次查的时候呢,我不仅要通过ID,我还要通过一个拉name去查,就是我要通过两个参数去查好,那么第一个我就是D类型的ID,第二个就是string类型的last name看到了吧,OK,这个方法的话呢,我们也需要去对应的写上一个映射,好,那我就加到最下面来吧,写一下这也是一个select,然后呢方法名。
01:15
这呢就是我们的ID值,那么这个里面呢,我们必须得有一个result tap查询的话呢,你必须要去指定这个什么result tap明白吧,为什么呢?因为他充当的角色是一个结果级的映射类型,你必须得告诉买be,你查到的这样一条数据要封装成什么类型的对象,能听懂吧,你传的参数它能根据数据推断出来,但是你查出来的结果就数据数据库里面查出来的结果,他是不能去推断我要给你封装成什么类型的,你必须得手动的指定。听懂了吧?OK,这个也要强调一下啊,好,那么这个位置我们依旧指定的就是我们的employee类型吧,来把它拷贝到这,好,Employee,那么这里面我们来写一下select ID last下划线内email,好,真的from t BL employee where ID等于井号大括号and什么呀?Last下发3NAME是不是等于井号大括号啊,对吧?OK,那么我们应该是很顺其自然的,就什么这个位置我又写了个ID,这个位置我又写了个last name吧。
02:28
是不是,哎,我很顺其自然,我就写成这个样子的了,OK,那么接下来我们来测测测试啊,好回到我们的测试方法中,那我再去写一个方法,好测试我们的就是我们的这个参数啊,好加上我们的test,这里面的话呢,基本的代码我就不写了哈,像这个代码我就直接拷贝了,对吧,应该大家也都能诶。好,拷贝一下啊C,好,这个的话大家应该也都没啥问题了,是吧?来我们写一下,好把这个呢写到这,然后呢,接下来我们就有个异常给他说明一下啊好,接下来我们就来try finally,然后呢,把我们的呃,Session给他什么关一下啊,3.closeok关一下,那么这个位置的话,我们来获取我们的啊employee member啊这个再来写一下。
03:32
3.getmap,把你的map.class呢给它传进去,好传进来以后呢,我们再去调用方法了啊,那就是map点,比如说现在我要干嘛呀,查询了吧,Get employee by ID and last name,好,我来查个数据,比如说我们查谁呀?呃,我们查这个。就就就1024吧,好吧,就差1024啊来ID是1024,好last name呢,就是我们刚刚写好的是吧,OK,就把它写到这看到了吧,然后呢,最后呢,给我返回一个employee对象,好,我们来输出一下这个employee对象。
04:16
OK,把它写到这儿来吧,测试一下。好,然后呢,他抛了一个异常出来了,看到没有对吧?什么异常呢,我们就来看,他说哎,你这个permit ID not found是不是找不着啊,然后呢,后面还告诉你我允许的参数是什么呀,零一或者什么PAR什1PART什二,你看明白没有对吧?他说我允许你使用这几个参数,而这个你自己写的这个ID呢,我是找不着的。听明白了吗?OK,好,那么这就是我们现在遇到的一个问题,那为什么会出现这个问题呢?我来给大家去解释啊,就是因为多个参数呢,买be呢,都会把它重新封装成一个map,也就意味着你传递的每一个参数,将来呢,买be都会给它什么封装成一个map来进行传递,那么对于这个map的封装来讲,我们就必须要去关心它里面的key了吧。
05:12
是不是OK,那K是什么呢?注意它所使用的K呢,默认就是012等等等等等等,或者是P1P2等等等等等等等等,能理解这个意思吗?因此呢,人家在这个地方提示的我们这个是正确的,你看了哈,我直接把我这个位置呢给它改一下,比如说你不说能使用零跟一嘛,好,那我改成零,那我把这个呢改成一。好,再来测试一下。大家来看成功了没有,成功了吧,我们看Co里面这个数据是给查回来了,对不对,或者说呢,你看我还可以把它改成什么呢,P1这个位置呢,哎,PAR2。好,改成这个拍什二也没问题吧,能看到吧,这个好,再来查一下,我们看这个效果。
06:07
你看一下是不是也是能成功的呀,对不对啊,所以说呢,大家就要记住了啊,对于这个多个参数来讲的话呢,我们确实是要做一个特殊的处理了,它会把你的每个参数呢,诶重新进行一个封装,我要在底层的封装成一个map,而我封装这个map的时候呢,我们就要使用到一个K,这个K呢,默认它使用的就是PER1 per2,一直到PN,就看你有几个参数了,或者说呢,我会使用一个012,一直到N减一,对吧,也是看你有总共几个参数,能听懂这个了吗?OK,那么我们在取值的时候呢,就得怎么取人呢。好,那就是井号大括号你就不能随便写了,要么就是012,然后呢,等等等等等等,一直到N100,或者说是不是PARA1,然后呢P2,然后呢,什么等等等等,是不是一直到PN啊这个能退出来吧,可以吧,好那么这就是我们传递多个参数的时候,我们需要哎注意的问题,取值的时候呢,你就得这么去取了。
07:17
听明白了吗?能理解吧,OK,好,那我们就来想一下,我现在两个参数,那我还行,我能记得住哪个是哪个,假如说我有20个参数呢,你从零一直写到19啊,你从P1一直写到P20啊。很麻烦了吧,对不对,OK,所以说呢,哎,我们就希望说能不能有一种更加好一点的方式啊啊,它也是有的,那么接下来就来给大家去讲这个命名参数啊。
我来说两句