00:00
OK,继续我们看一下刚才讲的呢,呃,讲了一个什么呢?讲了一个如何使用BUBU就是处理抓B的,好了,写完这个之后的话呢,我们翻过来再看DAO,那先前呢,我们搞定了一个方法,可以根据传入的class circle跟填充呃,单位符的这个可变参数获取一个对象,现在我要想获取一种对象,那跟先前那个方法比的话,我们需要做哪些改?需要做哪些改动呢?步骤的话呢,我就不一个一个复制了哈,我们看有哪一块需要做改动呢?嗯,这块是移动一个单位吧,一个单位不行了吧,第七步需要改动一下,前面不是一样的,不一个一个说了处理它不能是移动一个单位了吧,使well循环吧,使用well循环好必须的好了,用while循环的话呢,在这之前呢,我们已经搞到了这个,嗯,Result set me data,然后用well循环,那我前面有一个脉部对象,那一个脉部对象标记的是。
01:29
一条记录吧,我多个卖出对象。标记的是。啊,错了啊,一个map部对象标记多条记录,那多个记录的话应该是如何来标记啊,多个map对象吧,再说一遍啊,前面的话呢,我们的一条记录啊,是用一个map部对象来标记的吧,那我要多条记录呢,是不是多个,是不是多个漫对象啊,所以说这一步啊,你们也需要来写一下,T,这是第五步,CTRLC一样的,我不写了啊,只写不一样的,第五说准备一个map,一个map不行了。
02:13
应该什么呀个啥呀。能看懂不?就把map放在一个list里边就好了,其中一个map对象对应的一条记录,其中一个map对象对应着。一条记住好了,那然后的话呢,我来处理它水不循环,第七步使用完循环之后的话呢,我们,哎,由这个得多少列,这是一样的,第八步一样写了哈,第九步得到每一个列名,由这个。得到具体的值,其中外部对象也一样,跟第第11步不行了,第11步12步我复制一下这一步,12步跟以前不一样了,前面一样哈,前面一样,这个干燥。
03:13
好吧,第七步第八步一样,第九步一样,看第九个是什么呢?跟成外部对象是一样的,这个也一样,第11步啊,在这儿呢,第11步之前重新写。看这第十步配充外部对象,他没有没问题,我听完外部对象之后,我应该怎么样把填充好的麦广对象。放入五准。List中吧是吧,好了这个贴完之后的话,然后呢。
04:01
12那我现在我觉得是不是什么呀,我有的是这么一个东西,然后12看判断。List中是否list是否为空集合,为空集合若不为空,若不为空,则变利则。便利什么样?得到一个一个的。Map对象,然后像哎,然后再把再把一个map对象转为一个对应的。准备一个什么,准备一个这个class。
05:04
参数对应的object的对象吧,是这样吧,我一个map准备一个class对象,我们这边是不是已经搞过了,OK,第13步。我一个map有完都准备了,明白了,把object对象放放。放入到什么里边呢?因为我这个我反过的是一个list,我得这么写,等于六。哎,我把握的是他二刚list,就是我最开始声明的list,好了,这就是整个的步骤,跟先前不一样的地方有这样的几个,第一个不一样,以前是准备一个map,因为以前我是一条记录吧,多条记录,准备一个map的集合。
06:12
好了,然后呢。我们以前是一条记录,我直接做一个set.next就可以了,现在是多个,得用循环。好了,学完之后的话呢,我还是哎一条记录一个map,这个没问题,然后的话呢,我需我需要把那个一条记录那一个map放到这个list里边去把一条记录。把一条记录的一个map。对象放到这个里边,至于说一条记录这一个map如何处理,我们这边是前边是不是已经讲过了呀,然后这个搞定之后的话,然后我再把这个list map转化为list t吧,然后一样的是吧,我需要便利这个list得到一个一个的map,再把这个map转为class对应的object,这这边是不是讲过呀。
07:21
反射就是这个过程吗?在哪呢?那不在这呢吗?一个处理的一个处理的,就这么处理,反射创建一个对象,然后遍历填充,再把这个对象放,放什么里边啊,放到这个里边吧,然后再返回就可以了,那五七十一,12 13跟以前不一样,其他的都一样。大家需要把前面的知识呢,这个再回顾一下,然后把这个方法写完,OK,写完,这我们写完。
08:01
前面的步骤我们就直接写了啊。再看。
09:03
汉军中开位服。嗯。然后结,结果急。哥,你刚在什么地?这块实际上可以已经可以写这个了啊。
10:29
He does that Meta STEM。好了,没有循环。好。把一条技术对应的map。
11:01
啊,里边里边有步骤呢是吧。呃,我们将如果要是有的话,能碰见一个卖。这个map的话呢,因为每次我都需要来创建它,所说这个声明可以写在外边,创建放在里边。这个时候我就不用有多个变量了,一个就够。好,然后如果要是有的话,我应该怎么样,我该去进行for循环,因为什么呀,我要把这个嗯,名字都取出来,然后我们看啊,名都取出来,这块怎么写呢,这么写我先写上了,大家先看着。I等于零,I小于2SMSMD点,然后I再加,然后是基础性名白label。
12:13
等于2SMD.get column label。I。加一,然后呢,我得去取这个值吧,Object value等于点。Object加,我就要这样来写,这是一个把这个放map里边去。OK,肯定是可以的,然后的话呢,我们再写,再把这个放到什么里边去啊,放到我们这个。一个里边去。
13:00
好了,写完你先跑吧,跑完之后一起说。然后是便利if用什么呢?如果里面确实是有值的话。啊,我对他进行便利。Object。然后再便利。map.n。点ENT ENT object ENT来。map.ns,然后取得线和值。有点问题啊,这个map和这个绿的看一眼。Least。
14:02
就例子960,九百六错了。行,然后的话呢,一个一个来得这个值map,因为map前面是不是已经有了呀。M。啊,然后后来得这个。叫等于N点。Object y600等于NG减Y6,好了,然后怎么了,然后啊,我没有这么,没有这么一个的话呢,我就会碰见一个对象,这个对象我们说明放外边。Object b等于。
15:02
然后呢?Bin等于class.new同时为其属性进行赋值bin。That。Property property value OK,好之后。哦。这块注意这个它是什么呀,这B应该拿这来吧,是吧,我这一条记录是一个B呢,好了,然后把这个B再放在。最开始的那个list里面去。点爱。B,好吧,这个B需要做一个两转,实际上这个B是个什么类型呢?实际上它就是一个D的类型。OK,还有一点小细节。就要看一下,把这个返回先上去。
16:02
先这上去,然后的话呢。这叫什么呀,这叫list呢,于是我们看前面有一个地方写的不对,应该写什么,只能什么value吧,行看整么就写完了,做一个测试一会这个方法呢,需要重构一下,因为这个方法里边有一些代码可以更合理的来写测试先看效果。写一个思考。CTRLCCTRLV2去掉。全查出来吗?我需要绿类型,什么类型的等于do.for student.bus没有,打印一下有点,你看结果。
17:14
没问题吧,好几个人嘛。广西要精同学都出来了是吧?行,这样的话呢,这个就写完了,写完之后我们翻过来看一下这个方法有一些可以改善的地方,一个一个看,哎,Connection prepare statement result是OK的哈,然后获取connection,获取prepare statement天取添填充单位符,然后得到result set,创建这个list,然后呢,Me data map,然后呃,我是不是没有一条记录的话,我都得创建这么一个map对象啊是吧是吧,然后的话呢。然后的话呢,哎,我里边你看我里边我是不是每次循环的时候,我都需要去得一下这个是不是都需要去得向这个column column label啊,实际上这个值怎么了?是实际上这个值是固定的吧,所以说我们可以在便利之前把这个结果集先给它处理一下,包括前面也一样哈,然后得值往里边放,再往里边放,这个再进行。
18:27
便利,哎,整个这个过程的话呢,应该说还行,然后我们前面我们讲一个什么方法的时候,大家还记得,我们可以把这个方法呀,一个一个抽取一下,让有一些方法可以得到重用,也让整个这个代码呢,变得更加的优雅,什么叫优雅呢?过来看啊,我们代码多少行,从110行到。嗯,176行,60多行还行,不是特别多,但这个代码的确是可以进一步进行优化,于是我们看我们可以优化哪些。
19:05
就是代码可以成模块化。到这块是得到这个size,我们不打算优化,当然你也可以说,诶,我得到set这块我们优化吗?对吧,这块我们不打算优化,不打算优化好了,因为我在后边我还需要来观察好了,我得到这个result set之后的话呢,然后我们往这看,哎,我得到它之后的话呢,然后我需要得到一个什么呀,我需要把每一条记录转化为一个map,这个可以优化,然后我们看啊这个这个result set麦data的话呢,可以不出现在这,我们用这铝道塞德们亚地下物主要是干什么呀,我想得到。Column label就是一个一个的column label实际上干的事就是这个事,他有多少列,我们可以把它变成一个的一个list,那个list里边不是有吗?所以说这个可以拿出去省一省,我们来写个方法,大家看家看啊,这这块我到第139行的时候,我是不是每次都得去弄一个count,然后再弄一个label啊?
20:24
这个可以拿出来写,我们写个它,我想干什么呢?我想得到一个list,而是at label。用什么呀?用比塔S来得S好了,这个步骤在这呢。这个我需要得C来写吧,八等于61234LABEL,然后得到result set me datas。
21:23
然后怎么样异常我也不管,然后做一个循环,In I等于零,I小于RSMD点靠拢,放I加加label里边,Label里边放什么呢?字符串RSMD点艾。Label I加一,OK,这样写完的话呢,这个label就搞定了,什么呢,获取结果及。
22:15
好。对应的集合用的干嘛就这个意思好了,这个广告之后的话呢,于是看这个代码就可以省了,你看每次我都需要这样获取,这个可以不要了。我直接写个什么呢?我直接写一个list。Column table等于at table without without在OK这个写完之后的话呢,这个中文代码可以省怎么写呢,这样写。
23:02
点size是谁是?Labels are at。那就可以后边这个值呢,可以这样写值,我是不是可以用column label去获取啊,Column label要是这样式的话,这个代码还可以再省一省,我们是不是可以写成正常后循环了,真的。好猫黑后边是猫黑就可以省掉啊好了,这是一个地方,是一个地方,这一个地方搞完之后的话呢,我们继续。我们看啊,我们看哎。我这是一个什么呢?这是一个啊结果集,我对这个结果集进行建立的时候呢,我可以由这个结果集得到什么呀,我可以由这个结果集得到一个对应的map的list,再说一遍哈,我可以由这个结果集得到一个对应的map的list,整个这个都可以拿来写一写这个,一直到这儿。
24:23
过来抽出一个方法来。OK,你看放一个结果集进去,出来一个什么呀,出来一个map部对应的list,我们这个方法叫。A handle fully is outside too。Map。好等一下好了块怎么了,这块的话呢,我就可以方法我理解这样。
25:01
然后写哪这这是什么呀,说处理结果及处理结果即得到。啊,Map的一个list,其中其中什么呀,其中一个map对象对应一条记录啊,这个时候你看这块的话呢,我就可以往外拿。这个搞了哈,但是德主顿塞这玩意不能省这个搞定,这搞定之后的话呢,然后它是什么呀,然后我考虑我要把这个转为一个对象,把这个转为一个对象的集合,这块我们还可以再写啊对。把这个转为一个对象的接口,这些一直到这儿。
26:02
再抽取,抽取成方法好了啊,但是这个写法有点问题啊,这个回来不应该是一个T这个我们这个我们一会一会再改它呢,是啊转换。Map to list。OK好了,它这样转这个方法我们看一下返回的应该是啊T,这是一个泛型是吧,我说的是什么呢?我把一个。什么进去啊,我把一个这个类型的它传进去,我应该返回的是一个,他看返回的是一个D,我希望这样的一个效果,然后我们这块写一个啊。
27:04
New,然后result ctrl c ctrl a,这个可以不要。这个餐可以不要。好吧,这样写完之后的话呢,我希望它返回的是它完了在这看。写完我看这个方法啊。这是我需要返回的值,这是我ctrl shift f,这是我需要返回的值,需要返回list,这是一个一个T,然后进行便历,遍历的话呢,得到一个一个的这个bin,然后的话呢,把这个B一个一个放到list里边,这个返回,然后回来它需要怎么写啊,这个就不要了,是谁?这就是我上面的OK。
28:06
好吧,这个时候这个代码就比较的整齐了。好了,我们看一看总的步骤是什么样的,总的步骤第一步得到得到结果及。第一步第二步。到这块都到结果集啊。啊,第二步是处理结果集得到什么呢?处理结果集得到。一个map不对应的例来处理结果集得到哎结果集结果得到外的list,其中一个map对象就是一条。
29:17
记录吧,是这样吧,然后呢,Map的。Result set中列的别名。Map的value为列的值吧,OK,好了,第三步。第三步,把这个。List map。啊,List转为转为谁呢?转为classy对应的集合好了,其中其中什么呢?其中我们说了,啊,其中这个map的key即为。
30:19
Classy对应的对应的。对象的。Property name or map的。Value即为对应的对象的property value。好哎,这就是整个的过程,给我再做一个完整的可以,所以说这个时候怎么样,这个时候这个方法的话呢,变得更。整洁那几个步骤嘛,是吧,那你给我传了circle过来的话,理所应当应该得到一个结果集,然后这个结果集是什么呢?啊,这个结果集呀,我可以得到一个map对应的list,然后呢,我再把这个map对应的list转化为整个的LIST1转就可以了,好了,这个写完之后,我们再看这个,这个可以怎么了,这个可以省一省,虽然说我们开始我们有一个版本是吧,这个最开始的步骤干掉。
31:31
获取result set必须的。就你知这个事啊,整不了。好了,那你说老师我把这个我取出去也可以吗?也可以传一个connection,传一个prepare statement进去是吧,用一个接口机也可以好了,我们看后边这个步骤,后边这个步骤的话呢,我可以给他省一点写。还有好多哈,拿掉。
32:08
或者说或者说这个我是不是获取一个对象,是不是获取一个对象,获取一个对象的话,我们整个都拿掉,有点有点这个崩溃是吧,能都能拿掉,能拿到啥意思,我底下这个是不是获取一组对象啊,我直接就。嗯,得到一个list,看看T,然后呢,我要获取一个对象it t,然后是result,等于get for一样的is。If什么呢?点大于零,我就点零是不就可以了,然后return好,哎,底下那个就统一起来了,测试。
33:11
来这是干的概方法一个的啊,或着是没问题啊,这是一组的一个的一组的,我们这样写。Student这个方法呀,加上一个换行。再回来,再回来,这是一个的。这是一个对象,好了,这是一组的。是不是多个呀,答案是没问题的,那这个时候的话呢,或者一个方法比前边有进一步的优化,好了,你应该说写起来的话应该更清楚,但是我分我分出了一个一个方法,哎,更值得我们去看,好了,大家把这个代码看一下,然后你也像我这样来推介一下。
34:12
好,我们再来看一个方法,Do里边最后一个方法叫什么呀?叫get value get value是什么意思呢?比方说嗯,我来查。总的记录数,或者说来查某一个人的这个ID号啊,这样的一个效果,这个如何来写呢?结果集没办法是吧,我从结果集里边只需要取一个字段的值就可以了,步骤。第一个步骤。当结果。D。第二个举得结果及啊。
35:03
这个结果集应该是是什么样啊,该结果集的样子应该是该结果集应该只有一行,只有比例,应该这样,取得一个结果应该是这样的,所以说。就是取完之后我写一下看,大家看一下来,比方说那个。ID from customers。是不是只有一行一列啊,那我要的就是这个值或者是什么呀,或者是select。让它2D等于五。
36:03
这快捷键完不了啊,快捷键摁的话,视频就停了啊,或者是它或者是这样,所以说我叫的是这样一个值,它只有什么一行一列,那写吧,整个这个架子跟这个架子还一样。CC。ABC court release。
37:04
写完那一行一列,于是写if if什么呢?Side。那要是有的话,我直接返回一列的值就可以了,来。你看。怎么get?啊,不是一做一个相转就完了。你好,你列吗?你有托个列的话,我反问一个,好测试一下。等于来我想查一个exam from。
38:00
Exam。OID等于问号。Exam。等于DA点。Value口。第五,个人的看。啊,这个我还可以获得一个统计信息。Like must。
39:02
Exam点最高分,最高分应该是耀金的是吧,才得了100分。好,再看。100这最高分不是两个100的,来我第一个分啊,降一降第一个分。91的分一降一降啊19。好的。你好。是不是99啊,这样就写完了,就是我们的get和value方法好了,那到这块的话呢,我们整个这个dau这个方法呢,呃,算是比较的完善了,那这个DA,我们这个DAO呢,是可以拿来直接使用的,是可以拿来直接使用的,比方说哎,我想来进行更新的话,传一个circle,传一个A,我想来这个获取,呃,某一个对象的话啊,我传这些参数,我来获取一组对象的话,传这些参数,我想来获取某一个值的话,哎,还可以来传一个参数。
40:32
OK。
我来说两句