00:00
好,那咱们来看一下这个工具类啊,那为了完成刚才我们所说的给泛型赋值以及头风命名之间的一个转换,对吧,那我们要导入两个依赖啊,导入两个依赖啊。嗯,那一个呢,是这个。瓜吧,这个东西呢,大家倒是见到过对吧,那我们用这个31.1应该也可以啊这个。啊,也有官网这个呢,它是谷歌的一个工具包,诶,可以实现我们下划线跟这个驼峰命名的互相的一个转换啊好,那么第二个。Com啊,这个呢,因为我们呢是一个泛型。到时候这个T呢,也是个泛型对象,泛型对象当然我们知道它没有get set方法,对吧,你要赋值的话,你得借用一个工具也比较麻烦,对吧,所以呢,我们就直接用一个工具类,就是它叫commons并优啊啊是个招聘的一个工具类,对吧,可以给这个招聘赋值,包括泛型对象的一个招聘赋值啊,所以呢,有两个这个工具类比较方便一点。
01:06
呃,那么接下来呢,我们。来写这个代码啊,第一步创建结合用于存放结果数据对吧,好,那后面呢,返回。集合啊,最后呢,你要把这集合返回出去对吧?好,那这边呢,我们又有一个a list对吧?List,那这边呢,呃,当然是T啊,当然是T了啊,卡加菲得到一个without。围绕最后呢,我这个。Without。啊,把这个结果呢给他。返回啊,给他返回对吧,那么中间我们要写的就是用连接。去执行这个搜狗语句。拿到这个结果。对吧,拿到这个结果以后,诶,把每一行数据呢,给它封装成我们替对象把它放到这个集合里边。
02:05
对吧,我们要做的这个事情好,呃,那这边呢。我们肯定就查询对吧,编译。Circle。语句好,那就connection.prepare statement,诶,把这个查询的circle放进来,这边异常呢。我们可以去怎么样?抛一下对吧,之前我们说了工具类里边异常嘛,那你可以放在呃,抛一下对吧,让外面谁调用的人呢,谁去取就好了。对吧,谁调用谁去取啊,还是我们之前那个逻辑对吧?啊,那接下来呢,编译思考了,我们就执行查询对吧。这个地方也没有说什么占位符赋值啊,因为我们这个so呢,你就应该把这个查询的与全部封装好,给他传进来查询,对吧,你不要还搞封号,搞封号也没有用啊,这里边也没有东西给你赋值对吧,你说这边搞一个封号,然后呢,在后面搞一个什么集合传参数。
03:04
何必呢?你不如在外面给它封装好再传进来对吧?好,那就是prepare statement.query啊,这是一个查询语句,得到这个result set啊,那接下来呢,我们要。便利。结果即。啊,然后呢,将每行数据转换为。T对象。并。加入。集合对吧,好便利,While set next。啊,然后呢,我们要把这个内容封装成T对象。啊,要封装成T对象,好,那接下来呢,有两个问题需要我们去思考,第一。T对象怎么构建?对吧,那当然用到它第二个就是它的一个负值对吧,你T呢,假如说是一个Java并对吧,那我result set里边呢,我能获取到值,这个获取值呢,倒还好,Result set对吧点。
04:14
Get object哎,我从一对吧,2345这样去获取啊,但是呢,有几个呢。对吧,你可以写12345COLUMN index对吧,关键的问题在于我。这个我到底查询的字段有几个呢?对吧,你到底写一还是二?写到五呢,写到十呢。不知道。能明白。那我们应该怎么办?
05:02
对吧,那首先呢,我们要构建这个T对象对吧,泛型对象,第二个呢,我们要给这个泛型对象的赋值,但是赋值呢,用我们com b u那工具类啊,到时候我们再用就行了,关键问题在于那。你查询的结果当中有几个列呢?对吧,你有几个列呢,我怎么知道呢。啊,这个就涉及到我们要去前面拿一下了啊,在这边获取原数据信息。获取查询的原数据。信息对吧,这里边儿有我们的列信息啊啊without set。Get。Made it?啊,然后没date点。哎,这里边呢,就有几个列,看到没。就可以获取到我们查询的有几个列,那这个就好了,我们就不用写12345了,可以遍历。
06:05
对吧,好,那在这边呢,我们写一个for I循环I小于come。对吧,好,那这个注意啊,这个便利是便利结果集,哎,那也就称为这个叫行变利对吧,这个地方便利呢,我们是对列的个数进行变变利,对吧,这个呢是列变利。双重变列啊,先遍历行对吧,一行数据呢,可能有多个列,所以呢进行列遍历,那我们要的是将一行数据封装成一个T对象,所以在这个位置呢。构建。创建对吧。T对象啊,那CLZ点。6INFANTS。得到一个T对象异常,我们还是一样抛下啊。呃,那接下来呢,在这里面列遍历,遍历好之后呢,列边历并给。
07:02
这个T对象负值对吧,负好值以后在这个循环外面,那我T对象所有的列都补充上了,然后在这边这干什么事呢,将T对象。放入。集合对吧?哎,我们要做这个事情好,呃,那这一步呢,比较简单,result.a。T就好了,关键问题在于这里边儿我们要去。取这个列的信息了,对吧,那这个还好,因为你取列值的话,我有I嘛,对吧,我有I啊,关键在于还有列名,因为列名呢,很明显作为我们这个类型的。属性名对吧,而列值作为我们这个属性值啊,是这两个东西,所以呢,我们要获取列名与列值。列明啊,那我们有这个。
08:00
M点。Get对吧,好哎。看你了。啊,穿进来。对吧,好,那接下来呢,还有一个就是我们要获取这个列值啊,当然这个里边啊,我们从原数据当中去获取这个列名获取到了,对吧,接下来呢,获取列值,那直接我们result。三点。哎,这个怎么变成这个样。The get object对吧,这里面呢,可以传一个index。啊,可以传一个index啊,也可以传一个什么列名啊,那我们就直接传这个列名。砍一个列名,这样的话,我们把列名跟列值都获取到了,哎,那有同学说了,呃,接下来呢,我们就可以把这个。封装到。T对象里边了。
09:01
接下来我们就应该可以封装到TC项里边了,注意还有一件事,别忘了这个有可能要转换,对吧,所以呢。呃。判断是否需要。进行。下划线。命名。下划线与驼峰。命名转换对吧,啊if。叫on the score to camel对吧?如果为true,那说明要转换。啊,那要转换,那怎么做呢?这个用k form,注意是谷歌这个包下的,就刚才我们导的那个瓜网那个包啊好可form点我们要把下划线命名转为驼峰命名,对吧?呃,那我们怎么做呢,这边。啊,Case for这个地方呢,有很多的,诶这是一个枚举啊,那么来看点开。
10:00
点开好以后呢,这里边儿有这几种类型啊,我们来看一下对吧。第一个这是什么呢?这是中杠。啊,第一个呢是中杠,看见没。第一个是中杠,诶中杠的命名方式对吧?呃,第二个它叫什么?叫小写的下划线,诶就是它。小写的下划线对吧,呃,这个呢,多用于什么。C加加关于变量的命名。对吧,好好,大家来看小写的驼峰,小驼峰,哎,首字母小写这个。后面的单词首字母大写补充对吧?这个呢,用于Java当中变量的命名,看见没。Java当中变量的命名对吧?诶告诉你了,然后呢,还有up开大头风,诶这个这个很明显命名什么呢?累的吧,看啊Java或者C加加当中关于class类名的定义对吧?好,那接下来还有一个叫up on school大写的下划线,这很明显定义什么。
11:13
常量类常量的吧,看啊Java和C加加当中constant常量的命名。对吧,因为是常量命名啊,这当然是通用的一个命名规范啊,只是一个通用的命名规范而已啊,那我们呢,有可能要做转换,那我们要把这个驼峰啊,不把这个下划线转成驼峰,对吧,那我们写。点。Two。对吧,我们要转转成谁呢?转成这个kiss for me点我们要转成小头风对吧?好,第二个参数呢,要一个SKR字符串,对吧?那我们转的是这个column name。好,那接下来呢,重新。赋个值对吧,把这个呢转一下,诶把这个下划线命名转成驼峰,但是呢,这边我们还有一个事情要做一下,因为我们要对应的所有的JDBC,呃,那在菲斯里边呢,它的命名方式是大写的,所以呢,呃,这边呢,我们把它to lower开,呃,Lower lower这个case对吧,因为这儿我已经写了是。
12:20
小写的下划线对吧,那你在Phoenix里边呢,很可能是大写的下划线啊,所以呢,我们这样转一下啊,接下来呢,负值。赋值,那T对象呢,你又没有什么set方法对吧,所以要用到我们刚才用的那个BU啊。b.set property,诶给它赋值对吧,这里面呢,要。三个参数,第一个。第一个。对象对吧,第二个列名,第三个列值,那我们刚好都有了,对象呢是T,列名呢是column name啊列值呢,哎,这边我们要得反回值啊,CTRL加V得到一个Y对吧。
13:03
列值呢,就是咱们的。Value,诶这边呢,可能有这个异常对吧,抛一下。好,那这边呢,咱们就搞定了。啊,就在这块对吧,我们就封装了一个很通用很通用的一个工具类的方法。对吧,啊,未来只要是JDBC,你可以拿my circle或者拿这个,呃,Phoenix去测试都可以啊,去测试都可以,好,那这个呢,我们就。好,接下来呢,做一个测试,那这个时候呢,我们要去开一下这个集群,对吧,我先把HD打开,然后再到这边写代码,因为HDFS呢,退出安全模式,它呢需要一点时间,对吧,所以呢,我们就先去。打开一下啊。嗯,我打开两个。这啥?要更新是吧,那先不管了啊好,那这边呢,我们先去开启HDFS对吧。
14:06
好,那再加上写代码那边呢,让他自己就退出这个安全模式就好了呗。PVM。对吧,好,那这边呢,我们先去获取一个连接,连接到咱们是不是有这个德鲁伊的这个工具类啊,创建这个连接池对吧,加V啊好,那给source点。嗯。Get。对吧,获取到我们的一个连接啊,这个呢。异常我抛大一点吧,因为等会呢,还有异常对吧,直接抛一个一个except啊,大家V得到我们的一个连接啊,得到我们一个连接对吧,接下来我们要去使用这个链接去查询对吧,有query list。Connection啊,第二个参数呢,四个语句啊,第三个参数呢,是一个。对象。大的class对象对吧,那咱们呢,也没有写招聘,那就像有同学说的,那杰森object其实可以的,对吧,点class。
15:07
呃,最后一个是否转换,那我们先不转对吧,我们先不转来看一下这个结果啊,点so,对吧,呃,打印一下这个结果啊,那最后呢,我们可以把这个connection点。Close对吧,给它关掉啊,给它关掉对吧。好,那这边呢,应该已经差不多了,我们去稍微搂一眼啊,看有没有退出安全模式,退出安全模式之后呢,我们再。哎,特安全模式,你启动这个哎CK啊,差点忘了。ZK,不,不行,我们是它依赖于HD和CK,对吧。好欧model。
16:02
Phoenix对吧,啊,那I呢,也要等到他退出这个,呃,当然他不是这个安全模式的,他呢是出手了。嗯。已经OK了,所有的都是在线的对吧,那我们就不用管了,我们直接进来啊B我们找一张表来写一下对吧。感叹号,Table select from。这个库点,嗯,比如说这张表啊,这张表里边我们有几条数据啊,是不是有两条诶就是一条吗?哪张表有多条啊,我们要找一个多条对吧。他这个一呢。也只有一条吗?二呢,都只有一条是吗?啊,那我就不用这个了,我我我用这个了,之前的数据可以吧,我用这个啊,比如说我去拿这个开这个一啊1027啊。
17:04
我换一个。走诶这里边呢,有19条数据,这样方便我看,因为只有一条的话,你不太好看结果对吧?呃,或者说我们用这个吧,这个数据好像还是有点多对吧,我用这个。这样更好一点,为什么呢?我为什么要挑这个啊,你看啊,他呢,你转不转你看不出来,只有大小写对吧,他呢你就能看出来,因为它有下划线命名啊,到头风命名,所以用这个更好一点,13条数据啊用这个。把它拿过来。往那一放对吧,当然你这得到一个集合,你去遍历打印一行一个也可以对吧,或者让我们换一下啊。
18:03
这样也可以对吧,好,那这样就是逐行打印13条数据对吧?来我们看一下这个啊。A index。啊对,这个这个漏了啊,呃,之前提到过,在我们GDBC里边所有的角标都是从一开始的,对吧,都是从一开始的,刚才我直接get到L了啊,直接改到L了,都是从一开始的啊,这角标所有的角标都是从一开始的,大家注意一下,所以呢,嗯,你有两种改法,一呢,你把这改成一,把这加一对吧,或者呢,直接在这加也可以啊,那这样的话,我们就拿到了这个数据了,对吧,现在呢,我写的是。Force对吧,所以呢,它命名看啊,是不是还是保持原来的命名啊,在Phoenix里边长什么样。那你读出来它就是什么样,对吧,那比如说我把这个改为处,你看一下。
19:05
运行。看那个。是不是变成了这个驼峰命名啊?是不是变成了驼峰命名对吧,刚才长得还跟他一样呢?TM下划线对吧,那现在呢,变成了小驼峰,哎,首字母小写,后面的单词字母呢大写。首字母大写对吧,在这啊,好,这是我们所看到的一个点啊,当然了,你也可以这样写啊,呃,Will。ID。等于。有几啊,有一对吧,啊,这个red me红米对吧,我们就只要这一条,那可不可以呢,对吧,也行啊也行。
20:02
看。只有这一条,一红笔这一条对吧,当然了,你这个搜索语句如果是count新。对吧,抗的心一般呢,我们取一个别名叫CT对吧,这边呢,也不要这个什么VID等于一了,哎,你是一个抗的心来运行。CT13只有一条数据,看是不是也能表示啊,所以我们说了这个工具类呢,就非常通用,只要你是查询那都能用,对吧,当然你也可以写一个招聘。啊,比如说招聘呢,里边有ID跟TM这两个字段对吧,然后呢,你谁那新,然后把这个东西封装成一个招聘也可以。也可以对吧,那到这块为止呢,咱们的这个工具类就写好了啊,咱们的工具类就写完了OK了。
我来说两句