00:00
好,我们继续往下面写我们的代码啊,下一个呢是创建表格啊,我们呢,直接到idea里面来编写这么一个代码啊,把这边呢折叠一下。好的,下面呢,我们直接来写啊,Public static啊,那创建表格呢,它也不需要有返回值,我们就写一个void啊,叫create table啊。啊,括号,然后。大括号啊。嗯,在后面这个位置呢,我们要给它填写对应的一个参数,对吧,那我们创建表格需要哪些参数呢?诶回到shell里面可以来回忆一下啊,你可以调用help。诶,然后呢,单引号c create这里呢,会给我们展示创建一个表格的时候能够填写哪些内容啊,可以看到啊,这些API呢,非常的多啊,那为了应对这么多的一个方法啊,我们在代码里面肯定也要有足够的一个空间,然后你去填写这些东西啊,那它基本的内容呢,就包含有命名空间的名称,表格的名称以及列足的名称,对吧,我们I创建表格呢,需要加列足吧?啊那我们对应代码里面先把这些基础的信息给填上。
01:14
等到了某些特定的位置可以添加特定的一些方法的时候呢,咱们再给你写一些注释啊,首先string。Namespace啊。然后逗号啊,分割开来,在string啊,String里面呢,有table name。啊,带逗号,再往后呢,我们需要有列足的名称,对吧?它除了呃命名空间和表之外,还需要有列足吧,它这个列足呢,呃,可以是一个,可以是多个,对吧?啊,它是允许有多个的,咱们呢,先想它的类型,它应该是spring,然后是column。MN啊,Family啊,Column family对吧,就是列足的一个英文单词啊,那对应的它如果既可以有一个又可以有多个的话,其实啊,咱们在Java的代码里面呢,是有专门的这么一个东西来接收这种不确定个数的一个,哎,参数的它叫可变参数对吧,你加上三个点就可以了,那表示呢,这个column family列足是一个可变参数啊,那对应的呢,咱们也把这个形式给改一下。
02:19
改成一个复数的形式啊,Column families啊好对应到我们这边啊,可以给它填写上对吧,这个叫创建表格啊创建。表格对应下面这叫命名空间名称对吧?哎,空间名称这个呢,叫表格名称啊,在下面这个叫列足名称。可以有多个。可以有多个对吧,好同学学把表啊这个方法的文档注释写完之后呢,接下来你们开写正文的一个内容啊,首先呢,第一步还是去获取in,获取in啊叫connection点。Getin啊,点返回得到这么一个in对象,好在这个对象里面呢,它就会有对应的方法去创建这么一个表格啊,咱们给它打上编号。
03:10
好,对应这边我们写上二点,这个叫啊调用方法创建。表格好,咱们使用in呢,去调用里面的方法,它有一个create table的一个方法啊,看名字就知道,Create table一定是创建一个表格啊,创建一个这个表对吧?好,它在可table里面呢,我们先使用最上面这个API啊,后面这些东西呢,咱们以后用到了再给大家说啊,那第一个API呢,就要创建一个tableo,要填写一个参数叫表格描述啊,那咱们对应的就要去找这个表格描述还是一样的,我们先来new一下啊,Table disco,好,一旦我们new呢,我们发现有一个问题了,它是一个。等一下啊,这个点下来呢,它会有点卡啊,因为呢,它是一个接口啊,你在用这个接口的时候呢,Idea默认给你识别,为了你要创建一个匿名子类啊,我们CTRL加Z给它退出来之后呢,它就爆红了,因为这是一个接口,对吧?这是一个interface是一个接口,我们没有办法直接去new一个接口啊,那你说我们应不应该写一个匿名子类呢?哎,相对来说啊,我们在使用别人API的时候呢,是不要这样去用的啊,他肯定会给我们留有对应的一个方式去创建这么一个东西啊,我们之前呢,就已经在h base的API里面见识到了建造者模式。
04:28
对吧,之前就已经看到建造者模式了,那这里呢,同样啊,它使用了相同的一个规格,还是使用建造者模式,所以咱们只需要写上2.1,这个叫什么呢?叫创建表格描述。对吧,它使用的是建造者模式啊,叫table啊,Table builder啊,专门有这么一个类叫table description builder来创建不同的一个子类,相当于你不用写匿名子类了,你直接在这个build里面告诉这个设计师怎么怎么样,然后让他去给你创建一个子类啊,相对呢,比匿名子类要更方便点,也更灵活一点吧。好在这里面呢,我们可以写一个new build,先把这个建造者呢给它造出来啊,这叫创建表格描述的。
05:09
建造者。好在这个建造者米联里面呢,填的是一个table name啊,这个table name咱们就很熟了,前面已经用过了,对吧?它有一个方法叫table name.value of里面填上字符串叫name space逗号,这个table name就可以了,我们点啊返回就得到了一个table builder啊,不要把这个名字改成一个小T啊,然后你下面再遇到再写个T1T2啊,不要这样去命名,加上代码呢,有一个特点啊,初学者呢,会觉得这个特点非常的。讨厌啊,就是它的代码写的很长啊,但是当你写多了,加入代码之后呢,你就能感受得到它很长,但是它很温柔,你写起来费劲了,其实也不是你写的idea推断的,对吧,但是你读起来就方便多了啊,写起来费劲了,那相对应的读起来就方便,它不像一些比较简洁的语言啊,你比方说一些脚本语言,Python啊,还有一些这个函数式编程语言,死干了啊,那简那简洁的语言呢,它写起来方便了,但它读起来就费劲了,那同理呢,我们在写这个名字的时候,你也不要图简洁啊,我们尽量的写的长一点,建明之意,一下子就能知道它是一个什么东西,就叫它table builder啊。好,有了这个建造者之后呢,咱们再往下。
06:23
啊,就可以对这个建造者呢,提一些参数啊,叫添加,哎,参数对吧?添加参数,那我们能添加什么呢?很明显我们能添加一个列足嘛,列足信息还没往里加呢,啊,那这个table build里面,它就有对应的一个方法,可以往里面site column family添加列足信息啊添加这信息对吧?Set column family啊,它底下呢,还可以有一个set column families啊里面呢可以放一个集合,这两个方法其实是一样的。其实没有什么区别啊,一个是单独放一个,一个是放一个集合啊,我们呢,推荐你一个一个放啊,不要着急一个一个放,为什么不放集合呢?你看里面就知道了,你你放集合的话,呃,它里面也是一个这个特定的一个对象,不是说你你把直接这个集合放进去就行了,那不行啊,这个类型呢是。
07:13
字符串的一个数组,这个类型是专门一个类的一个,呃,专门的一个类对象对吧,它的集合呢,也是一个类对象的一个集合啊,你还是没有办法对上号了,我们一个一个来放就可以了啊,一个一个来加。好,那么首先呢,往里面添加的就是这个column family,你可以看到又进行了一个描述啊,因为表格里面的原数据参数啊,它比较复杂,它分了好几层啊,分了好几层,先有一个表格的描述。表格描述里面嵌套一个列足的描述啊,一个表格描述呢,这一个表格描述可以对应多个列足描述,那我们为了实现这个对应关系呢,你要需要在前面加一个for循环,对吧?我们这个column family啊,它可以调for循环,里面就有这个column family,我们一个一个往里加就可以了,对吧,把每一个列组信息呢都给它加进去。
08:05
好,那再往里面添加的时候呢,要按照这个格式来,还是要使用建造者模式,那就是2.3啊,这个叫创建。啊,叫列族。描述,那你在创建列族描述的时候,你会发现它这个列族描述啊,Column family。Co Co。啊,写错了Lu啊好,Family第呢,它也是一个接口啊,那么写出来之后发现它也是一个接口,并且它的格式跟我们table的格式呢是一样的啊,毕竟一个作者写的嘛,写顺手了啊,两个就写一样的,它这后面的格式啊,基本上都是这种类型啊,我们呢,还是要使用这个建造者啊,叫family。Builder见造者,第二它里面呢,还是会有这个new一个builder啊,格式都已经很统一了,New一个builder,在builder里面填一个bit数组啊,填一个BY数组,BY数组呢,会给你返回一个列足描述的建造者啊,建造者模式嘛,再进行一层嵌套啊好,这个里面呢,写一个BY数组,而我们原来的类型呢,是一个字符串,虽然我们经常说啊字符串可以当做一个BY数,但是你不能真的把它填进去,那类型还是不一样的,对不对,我们需要去转化一下啊,把一个。
09:21
字符串呢,转化成一个BY数组,方法有很多啊,我们这里呢,就不推荐你自己再去写方法了,你可以使用base,官方给我们提供的叫bits啊,它专门有这么一个对象叫bites啊,这是它YouTube工具类里面的一个类啊,工具包里面一个类,第二它有一个bites to。啊,都转化为一个坏啊,专门有一个工具让它转化成一个。But,数组啊,在这里面呢,你可以填字符串啊,填column family对吧?啊填这个column family,好,你填入进去之后,点Y返回,你就得到了一个column family describe build对吧,这么的一个建造者的建造者。
10:01
好,有了这个建造者之后呢,你就可以对应当前的这个列足添加参数了,2.4叫对应当前的列足添加参数,好,马上就到了我们这个地方,就跟我们的shell命令对应上了,你看我们的shell命令在每一个she命令里面呢,创建一个列足的时候,可以对应的在后面写一个参数,哎,这参数呢,就是当前列足的参数,我们之前呢,演示过创建的版本,对吧?在查看的时候也有说啊,除了版本之外呢,还有非常多别的一些东西啊,只是呢,咱们还没有讲深层次的原理,还不知道,咱们就先写这个版本,好,那对于这个地方呢,它也可以添加一个版本参数啊,我们案例呢,就是演示的一个测试呢,就是添加版本参数。啊,添加版本参数,你可以通过它不同的列足设置不同的版本参数啊,那我们这里呢,因为没有把这个方法写这么细,对吧,你可以是一个列足一个版本,一个列足一个版本啊,咱们没有写这么细,那就直接使用这个东西来给它添加一个总的版本啊,它里面会有叫set。
11:08
That that里面呢,会有一个version啊。Max version对吧?来set max version啊,设置一个最大版本啊,在这一个设置最大版本里面呢,我们可以填啊,你比方说填一个三啊,那它就是三个版本对吧?啊三个版本好这里面呢,我们点啊啊不用点啊返回了啊,你设置完了嘛,就是设置完了啊,给它添加一个参数对吧?添加版本参数啊,它也有一些别的参数,你都可以去添加啊set。这里面还有一些别的参数啊,什么block size啊,Block enable啊之类的啊,这些呢,咱们还没学啊,所以这些别的东西呢,咱们就先不介绍啊。就先使用这个。这个东西啊,咱们填一个五,跟我们呢下命令呢保持一致,也填一个五个版本,好,当你把这个参数填进去之后,它在里面set column family的时候呢,就使用这个建造者呢点。
12:04
Build的方法,它就给你返回了一个对应的子类啊,给你返回一个对应的子类,相当于还是匿名子类的创建,只是它内部呢,已经给你封装好了啊叫2.5。创建啊添加完。参数的列足。描述对吧?啊,那给它添加就行,我们写了一个放循环,不断的往里面添加列读描述,添加完之后,这个表格的描述就已经整理完成了,那在这个地方呢,点。Build对吧,这叫创建。嗯,给他写上一个标题对吧,嗯,叫二点。三啊叫创建啊对应的表格。描述。对吧,那在这里呢,我们就创建表格成功了,那再往下呢就知道了,对吧,那就是三啊关闭阿米。啊叫in点。
13:01
对吧,啊,那这个结构呢,就已经写完了啊,那按照咱们前面的这个异常处理的规则呢,这个地方还是给它。啊,包裹起来,那创建表格可能出现什么异常呢?其实跟咱们之前已经写过一个类似的创建命名空间创建表格吧,啊差不多的意思,我们sod直接输出这个是表格已经存在嘛。对吧,啊,已经有经验了啊,表格已经存在对吧,那底下这个异常呢,跟上面这个获取连接的异常,我们直接给它抛出去就可以了,那这个呢,就是我们创建表格的一个API,写完了之后呢,我们马上来测试一下啊,在这个底下。这叫测试创建表格啊,在这里面呢,我们调create table,在里面呢,我们来创建一个新的表格啊,这个命名空间我们可以写一个新的,对吧,比方说艾特硅谷咱们刚创建的,在这里面给它添加一个。逗号啊,Student啊。再过来需要写上列足对吧,叫in啊,可以写多个,咱们来写两个RMSD。
14:05
好,那这就是我们完整的创建表格的方法调用啊,来试一下效果怎么样啊运行。上面这个创建表格是否存在,就打印一个布尔类型,不影响我们看代码啊,这个呢总是会报错,我们就给它注掉,这个呢你可注可不注啊,也可以给它注释掉,我们只看我们测试的这个创建表格就行。好,还是要稍微等待他一下啊,它这个获取连接呢,因为我们啊,不是一个实际的应用场景啊,如果实际的应用场景呢,你再获取完一次单立连接之后,应该一直挂起不动的啊,我们这个呢,没办法这样做,只能每一次呢,在ID里面跑一遍,他每次都要获取一个连接,稍微花点时间,好他已经打印完其他代码了,说明这个create table啊已经跑完了,那跑完了之后呢,我们来到这边啊,你对应的去调。List就会发现这里面已经有了艾特硅谷student这么一个表格了啊,那我们创建表格呢,就已经成功了啊,这是我们创建表格的API的一个编写。
我来说两句