00:00
那基本上呢,我们,诶刚才呢,提到的这些result set hundred这个时间内呢,就能够满足我们日常的需求了,哎,就能满足的需求啊,那如果说呢,没有一个能满足的,没有一个能满足的怎么办呢?自己写一个是吧?啊自己写一个怎么叫自己写一个呢?就是这个result set handle呢,它这个接口这里边呢,提供的都是这些具体的实现类了,就是你要不满意是不是自己提供一个时现类呗,比如说。比如说看着啊,我现呢自己写一个我CTRLC一下我CTRLV,诶通过这个呢,大家也去了解一下它的那些实践类的那些细节是什么啊,你看啊,这是相当于是我们诶叫诶自定义了一个result set handle的实现类啊。哎,咱们自定一个,你看我怎么做这块呢,咱们就先不做这个事了,嗯,然后这个呢,也没有,嗯,这个呢,Query啊这个这个整个这块也不要啊,这个也不要。
01:01
哎,主要呢,就是调这个questionry操作,这里边呢需要传一个handler,然后后边呢,还有这个对应的障碍符,咱们呢就查询,比如表中一条记录啊,哎,这个select ID name。Email first,哎,From customers where ID等于占一,哎,还是这个circle啊,这个对应的ID,哎,咱们还写23了啊。现在呢,需要一个康,没有,我也不想用现有的。那你就自己提供一个。啊,自己提供一个的话呢,我们写一个匿名,诶或者一个显示有名都行,这块呢,这个接口的时间类我就匿名了啊,那这块我就声明为叫result,哎,Set handler对吧,Result set handler看一眼它呢是有一个泛型的。那发型的话呢,咱这块其实封装呢,就是个对象了啊,那我这就一起整一个customer。哎,这我就要handler,哎,右边又一个,哎,那你既然是一个自己造的,咱们就一个匿名时间类了啊result set handler这样子这样子这样子对吧,还记得吧,嗯,然后呢,你在这个大括号里边整一个回车,是不是来提供它这个接口的那些重写的方法了,那这个里边咱们需要CTRLC把这个呢也补充上啊。
02:26
嗯,好点一下,这个就多说一句,就就是这块呢,你看我们省略了它就报错了,你看目前呢,这块是报错的情况,哎,以前呢,咱们提过说左边呢声明了是customer这个发型了,说右边这个不就可以省略吗?那个是针对于咱们这块,不是实现类了啊,你要就是一个普通类是可以省的,但现在呢,你是要提供它的一个匿名实现类了,这个时候呢,在我们JAVA7当中,它还不能够识别,呃,应该是在十,诶,我没记错的话,应该是在十这个版本当中,这个位置就可以省了,现在呢,你还得把这个customer呢,给它补进去的啊。
03:05
好,然后这块呢点一下,哎,那庆幸的是呢,它里边就只有一个抽样方法。哎,叫handle啊,那么这个方法的反位值是卡什,哎点一下点一下啊,点这不行点这。这个就是我们要重写这个方法,这是T,这个T呢就是由我们这个决定的,所以我们刚才在这声明这是customer了,所以这就是customer。哎,这个我们CTRLD一下写完了,我就想写return是吧,哎,我就想写return行在这块呢,做这个查询,CTRL1得到一个customer,诶我去打印一下这个customer,诶你说这个结果诶找一下。哎,是不是就是个no啊,也就是说呢,咱们这个方法返回的这个对象啊,这个其实就是作为我们这个query的这个返回值了。
04:01
这个方法呢,就调用了,你可能看不出来,那咱们自己在这写个这个输入语句啊,我写个叫憨豆代跑一下。那你会发现呢,这个方法执行过,也就是说这个方法的返回值其实就是我们这个query的一个返回值。嗯,这个呢,你能看到这调用,或者说我们这块我我不这样写了,我也不return到了啊,我呢就return一个,诶你一个customer,我在这先造个对象。ID给我写一个12内幕啊,比如写成龙email。成龙叫Jacky是吧,是这样写吗?这样吧。哎,假设就是这个是吧,哎,然后birth,哎,这个我们就去扭一个,诶date了,诶这个我就写一个值啊。
05:02
嗯。你看啊,我这块return的这个呢,跟你这个查询SQ其实没有任何关系,呃,就现在我给写死了,写死以后这是我们再去查询一下,你看这时候呢是呃是是于小飞呢,还是成龙呢。其实就成成龙了是吧,哎,就说白了就是我们这个结果集,结果集已经放到参数这了,只不过你就没有用啊,你就相当于给大家固定写死了,那其实相当于我们就可以演示一下这个bin handle了,它是怎么做的,Bin handler是怎么做的,其实这个结果就已经摆到这了,其实就相当于咱们原来自己写的一样,RS点叫next,你这里边呢,是不是就get一个int,诶诶你看你这块这是一是吧,或者我们这样写也行,就要get ID了,诶CTRL1一下这个我们就拿到ID了啊r.l get一个呃,Spring。哎,这个呢叫内幕。哎,这呢,我们就得到了一个name了。
06:03
哎,Get,再来一个string,哎,Email。哎,这个有一秒get一个data。诶,这里有我们一个birth,诶然后呢,诶我们自己去拗了一个,诶customer。接着呢,把你查询到的这个结构集当中这个字段呢,给它封装在一起,诶生成对应的一个叫customer,如果没找到呢,没找到你就now。嗯,这个我们在这写这个no啊在这里边,诶,我们也一个。哎,这样写的,哎就是其实呢,我们拿着这个SQL语句,人家给你查的这个结果呢,是放到这了,哎就是正常来讲的话呢,我们应该是拿这个结果机呢,自己给它装一下发回一个对象了,哎这个对象呢,就是我们这里边接收到的这个对象,所以呢,当你这块写的23,诶我们这查到呢,其实就是23的这条记录。
07:04
OK,哎,这不就一小飞吗?诶,其实这块呢,我们写的这个自己定义的一个handler啊,就叫匿名的一个接口的时现类了,这其实就是相当于我们自己把那个b handleler呢,诶给他提供了一下。你想对吧。啊,那个b list呢,B list这块呢,放在customer,其实这块返回的就是customer构成一个list了,诶所以呢,你这块诶添加得到一个以后呢,我们再造一个list给它一个个往里面加,最后呢,这块返回的也是一个customer构成的一个list,诶仅此而已。啊,诶,通过咱们自定义的这种方式,诶大家呢,对上边这块呢,有一个诶更好的理解就行,这个呢,大家也不用刻意的去练啊,我们真正开发的时候呢,你就可以用上边的这些就可以了,啊就这些就行,那原I呢,就我们刚才演示的这个que rener,它相当于提供了通用的增删改,还有查询的操作,我们就可以替换,诶之前呢,咱们在讲。
08:03
嗯,这个是咱们相当于前一天讲的哈,在这里边讲这个,诶增删改,诶还有这个查询操作,诶其实呢,就直接的都封装在我们这个快手站当中了,诶咱们那会看了这个update了啊就里边源码呢,其实跟我们自己定义的那个主体上来讲是一样的,只不过呢,它这个建状性呢要更好一些,核心代码是一样,嗯,那么有了这个快战证以后呢,诶大家下来你可以做一个相应的思考题。啊,或者思考题,或者下来大家自己来整合一下,整合谁呢?咱们把增删改查自己写的这个方法是不是封装到base do里了,那你这个base do里边其实这一堆东西呢,都可以给他干掉,直接用一个que rener直接掉他的那个,哎,Up这个方法其实就可以了。诶这个呢,我们就不写了,其实呢,就改了以后就比较简单了,那么你可以参照一下,你看我这写的这个D,这个base子do啊,这个base do,那这里边不就是这样做的吗?上面一样啊,这个update其实就是咱们写的那个通用的增删改的操作里边的话呢,诶我就直接用一个que re调update就行了,咱们自己在这啊预编译SQL语句填充占位符啊执行,呃查询的话呢,还有这个结果集的处理,诶其实呢,都直接封装一下就完了,哎结构呢就更加的简洁了,哎就这样处理就可以是吧。
我来说两句