00:00
那接下来呢,我们把这里边儿去完成。啊。那要是不遵守规则,用了大驼峰,是不是默认转就会?出错啊,那你那如果说你写的是大头风啊,一般没有扎病写大头风吧,那如果真的你是大头风,那你就加参数呗。对吧,那那你就写这个on thego to,这个lower came,然后呢,再来一个参数,Under theco to,这个叫什么叫Apple camel。你再搞个参数,就是你要你要越灵活,就是我刚才说的嘛,你想这个东西写的越灵活对吧,那你传的参数就会越多。是不是啊,你传的参数就要越多,就是这个意思,无非就是这个点没有什么其他的好吧。呃,那接下来咱们来写这个东西,这个呢,我们就写一个注释啊,第一步对吧,这是创建集合。
01:01
用于存放。结果数据对吧,好,这是最后一步啊,但是第几步我也不知道,那就。返回结果对吧?好,那中间我们把它写一下,第二个第二步我们应该做什么事啊,那就是预编译circle对吧。预变一好,那接下来执行。因为我们这个这个里边你就没必要写问号了,你说在这里边拼接何必呢,你在外面拼接好给我不就行了吗。对吧,没必要在里边并天啊,那执行。查询。第四个那都执行了,那我们就遍历这个查询结果,将每行数据封装成T放到集合吧,对吧,那就是边利。查询。急。查询结果集。对吧,将每行数据。
02:03
封装为。T对象。并放入即可。对吧,啊,并放入集合,OK,这是我们做的事情,最后呢,诶返回结果集合里边,那我们现在是不是就是这五步啊,比较简单对吧?啊,但是真正写起来比较麻烦,因为有涉及到T嘛,对吧,但是步骤上比较简单,就这么五步对吧?好11S,这个我们之前应该写过,对吧,无论是。Peni斯那边建表语句还是说最后写出去在那个dim think当中,对吧,Think方式里边写出去啊,什么都用到了,那就是connection.statement写这个circle加V。得到一个这个内容对吧,那这边异常。这边的异常我们是不是可以抛出去啊,我们可以抛出去啊,呃,到时候统一再说吧,统一再说啊,第二个执行这个查询,那就是prepare statement点。
03:04
Circle。XQ的query对吧,执行这个查询操作啊,Q号加V得到set。结果集好,那这个东西怎么遍历,还有没有同学记得?是不太记得了。这个东西怎么便利是不是都忘了啊,没关系,我们就直接写了啊,这个你要是想了解的话,你可能会要回头看一下JDBC的一个课程啊,那这个它是这样子的,WHY。直接写好,那这个里边呢,再去获取这个是便利行啊。但是我们一行里边是不是可能有多个列啊,对吧,那取列的数据怎么取呢?Set点。
04:01
Get,比如说我也不知道什么类型,那我们就直接get object。对吧,那我这边传12345,他从一开始的对吧?好,那关键有一个问题,你12345也不太合适吧,你知道几个列吗。你也不知道,而且呢,你还要把这个列。跟这个地方对应对吧,还要判断这个是否要转换,再给这个T对象去赋值。对吧,感总感觉这个地方这样写。好像不太合适对吧,而除了这个之外。那我们怎么写呢?首先第一个你写123肯定不行,因为你不一定三个列对吧,你可能一个列,可能五个列。那你到底写几呢,不合适?对吧,那我们得想一个办法,想一个办法啊,得知道他。到底有几个列什么情况?
05:00
啊,那你觉得咱们应该怎么办?能拿到原数据就好了。就知道有几个列了。哎,那你觉得他的查询里边能不能拿到原数据呢。其实这一块主要是大家都忘了啊,你们之前都讲过,其实可以拿到原数据啊,可以拿到原数据来看维拉赛的店。叫get made data。看见没,或者说我把这个东西写到这儿啊,属于我们编译这块好吧。对吧?好,那这边确实能获取到原数据啊,那Meta data点有什么呢?叫get column count,看见没?可以获取column count,获取我们有几个列啊,那实际上如果实在不行,那我们也可以干什么,再搞一个参数,把这个列的个数是不传进来,是不是也可以啊。
06:11
对吧,我们把列的个数传进来,但是呢,其实就像那个姚总所说,对吧,如能拿到原数据就好了,他能不能可以,他确实可以拿到原数据,好,那我们就知道列的个数了,我们在里面是不是可以做裂变率啊,4.2对吧,做裂变率。逆变率怎么来?那就是负。I循环count。对吧?好,那这里面呢,我就可以获取这个数据了,不光可以获取数据来看啊,Meta data.get column name啊,那I加一注意啊,在我们的JDBC里边,所有都是从一开始的,你遍历这个I从零开始,但是呢,我得从一开始,对吧?这个呢是column name,好,那接下来呢,通过result set。你有两种方式获取数据了,那你看啊,Get object。
07:05
第一个可以获取,也写I加一。啊捏写I加一,第二个呢,叫column label,那什么列名对吧,那我们也可以通过column。Name来获取。啊,也可以通过name来获取,获取我们的。Value,好,那这是获取我们的信息对吧?那接下来有个问题,我们获取信息不是目的,目的在于要把这个内容放到。封装为T对象,大家想是不是?我们要把这个内容封装为T对象对吧?好,那你说这个T对象应该在哪构建对吧?赋值又在哪赋值。你你说在哪一行对吧,T对象在34行对吧,还是这个37行,还是说这个。
08:06
四十一四十二在这儿还是说在在45,还是说在在在47对吧?哎,那你说在哪一行去构建这个T对象。我们应该在哪一行构建这个T对象呢?大家看一下。对吧,诶没毛病,37行对吧,因为这个第一行便利,我们要将每一行都封装,为什么T对象,所以在这儿去构建T对象,而在这儿是不是给它赋值,在这个位置给它干什么,加到集合对吧,在这个位置。构建T对象。
09:04
好在这儿。给T对象。负值对吧,好,那在这个位置干什么事啊,加T对象加入集合。没问题吧,啊,应该在这每一行数也都要加进去,好,那这个T的项怎么构建呢?就用我们刚才这个东西来构建了啊。CRZ点六。二加位得到一个T。啊,这个异常,我我我先抛一下吧。对吧,因为工具类的异常,之前就跟大家说过,我们再抛一下,我们直接抛个大的。Exception可以吧,直接就搞个大的,别,别搞那些乱七八糟的,这样就看着舒服一点对吧,要不然一直给我飘红很不爽啊,到处都是一条对吧?那我们就直接抛个大的exception啊,但是实际上生产环境当中,你最好不要这样抛,对吧你。抛的更小一点,可以精细控制,对吧,万一你未来调用这个工具类的地方,它可能还有其他异常呢,对吧,我就图简单一点啊,那给它赋值,给它赋值之前是不是要对它做一个加工了,对吧?啊对它做一个加工啊好,那这边if。
10:09
刚才讲什么on the school to camera,对吧?如果为true,那么我们就要把这个列名怎么样改一下。啊,因为一般数据库里边呢,我们都是这个下滑页命名,看要不要转换对吧,那如果传的是这个处,那这个怎么转换呢?其实用的是谷歌的一个工具包啊叫kiss。Format看。谷歌common.base基础保底价的对吧?好,那这个呢,来点开它其实是一个枚举,其实是一个枚举啊,那这里边有这些个类型看啊,第一个中杠。小写的。中杠。看见没小写的中杠啊,好,第二类啊,中杠其实在Java当中用的其实比较少。用的比较少啊好,那看这个啊。
11:04
小写的下划线C加加的变量命名。C加加里边变量喜欢命名这个啊,那Java里边变量是不是头风啊,C加加里边可能就那个啊,就是习惯上命名,就是你怎么命名都可以对吧?好,那接下来呃,小写的驼峰是Java里边变量的命名,看见没?对吧,比如说诶va开这小小通风Java变量命名啊好,那接下来还有这个大写的。驼峰大驼峰,那这个很明显是类名吧,我们类名是不是Java里面类名这样定义啊,看啊Java和C加加当中关于类名的定义,对吧,类名。好,那还有。Apple on什么呢?大写的下划线,这个很明显,一看就是常量吧。是不是常量的命名方式啊,Java里边看啊,他说Java and c加加里边constant常量的命名对吧,就是这只是一个习惯,当然你不我那有人说我就不不这样。
12:04
对吧,我就非得不这样,我随便我这这个东西。我用来做变量,我也不是常量对吧,就是用来做变量可不可以啊可以,但是习惯上命没吧,对吧,所以我们现在要将什么,要将下划线转化为驼峰好,那下划线呢点。Lower小写的下滑键吧,Lower on the。点to啊,转成什么呢?Kiss form.lower camera转成小驼风,对吧?要将这种转成小作风好,第二个还有个参数要转的three。对吧,那就是column name本身对吧,点to low case这样子更保险一点啊,加这个对吧,因为前面咱们写的是什么小写的下划线啊,所以这边呢,我们就转一个小写。啊,整个小写这样更安全更保险对吧?好,那咱们列名就搞定了,然后呢,Value就搞定了,注意啊,注意你不要把这个东西之前就有同学犯过这个错对吧。
13:06
诶,我我删除太多了,不好意思。你不要把这个东西干什么写到这儿。能明白吗?你要写到这那就完了,对吧,因为你万一是处,你改了你这个东西改了你这还能获取到值吗。获取不到了对吧,所以切记你获取列名之后直接获取谁呀,我们的值啊,当然如果这写的二加一,那无所谓。对吧,你通过位置就获取的,无所谓,如果你通过列名获取的,你不要在获取值之前先把列名改了,OK吧,好,那接下来给T对象赋值,列也有了,值也有了,怎么赋值呢?这是个T对象对吧?T它有set方法吗?没有,早就说过了,它没有get set方法对吧?那这个边呢,也要通过一个工具类来实现这个功能啊,那叫B。Youus。
14:00
就是commons b you这个包下的啊,然后点set property,好,这里边要三个参数,第一个招聘。并对象对吧,第二个name列名第三个value。第三个value OK,好,那我们对象是T,列名就是column name,而这个值呢,就是value。这就Y6这边呢,用了两个。没大家没用过的一个。API。OK吧啊,但是呢,它并不难,你看一下啊,这个是S方给它设置值啊,那将T对象加到集合,那就是list点。把这个加进去就好了,最后呢,返回集合对吧?好,那我们把这个整个的,呃。做一个。处理。C。Out,加T啊,我加一个try finally。
15:02
加个finally,呃,为什么加try finally呢?因为这个东西啊,还有这个。这个东西是不是正常的,如果发生异常,咱们得关一下对吧,啊,这两个东西它属于这个资源啊,If result set,它不等于,那那without set.close啊,因为异常我们抛掉了对吧,那这边呢,我们做个这事。好,那咱们这样,那连接要关吗?大家觉得连接能不能关啊。在这个地方咱们的连接能不能关啊。
16:00
能不能?那也就是说这里面还有个连接,我们也给它关了。连接不能关啊,为什么连接是从外面传进来的,你要在里边关了,你人家怎么用啊?对吧,比如说你有两条数据,我在open方法里边啊,构建了一个连接,对吧,然后呢,呃,在下面调用的时候,这是正常的map方法,对吧。好,这边有AB2条数据,A来了,来了之后呢,你访问完之后,你把连接怎么样关掉了,那B来了怎么样连接没了呀,因为我在这儿构建的连接呀。对吧,这个不能关连接不能关啊,那这两个可以,为什么呢?因为他俩怎么样。啊,这个其实好像是没有什么意义的。
17:00
啊,他是。啊,直接这样写了啊,直接这样写了,但是这个不爽,我们还是这样写吧,因为我们猪肉都写好了啊好,那这个链接不能关啊,因为在外面构建了,所以呢就不能关了,OK,这块呢,咱们就搞定了。
我来说两句