00:01
好,我们写完读取数据之后呢,再继续往下啊,下一个API呢,叫扫描数据啊,为什么除了读取数据之外,还要再加一个扫描数据呢?哎,其实原因啊,非常简单啊,这个读取数据的效率实在是太低了,它最大的范围就是一行数据,那我们的H表格有多少行呢?哎,我们最早已经看过了,在作者呢,在网上官网上吹牛的时候,说它是数十亿行,数百万列,那这数十亿行的数据你要想。进行一个很复杂的一个数据分析的话,一行一行去读,这就不知道要读到什么时候去了啊,那显然这个get cell啊,可能在专门想查看某一个数据的时候呢,有点作用啊,在大范围读取数据进行分析的时候,那相对应的就不太行了啊,那我们这里写的这个API呢,应该是对应我们校里面的这个SC命令对吧,可以读多行数据啊,咱们对应的来写一下。Public static啊,还是写成一个VO,因为我们这里是测试代码啊,叫scan Rose啊,扫描多行啊,这个扫描多行呢,我们最常用的还是设置它的一个范围啊,肉的一个范围啊好,这里呢,我们来给它写上啊,这名字都一样啊呃,完了之后呢,我们给它加两个属性,一个叫string。
01:20
叫start肉。对吧,逗号还有一个呢,是令,这叫stop肉啊。大括号过来对吧,好,那这个呢,就是我们方法的一个签名啊,写完之后对应写上注释,这个叫扫描数据。好,这里呢,来一个一个写一下,叫命名空间。这个呢,叫。表格名称对吧?啊,这个呢是开始的肉啊,它应该是包含的啊,咱们给他记录清楚啊,这边呢叫结束。的肉啊,结束到行叫不包含啊,这个是不包含的,上面是包含,这个是不包含的,那这里它是包含还是不包含呢?因为代码更加底层啊,咱们再等一下写的时候呢,也可以给大家去看一下啊好,接下来呢,我们开始写正式的一个代码啊,首先第一步还是应该获取table啊,叫获取。
02:14
Table啊叫呃,connection.get table啊,里面写一个table name.value of啊填上。Name space逗号table name好点返回我们得到一个table对象啊,那第二步呢,哎,按照前面这个逻辑,好像我们应该创建一个scan对吧?在这里呢,它的这个API有一点点变化啊,我们可以来看一下table里面呢,如果你去调scan的话呢,啊,它这个叫get scanner啊get scanner方法名是有一定的一个变化的啊,它里面创建这个对象啊,还真的就叫SC啊,会有一点点小小的一个出入啊,所以这个我们第二个方法,第二步呢,还是创建。干对象啊,另一个SC。啊,另一个SKY好,这个SC里面呢,你不需要填一定的一个参数啊,它这个和呃stop呢已经过时了,可以看到对吧,我们可以不填对象啊,直接点Y返回串下来就是一个SC,为什么可以不填呢?啊,如果你不填啊,再写一下啊。
03:16
如果此时直接调用。如果此时啊,直接调用,那相当于什么呢?相当于扫描整张表啊,你看跟我们的下就已经对应上了,对吧,我里面啥WW都没填啊,开始结束都没填,那就是整张表啊会。直接扫描整张表。呃,我们在实际开发里面扫描整张表的机会呢,并不是很多啊,所以呢,我们需要添加参数啊,来控制扫描的数据啊,怎么添加呢?写一下叫SC点,可以往里面填啊,它里面有两个方法,一个叫withtu,一个叫with stop啊,我们一个来填with start roll,好,Windows加V,再把这个bus To Bus给它调出来啊。
04:06
好调出来之后呢,我们再重新复制一下啊,CTRLC这个地方呢,来写上啊,它这个呢叫start啊,那就叫start。啊。分号啊,这是我们填写的一个sta啊,这里呢也可以给大家说一下,就是这个开闭关系啊,其实这个方法重载里面呢,是有的叫布尔类型inclusive是否包含啊,它默认情况下呢,会进行一个方法的重载,那这个开始呢,就是true啊,开始就是包含的啊,写一下叫默认。包含啊,可以改啊,你在后面填一个方法就改了,那对应的SC,它也可以添加一个with stop roll,哎里面呢,加一个啊,By To Buy,然后是stop roll,对吧?哎,分号这里呢,也可以来看一下,点进去它默认就是false,那它就是不包含的啊,方法都是一样的一个设计情况啊。好,对于我们点回来。
05:00
这地方来写一个叫。默认不包含啊好,这是我们对应的一个结构啊,等两个结构都完了之后呢,最后我们就可以把这个死干呢给它放入进来了,放入进来之后点Y返回就可以得到一个scner啊,得到一个SSC啊,这边写一下叫读取多行。数据啊获得。好,嗯,少写一个N。好,那这个scanner是什么呢?哎,需要给大家呢,这里给大家介绍一下啊,这个scanner是什么呢?它名字叫result scanner,那result是什么呢?哎,我们上面已经看过了,对吧?在get sales里面,Result呢,就是一个cell的数组,Result是一个sales数组,那result scanner什么呢?它是一个result的一个数组啊,咱们来记录一下叫result。来记录一行数据,那这个东西呢,来记录多行数据对吧?哎。
06:02
它来记录啊,记录多行数据,好,那再记录一层啊,这样,那它既然是记录一行数呢,它是一个本质上是一个什么呢?是一个cell数组对吧?那下面这个什么呢?它就是一个result的数组,其实就是这样的啊,它是一个result数组,相当于是一个二维数组啊,相当于是一个二维数组,那我们对二维数组呢,进行数据分析,写两个方循环就可以了啊re result scanner点方循环啊呃,它这个啊,我就调错东西了啊,应该调后面这个对象啊。sc.for循环。好,它这个里面呢,因为给我们已经写好了,对应的你点进来啊,它已经写好这个it reb啊,这个it rain呢,是集合共有的一个负类啊,它已经标记好,它是一个result一个集合了,所以我们可以直接写一个for循环方循环里面得到的就是这个result了,Result处理咱们已经写过了,对吧,再来写一下啊,叫result。
07:01
好,格式化一下,给它挪过来,点re cell.r返回得到一个sales对吧?在对这个sales进行for循环,那就进入到里面去了,那这里呢,咱们由于是扫描一个表格,所以把这个数据呢,咱们可以尽量写的详细一点啊,咱们如果单独打印一个value,之前已经写过了,可以参考一下啊,单独打一个VALUE6呢,写的是这两行对吧?啊,我们给它复制一下。到这边我们给他拿过来啊,这这个是单独打印一个value对吧,那咱们呢,给它稍微改一改啊,稍微改一改,不要单独打印一个value了啊,这个单独打印value呢,内容比较少啊,点so对吧,好,我们给它改成这种格式啊,我们在里面呢,给它拼接一下把。行号列足列名加Y6都给它打印出来啊,同时呢,咱们按照二位数的一个打印方式啊,这个地方呢,你调一个print,不要换行,因为它都属于一行数据嘛,一行里面有多个cel,那就不要换行,我们在外层的这个地方呢,调一个换行输出啊,在这个地方换行,那表示呢,一行一打印嘛,啊打印的这个格式呢,虽然没有人家这个专业好看,对吧,还是可以打印一个差不多的啊。
08:11
在这里我们来拼接一下啊,这是new string,这个是Y6值对吧,在Y6值前面我们来拼接。卡V啊,嗯,加上一个横杠啊,再加对吧,来拼接一下,那前面这个地方呢,就不要克隆Y了,我们先来克隆一个行号啊,这行号应该在最前面啊好,对应这个地方呢,我们来复制它啊,一点点拼接一下啊,加上一个空。复制啊,这里面呢,应该不是行了,那就是一个family一个列族啊,在这边再拼接一个列名啊,这里写上是列名。啊叫call fair啊,列名完了之后呢,再用spring得到的是这个value,好,那这样的话呢,就有一个固定的一个格式了啊,我们在打印这个print的时候呢,它在结尾啥也没有啊,所以你在打印完一个数据之后呢,最好给它加一个制表数杠T啊这样格式呢,它能错开啊,相对呢更好看一点啊好,那我们呢,整个的一个cel处理啊,哎,就这样了啊,整个一个这个呃,Sales的一个处理,包括这个result scan的一个处理呢,就这样了啊最后呢,我们不要忘了关闭。
09:16
叫关闭table啊,叫table.close。对吧,好,这里呢,也可以进行一个一样的一个异常处理啊,我们来拆开启一下。好,把这个内容呢,给它粘过来啊,在DML语言这边呢,我们进行的异常处理呢,相对比较粗糙一点啊,因为呢,重复的内容我们没有必要再讲一遍,对吧,在实际开发里面,这个异常处理呢,你也应该根据你们实际的情况来啊,不可能按照我这个直接对着抄,对吧,自己去思考一下啊。好,这样的话呢,我们扫描数据就已经写完了啊,异常呢,给它抛出来,写完之后呢,我们理所当然来测试一下啊,叫sky Rose对吧,在底下呢,我们来测试。叫。
10:01
或者是。扫描数据好,那要测试这个扫描数据呢,为了不够不对它造成一个影响,我们把前面代码呢都给它注释掉,叫sc Rose啊呃,表还是使用这个表啊,那对应的后面的值呢,Start Rose stop roll呢,我们可以到这边来看一下啊,它的数据就那么几行,1001 1002 1003 2001对吧,那咱们呢,就写到扫描到从1001啊逗号到1004对吧,那包含1003啊,我们来扫描一下,看一下对应的一个结果。香啊。好,还是一样道理啊,我们是重量级的连接,要稍微等它一下。好,我们等待一段时间之后呢,这里呢,就可以看到对应的一个数据了啊,如果它这一行里面有多个的话呢,中间会用杠T来隔开,对吧,我们1003呢,就有多列啊,如果它只有一列呢,那没办法,只能打印出来了,从这个地方我们看得出来,它不是一个完整的一个表格,为什么这么说呢?如果它有H的话,这才是一个完整表格,对吧?它没有留空,看到没有,这就是我们最开始说的这个数据模型,它是稀疏的,有什么就打印什么,没什么就当做不存在,这样的话能节省空间啊,这就是我们最终打印出来的这个数据啊,这是我们干扫描数据啊。
我来说两句