00:00
已经通过我们的卡夫卡消费者呢,把数据给他拿到,并且打印在控制台上了,你打印在控制台上,这仅仅是我们看到的数据,但是我们真正的目的是要把数据给它传到我们的h base当中,作为一个存储,那么所以在这种情况下,我们还得跟h base打交道啊,所以跟h base打交道,这就跟我们前面讲的那个微博有关系了,因为咱们当时的微博呢,就大量的一些API跟我们的base打交道,那么我们这里也要这么做啊,但是呢,我们这里就没有那么多架构在里面了,什么三层架构就没有了,但是我们要跟HB打交道,该有的对象咱们还要有啊,所以我这里呢,来创建一个,所以点击。呃,在我这里呢,我点一下new啊,我们创建一个包,这个包我们叫DA,那就是我们没有那个controltler,没有那个service了,我这里就直接来个道,专门跟h base打交道,那么我既然要跟h base打交道的话,那么有些方法我们就需要给他封装一下,因为之前呢,我们的那个微博里面的程序啊,是我们写逻辑的时候呢,碰见一点写一点,碰见一点写一点,有很多重复性的代码,所以在这种情况下,我们要做一个简单的封装,那么这个封装呢,我们这里在common里面,我来加点东西啊,在common里面,在这个里面呢,我点一下啊,咱们这个B里面,那么这个door呢,也算是个B吧,那所以呢,我在这里面我创建一个叫做new,我创建一个类,这个类呢,我们叫best。
01:27
就是基础的一个数据访问对象啊,一个基础的,那么我们或者叫base it based stop也可以啊,这个无所谓叫什么名字啊,点击OK,然后呢,我里面要封装一些方法,那然后呢,我这里呢,给它来加一个叫abtract,表述的是这个类不能直接使用,你必须有此类来继承它来重写一些功能啊,为了达到一个这样的目的,我不是让你直接用的,只是为了封装一些方法啊,所以呢,我们写上较基础的啊,来基础的数据访问啊,我们的对象啊,访问对象我这里我记住啊,我这里并没有用interface,因为interface是一种规范,它没有实现,那所以呢,我这还不是我这有实现啊,只是把共通性的东西给它封装好啊,所以在这种情况下,在我们下面的这个位置,我们就应该准备一下了,来我们写上new啊,我创建一个咱们的类,咱们叫h base啊,我们的door,嗯,点击OK,点击OK以后,然后呢,我们这里呢,给它来我们叫继承,然后呢,我们叫。
02:27
咱们这么写。写完以后啊,来,咱们写上咱们叫做什么呢?H base的数据啊,访问啊,对象,OK,那写完以后,那我现在就准备把这个door呢,我要放到我的consumer当中,那就意味着我在当前的场合下,我要把它准备好啊来我们写上do,嗯,等于啊我们的door,然后呢,等于new我们的door啊可以了,写完了之后,那你的数据访问对象如果有了的情况下,那我接下来我就需要给它初始化一下,为什么呢?我的命名空间呢,我的表啊,现在还没有呢,我要需要初始化,把这些基础的东西都构建好,所以就跟我们之前一样,我们这里呢,写上一个我们叫做什么呢?In啊,给它一个方法,诶,好了,然后呢,有了这个方法之后,那接下来我要把我的数据给它保存到base当中,那所以呢,我在这个下面我写上叫do,我们叫做insert,我们叫做this。
03:24
啊,把这个加个S表述的是多条数据的意思,那么多条数据呢,其实我们这也不准确啊,为什么呢?因为我们其实是一条一条数据过来的,那所以我们怎么办啊,我们应该把这个value怎么办放去吧,还有怎么放去啊,所以insert data插入数据这个呢,是我的初始化这个操作咱们要知道啊。好了,那我现在呢,我们就给他来啊,咱们来创建我的method了啊,咱们这里呢叫初始花,嗯,然后呢,我有这样不太不太对啊呃,我这个地方没有,没有的话我看看啊,咱们的把这个拷贝,拷贝以后呢,把这个放过去啊,在我们的这边,嗯,给它拿过来啊,拿过来以后呢,给它放到这边啊,然后呢,这个咱不要,嗯,然后呢,我们写上啊,写上咱们要初始化,OK啊然后呢,接下来我们在下面这个地方呢,我们要insert,嗯,给它创建,咱们叫create,这个呢创建啊。
04:21
好,创建以后呢,这边我写上咱们叫插入数据啊来,咱们写上叫插入数据OK啊呃,行了,那我现在呢,我别的先不管它,我说了我得把一些共同性的东西先给它封装好,这边保证它不出错就行了,那这里我加个啊文字性的描述吧,嗯嗯,咱们叫h base数据访问对象,嗯,然后呢,在下面写上啊叫初始化,嗯,初始化这个呢,写上叫插入数据啊插入数据。好了,那我写完以后,这个里面的东西啊,我先不加,因为咱们之前写过了,咱们现在呢,先做一个封装,咱们做个什么封装呢?就是意味着呀,我要把一些基础的性的东西都给他准备好,那跟我们数据库打交道的东西都要准备好,那里面呢,咱们首先写上一个叫做什么呢?叫protected。
05:10
啊,然后写上我们的叫做什么呢?咱们叫wide,嗯,然后写上叫做get connection啊,啊叫get connection什么意思啊,叫获取连接对吗?哎,写上啊,咱们写上叫获取连接啊,获取我们的连接对象,那这个时候我们叫做它可能就不合适了,应该叫做啊,叫做,但这个connection不应该是加了点circle的吧,你又不是我们的关系数据库,应该是我们的吧,所以我们这里应该在common中怎么办?应该在common当中增加我们的依赖对吗?哎,所以这这个时候啊,正好跟前面的微博就有一定的关系了,把那个依赖呢,给它拿过来啊,咱们拷贝,所以把这些东西啊,咱们就原封不动的拿到我们的common里面去啊,放到我们的common打开,打开以后,呃,我当前的这个地方来增加,嗯,把这个拿过来好诶拿过来,拿过来以后还有我们还有配置文件呢。所以我们的微博当。
06:11
当中还有一些配置文件啊,所以拷贝拷贝之后也放到我的项目当中,我们的面,我们的resource,诶翻过来点击OK,诶现在可以了啊。好了啊,可以行,那这个咱们现在有了之后,那我的这个该connection就有了啊,然后呢,是我们的base当中的啊哦不对,我这还没有刷新啊,咱们这个common呢,咱们给他刷一下,刷新一下。刷完以后没有任何的问题了,我这边再给他来导入啊,来我们导一下,导完以后就是我们的这个connection啊,好了,我别的先不写,咱们先问问同学们,我的这个protected为什么要加上它。我加他的目的是什么?就是我希望我这个方法只能我的子类访问,我别人不让用,对不对啊,别人不让用,咱之前不讲过这个访问权限对不对,如果你封装成U,封装成个工具类,什么意思,就意味着我在任何地方都能用吧,工具类那就任何地方都能使用,这个工具就不能说只能在某些场合用,那就不对了,所以啊,如果我们封装成工具类的话,你就不能用它了啊,就不能用这个应该用public static静态的,但我们这里不是你专门跟数据库打交道,怎么可能在任何地方用呢?不可能,一般都只有在道里面去用,这样我们这里呢,给它封装一下啊,我开的,那在我这里面,我们在我们的那个space store里面就可以去使用它了啊,就这么一个操作,所以啊,在这种情况下,我们的这边啊,咱们点一下就这个啊,咱们的consumer啊点点完以后在我这边我们的它里面我的door的door在这里面就可以获取我的连接对象,但是你每一次请求都要去。
07:50
获取吗?来一次请求获取一次,来一次请求获取一次也不行吧,效率不够高,对不对,所以咱们当时讲了讲了什么呢?我们这里是不是要需要给它封装一下,在一个线程当中连接对象咱们就一个吧,对不对啊,这样的话呢,我们还是比较什么不错的,否则你来一次在一个线程当中用一次连接一次,用一次连接一次效率太低了,所以我们当时我们讲了一个什么东西呢?咱们写上叫啊,我们叫做th local,那咱们叫做th local,然后里面放的就是我们的连接对象啊connection,然后呢,我们写上啊,咱们叫做hold。
08:27
等于new我们的local,然后呢,把它放过来就可以了啊,那我这里为什么又用了一个呢。好同学,想想我这里为什么又用了一个pro,刚才用了一个protected,这里用用了一个pro,我的目的是什么?我的目的是希望我的这个不能够在别的地方访问,只能在当前的based访问吧,啊我的目的就在这儿了啊,所以在这种情况下,那我的这个get connection啊,同们他这里来啊,我们写上咱们的get connection我们就可以来了啊,咱们叫做get connection啊,它等于我的他然后呢,等于什么呀?是不是应该是我们有一个叫factor,然后DR叫,然后这边应该最好有一个什么呢?有个叫confiration吧啊,有个叫configuration啊有一个我看看啊咱们这边嗯,应该是下面这个啊,应该是下面这点一下啊,然后呢,我们的com,然后呢,等于s base,我们的config点我们的,其实你不加也行,因为它底层就这么做的啊,所以呢,把这个给他拿过来,你拿。
09:38
过来以后,然后怎么办,这个连接对象是不是应该想办法放进去,但是你万一之前已经放过了呢?所以我们这里还不能直接这么做干嘛呢?我们应该给它来,咱们叫做什么呢?先取一下,先把那个叫connection先取一下,所以啊,我们还不能直接创建啊,为什么呢?万一之前已经创建过呢,所以我们这边来点叫get啊,先获取一下,获取的时候呢,我们要判断一下干嘛呢?Connection它等不等于now,如果等于now,说明你之前从来没有创建过啊,我为了保证不出问题呢,我加一个同步啊,需要在整个过程中,你最好呢只放一次啊,你别什么时候啊,就是你多个线程一块儿来创建就不合适了,那咱们这块这么来做啊。
10:21
然后呢,把这个地方给它放过来,放过来以后这个connection呢,诶我们就可以放到这儿了,然后呢,有异常发生,这个异常给它抛出去啊,咱们的throws,我们的exception,嗯,好啊,然后呢,我们这边写上,写完以后,那接下来你的connection应该给它放到我的诶线程当中去,所以点有一个叫site,把那个connection给它放进去就可以了,放完了以后,你这里直接点return我的connection就行了啊,那这样的话,保证我们的连接对象可以获取到,如果没有就创建一个新的,如果有直接拿过去用就完事了啊,所以啊,我的connection我在我这边就应该能够得到了,所以我首先第一个。
11:05
咱们应该去什么呢?诶,开始它操作,所以我们这个地方呢,正好我记得咱们之前封装了一个叫做start和一个end吧,对不对,什么意思呢?就是我们要开始准备一些东西,还要关闭一些东西,对不对,那所以我们这里也给它来啊,所以我们写上叫protected,我们叫avoid,我们叫start啊,咱们叫开始准备好了啊,然后呢,Protected,我们叫end,嗯,有开始有结束,那么有开始的话,首先就应该干嘛呀,就是我们的get connection对不对啊,然后呢,这里我们也给它抛出去,我们叫我们的exception啊,然后呢,这个呢,我们也给它抛出去,嗯。好了啊,然后行放到这边啊好了,那首先我的start呢,就先把connection给它准备好啊,就是这样,那准备好以后我想想啊,因为咱们那个呃,Mean呢,可能用的也会多一些,所以啊,我为了方便起舰呢,我这样咱们再加一个,再加一个叫admin,把这个admin呢,我也准备一下啊来,然后呢,这个呢,我们叫adin,然后呢,把这个改一下,咱们叫admin就可以了啊好,那么这么写完以后,一个是获取连接,然后再来一个获取那个管理对象啊,所以把那个管理对象在我们这边就可以拿到啊,所以我们写上咱们叫做把Thein啊,然后呢,来我们写上我们叫getin好了啊,然后呢,这个时候把这个东西我们拿过来,这个呢是min啊,就是这些东西啊,都是我们之前就做过类似的操作,那我这边呢,就直接写就行了,然后呢,我这边这个就不要了,那我该怎么做,同学们想想。
12:40
这个时候我们要从din里面看之前有没有什么取过,如果没取过的情况下,那这我要创建个新的吧,所以din应该等于什么,它等于叫get connection吧,对不对,但是我这里不用这么做啊,其实这么做也可以啊,倒也无所谓啊,咱们这里点叫什么呢?Getin,诶这么写的话,我的in就有了,所以啊,我这里呢,再给它getin一下啊,放到这好了,所以啊,在我启动的时候呢,把连接准备好,把in给它准备好,那这样的话我们也不用它,只要准备好就可以了,在线程当中能用就可以,那行,接下来我们的end应该怎么办?End大家看想想,那是不是我们应该去关闭它呀,那么关闭它呢,这里分两个,分哪两个呢?第一个我先把的in给它关了,所以呢,我先来取额in。
13:29
然后等于我们叫做什么呢?叫get adin,哎,把这个取过来,取过来以后,如果adin它不等于now,你不等于now,说明啊,当前线程当中你的ademi还存在,那存在的情况下,来吧,点我们的close给它关掉,那么你关掉以后,这个Demi我就不需要了,既然不需要,咱们这个线程里面就不需要保存它了,所以点我们的remove,诶把它给它去掉就完事了,那同样道理,我的connection也是一样,那咱们的connection也是一样的,咱们叫做get啊get connection嗯,好,然后判断一下叫if,然后呢,我们的它,然后呢,我们写上如果不等于,那不等于那的话,那么我们这时候呢,它点我们的close啊,然后呢,我们的connection这个东西也给它来remove,诶好了,所以在这种情况下,我们这里的in呢,我就可以来了,干嘛呀,叫start叫end啊,有开始有结束啊,然后呢,我这里的这个。
14:29
道啊,我就别跟别人混在一块儿了,其实我们这里啊,看看它也有捕捉异常,那既然有捕捉的话,嗯,给它抛出去吧。咱们叫exception啊好了,那我现在的这个有开始有结束啊,这个地方我看看啊点一下。啊的么,这个地方应该是protected啊,受保护的只有子类能访问啊好了,那我现在写完之后有开始有结束,中间开始要增加我的逻辑了,那这里其实很简单,跟咱们之前讲的也没有区别,咱们之前讲的不就是我们的创建命名空间和创建咱们的表嘛,对吧?哎,创建咱们的命名空间,所以我这里应该怎么办?是不是create我们的name啊,哎,就是这个东西啊,然后呢,我再来一个什么东西啊,叫create table啊,哎,就是这样,那这两个方法呢,咱们的事先准备一下,但是这两个方法呢,又有区别什么区别呢?第一个我的create咱们的name space创建命名空间,但是有前提条件,如果你要是有的情况下,我就什么都不做,对吗?那如果你要是table没有的话,我该给他覆盖掉,对不对,所以啊,这个时候我加点东西叫NX,这个叫我叫叉叉。
15:46
你们能明白什么意思吗?不明白是吧,没有讲过这个东西吗?当中难道没有这个叫做NX,不可能叫赛呀,他叫就是没有演示过,难道这个NX没说过是吗?嗯,行了啊,那我们就直接给大家说吧,啊,就是这个东西啊来。
16:20
把这个拿过来啊,来记住这个东西呢,既然是创建,那么其实跟我们的它封装就有关系了,但是我们这个封装啊,所我们就直接来了啊,在我们这边,因为这都是共通的,你哪一个数据库的访问不创建表,不创建命名空间啊,所以这个都是一样啊,所以在当前场合下,我们的protected啊,咱们来咱们叫create,嗯,咱们叫create,我们的name space,然后呢,我加了一个叫NX啊,我加一个他,我加他的目的很简单,就是说如果你有我就什么都不做,如果你没有我的什么创建,那这个时候你是不是应该把那个命名空间给我传进来呀,对不对,你不能固定写死了,你像咱们之前是固定写死的,叫什么名字,我这儿是有一个记住啊,咱们当前的类是不是叫base到啊,你叫base到它是一个共通的,那么就不能给它固定写时了,我需要去传递一些参数进来啊,所以我们这写上来创建咱们叫创建命名空。
17:20
间啊,然后呢,如果命名空间啊,空间它已经存在啊,那么不需要创建啊,不需要创建,否则创建新的啊,创建新的就是这个意思啊。好了,那行,那咱们现在呢,就来操作一下吧,这个咱们该怎么做啊,那么我们要去创建命名空间的话,命名空间是不是应该跟admi有关系啊,那所以是不是应该是admin admin等于什么,是不是我们叫get admin呢?来把它getdin啊,有异常发生,把这个给它抛出去啊,给它抛出去好,那么抛出去以后the mean,它应该有一个叫做什么呢?叫做get,还记得吗?咱们有个叫get啊点咱们叫get names spacescript,要获取我们的命名空间描述器吧,会传一个名称,传一个字符串进来,传完字符串过来以后,这个时候咱们要千万注意了,千万注意什么,有和没有,它是如何判断的,它是有个异常发生对吗?所以啊,有个异常,这个异常呢,就叫name space not found exception,说明没找到,没找到那不就没有吗,所以我这里呢,就可以直接来了,咱们叫踹啊。
18:36
啊,记住啊,咱们这种情况下是可以给他单独捕捉的,因为我要有业务处理了啊,给他单独捕捉,如果你没有业务处理的情况下,那个异常的可以直接抛到最外面去统一做异常处理,所以我们这里呢,直接来啊,咱们这么写就不对了啊,咱们应该是只捕捉这个叫做name space not found exception,所以啊,把这个呢,我们拿过来啊,咱们叫做E,嗯。好了啊,然后呢,在这里面点,诶我一点去了啊,诶没有东西吗?嗯,好啊一点,诶把这个给它来print打印一下啊好,这个你打不打印也都无所谓,咱们只是看到一个现象就行了啊,那我诶算了,别打印了,打印还可能以为有程序出错了呢,其实程序没错啊,那我这里呢,就直接来了,咱们叫amin点,既然你发生异常了,说明你没找到,你没找到的话,我这边应该什么呢?应该给他create我们的namepa,那这个name space,我们需要传一个,传一个什么东西呢?叫name spacescript,所以把这个呢,我们放过来,放过来以后放到这边啊,我们写上叫name space,等于它等于啊。
19:42
咱们叫做new,诶翻过来啊,New应该是new不了的,它是一个私有的构造方法,所以我们这边应该有个什么东西啊,有一个看看啊叫builder吧,啊在这啊有这个东西,所以呢,我们这里呢,直接来返回,返回以后这个create呢,我们来点一下,点完以后它这里传个字符串就可以了,所以把这个nameil位置呢,我传过去,传过去以后,那这个时候呢,我的它就有了,把这个放过来,嗯,所以啊,我们现在的这个位置呢,就可以呢,去创建我们的命名空间,如果你能取到我什么都不做,你取不到,我就创建一个新的这个代码呢,咱们之前写过,所以呢,把这个拷贝拷贝到我当前的这个位置啊,但是你当前这个位置你用的时候呢,我需要干嘛呢,去完成它的一个参数的传递,那这个参数的传递我们说了,既然跟一个名称有关系,咱们这个名称还是固定的吧,所以有个叫names点,有一个叫做我们的name space吧,哎,就是它了,然后。
20:42
那点有一个叫get value啊,就是我的命名空间,如果你有好几个命名空间的话,你可以通过名称来进行区分,叫CT呀,叫艾硅谷呀,也可以自己去区分,我这就不区分了啊,好了,接下来呢,我们干嘛呢?要创建我们的表了,咱们的表不是很多,咱们就一张表,一张表就叫通话日志表啊,就叫call log就可以了,所以我们这个表的一个创建,我们这里也要写上啊来,所以我们的protected,然后呢,我们写上叫VO啊,VO咱们叫create,我们的table,我加了个叉叉,什么意思啊,表述的是如果你有。
21:25
我就应该给它删掉啊,再创建一个新的啊,如果你没有,我也创建新的,哎,就这么个意思,这个跟咱们以前的逻辑是一样的啊,在我们red当中就有这个叉叉的这个参数啊,虽然我这里写上咱们叫做string,诶这个string叫table的name,叫表格的名称,但是创建表难道只有表格的名称吗?不是吧,最起码列族你是不是也应该告诉我呀,哎,就是这样,所以我们应该还有一个东西叫做什么呢?叫做列足,咱们叫family啊family,但这个family好像不是说只有一个呀,列族是不是可以有多个,你一个是我们平时写的,万一你这个为了通用性要考虑多个怎么办?所以啊,我这么写,咱们点点点对不对,写错地方了,写错地方了放到前面去。
22:17
放到这儿对不对,那所以啊,我现在呢,准备来创建我们这个了,但我这个记录它有逻辑在里面啊,它有逻辑不如直接创建了,所以呢,我写上啊,咱们来咱们就创建我们的表啊,创建表,创建表呢有要求,如果表已经存在啊,已经存在,那么删除啊,删除后再创建新的啊,创建新的就这个意思,如果没有的话,那肯定创建一个新的了嘛。啊好了,那我现在呢,就准备往这边写了,那我首先我该怎么办?我是不是得判断表示我存在啊,所以adin啊,还是把那个adin拿过来,它等于admin,等于我们的get admin,诶好了,然后呢,也有异常,诶给它抛出去,嗯,好,你抛出去以后,那接下来怎么办?Mean,它有一个叫table exist,诶把那个表啊给它准备,那我这里呢,就写上叫table name啊。
23:17
Table name,然后呢,它等于我这个地方就叫做name得了,嗯。然后呢,这边呢,给它加上啊,我们这边OK,把这个name呢放过来啊好了,放过来以后呢,这边应该是我的table name.value off啊把这个name给它放过来啊好了,写完之后,那我这里呢,就是table name传过去,传过去以后会返回一个布尔类型的,所以我们写上叫做if啊来写上一个if判断一下,嗯,好,那如果你已经存在,我说了,我为了保证数据是完整的,是全新的,否则有旧的数据,有新的数据,感觉有点乱,那所以呢,把它删除掉,所以写上咱们叫删除啊来咱们写上叫做表存在,那么我们写上删除,嗯,删除表,删除表的话,那么我们应该是我们的amin,还有一个叫做什么呢?哎,叫做点,我们叫disable table,但是大家想想,我这是create table,那我们有没有可能以后会做一个删除表的操作,也可能会做吧,那所以我就别单独这么写了,干嘛呀,我在再写一个。
24:24
Protected,咱们写上一个VO,咱们就叫delete table,哎就这么写,然后呢,Throw我们的exception,哎这么写,你这么写完以后,那是不是我只要在这儿掉一下就行了,那就说这个方法我可以单独用,也可以在这用,对不对啊,否则你这个方法呢,只能在这儿用,就感觉呀,它扩展性不强了啊,所以我就放在这儿,那你放在这儿的情况下,那我在这里面我就应该干嘛呀,是不是也是我们的dmin呢?诶拿过来,拿过来以后,那么我的din我们就可以来了,咱们首先是disable我们的table,记住这个Dis,我们的table也是要传这个东西吧,哎,所以呢,把这个呢,咱们拷贝,拷贝以后呢,咱们这里呢,还是传个字符串啊传个字符串,因为我要考虑通用性的情况下,你光传它的话,可能也不是很好,所以呢,我们还是把这个name呢传进来啊,就是这样,所以那这样的话呢,我就可以把这个name呢给它放到这儿了,嗯。
25:19
然后呢,把这个table name呢,我放到这里啊,我们先给它禁用,禁用以后再来我们的min,咱们DR给它来我们的嗯,Delete,我们的table,诶把这个呢,给它直接传进去就行了啊好了,那现在呢,我们这边的这个delete table就有了,那我不管你以前有还是没有,反正我是我是创建新的嘛,所以我写上咱们叫创建啊,我们的表创建表,那咱们这个创建表就跟这个就不太一样了,为什么呢?我是真正的创建了,所以我们再来一个叫做pro啊,Protected,嗯,我要再创建,但这个创建呢,这个方法我们以后可能不见得用得上,为什么呢?因为我都希望通过这种方式来用,那所以这个方法呢,就不让他用了,叫pro,哎,所以说啊,我们的访问权限,你什么时候想让他用,什么时候不想他用,给他区分开啊,你别上来都写个public,感觉上是挺好的,反正用不用什么在你对不对我都写呗,这样的话感觉从设计的角度来讲不是很好啊,所。
26:20
所以我们这里呢,写上咱们叫create啊,咱们的table,诶好了,那这里呢,就是纯粹的创建我们的表了,那纯粹创建表的情况下,那这里还是要拿到我们的admin,把这个给它拿过来,拿过来以后,那么admin点我们有个叫create table来创建我们的表啊,创建表的话,我们点击我们的create table啊,然后呢,给它拿过来点一下有一个叫做我们表格的描述器啊,这个表格的描述器我放前面啊,然后呢,这边我们就写上table的描述器,等于然后呢new,然后呢拿过来我们的它拿过来以后,这个呢,我们需要传参数,这个参数呢,我点一下,其中就有个叫table name,那么这个table name呢,其实就是表格的名称啊,所以把这个拿过来啊,咱们叫做name,那么这个name呢,我们在前面可以给它获取一下啊,来放过来,那么table name呢,就给它给它放,放到这,嗯好了,表格描。
27:20
描述器有了,但是你光有表格描述器还不行,还不行啊,你还得有什么,还得有列足对不对?嗯,所以呢,把这个呢给它来咱们点,点了以后,咱们这里呢,给它来我们增加,增加的时候你记住了,可不是说只有一个呀,他可能有多个,对吗?那所以这个呢也要加上,把这个呢,我们加上啊,写上一个我们的逗号,OK,写完以后,那记住我们这个里面呢,就应该什么呢,判断一下了,判断这个东西是不是为空啊,对不对啊,你不能一个都没有嘛,我这里呢就不做判断了,咱们直接用就行了啊,所以我们现在呢,其实也就意味着我创建表啊,我应该在这儿判断,这我就不判断了啊,所以在这里面我就直接来啊,我们写上判断也行啊,嗯,判断吧啊,不判断可能也不太好啊,所以啊,这里来咱们写上叫做它嗯意啊意,如果,如果什么呢?如果它等于now啊,或者它点。
28:20
我们的长度它等于零什么意思啊,如果你没给我船空的对吧,或者呢,你是传了,但是是个零,长度为零的一个速度,那也不行,所以在这种情况下,我干嘛呢?我就等于了,它等于什么,咱们写上一个什么东西啊,这么写吧,咱们叫做嗯。嗯,我看看啊,咱们阿瑞是点我们叫at的,然后呢,我们再写一个叫to阿行不行啊,就有点麻烦了是吗?那也行,我看看啊,就算算了,别这么麻烦了,咱们写个什么东西啊,咱们写个叫new street,给他一个什么一好了,然后呢,我们的这个地方来。换过来,它的这个零,它等于什么呢?In。
29:03
就是你没给我传,我就默认给你行不行,我就默认给你个info就固定了啊,只要你没传你有问题,我就默认给你个列足叫info,这就行了啊好了,那这样的话,如果没问题的话,只要走到我们这一步代码的话,后面就肯定就有值了,那有值的情况下,那我不就可以直接来负循环了吗?第二我们的负循环啊,第二负循环,负循环以后每个列足我就可以呢,往这边给它加上了啊,所以我就往这边加,往这边加的话,咱们点一下点点完以后它需要一个列的描述器啊,所以呢,我们在这边我们给它来我们写上叫columnscript,等于啊来我们写个new,然后呢给它放过来,放过来以后呢,我点击一下,那么这个时候只要传我family的名称就可以了,那么恰恰就在这儿了,诶所以把这个呢给它放过来,这样的话呢,我们这里啊,就可以保证我们的列族呢,能够创建出来,那么列足创建出来以后,那这个。
30:03
时候我们还需要把这个它传到这边来,诶这样的话就可以了啊好了,那这么做完以后呢,我的create table在这个地方我就可以直接拿过来了吗?拿过来以后我的name我就可以什么呢?直接放过来我的family,诶我们就可以直接给它传过来了,那这样的话呢,就做了一个间接的调用,那么这个才是真正的创建表,而我这里呢,做了一个简单的逻辑操作啊,所以在我们的这个里面呢,我们就可以去加东西了,首先那我的表啊,那我这里点一下咱们这里呢,官网namespace不行了,嗯,所以呢,我得拿一个啊,咱们写上咱们叫table,那咱们叫table,咱们这个table吧,诶,Table,然后呢,我这里呢,写上叫CT冒号。咱们有命名空间的情况下,是不是应该加什么东西啊,加我们的冒号的呀,诶,所以来逗号啊,然后接着写我们叫call lock,诶这就是我们那个通话的日志啊,就是这样,那你这边写完以后,那我往里面传的时候就简单了,然后呢,Names点我们的,嗯,Table table呢,我们点我们叫做什么呢?Get value,诶好了,那我光这么写还不行啊,为什么呢?因为这么写的话,那个列足没有对不对,但这个列足啊,我可以这样啊来,我现在呢,再加一个啊,再加一个有table,我再写上一个叫CF。
31:25
啊,我再写个CF啊,咱们叫CF就是那个叫column family,我简写叫CF啊,但是我这个CF呢,还没那么简单,我还得加个下划线,我加一个叫。我加这个东西啊,这个是啥意思,我后面给大家解释,现在呢,先告诉你有这么一个列足,后面再告诉你为什么要这么写啊,所以我写上叫coll,诶我先这么去写啊,好了,然后呢,我这里呢就可以直接来了啊,然后呢,我们来我叫names,然后呢我们点咱们的CF的color,然后呢点我们的get value,我们的列足呢,就是这么的一个样子啊好了,那你把这个写完以后,只要没问题的话,初始化就完成了,初始化完成以后再想办法呢去增加数据,增加数据的时候可能又跟那个什么扫描啊get呀,跟to又有关系了,咱们下午呢,咱们再进行封装啊,好了,大家休息吧。
我来说两句