00:00
呃,那么接下来啊,咱们把这个东西工具安装好之后呢,那么咱们现在啊,就开始是吧,那就开始写这个什么呢?开始去连接一下,对连接一下,呃,那么如果说啊,我现在呢,要是想去这个连接的话呢,对吧,那无非是对吧,做一些咱前期准备工作,对吧?那做成什么准备工作呢?大家想一想,我们现在之所以要使用H子,是不是就是我现在想用它来保存,我们的用户是不是曾经在这个网站上消费过呀,对吧?那你现在要想保存,那我在这里需要建章表对吧?建章表呢,来CTRLC,把RLC,然后把咱们当前的这个数据建状语句拿过来,拿过来对吧?那么拿来之后呢,我现在创建一个user states,比如说当前咱们0523,对吧,然后这里有两个字段,一个呢是我们用户ID,然后我们的八上类型,它呢是我们这个主线对吧,大家想想这个是不是相当于我们这个r key啊,然后现在这里有一个我们step.is consed,对代表是否消。
01:01
这个注意这个东西相当于什么。相当于什么列足对吧?这个相当列足,然后这个呢,是我的列名,对,然后它类型也是我的马上类型,然后这块呢,就相当于它这个优化,其实不加也没问题啊,就相当于咱们现在呢,给他做了一个预分区啊,并且呢,采用了一个加盐处理对吧?那这块呢,咱把这个执行一下啊执一下啊,那么执行完毕之后呢,那么我们现在select的新round from来查询一下我们现在这个user states的0523的这张表,那么要想执行查询或者是这行搜尾句的话,直接点这个小人对吧?那么他的运行,那目前表创建好了,但是咱们目前这个表里边还没有数据啊,还没有数据对吧?那么接下来,那么咱们表准备好了之后呢,那这个时候啊,咱们就开始去写我的代码了。啊,就写我的代码了对吧,那么首先呢,我想去封装一个工具类啊,这个工具类干什么的,这个工具类呢,是专门从我们当前这个H对吧,或者我这菲利克斯的表里边来查询数据,那么如果你要想写一个这个工具类的话,那么这个时候呢,需要你去导一些包,所以说呢,我现在在我这里把一些依赖给加进来啊,第一个对吧,咱现在呢,把这个依赖给加进来啊。
02:22
来到我们的real time里边,还是在这里?添加我们这个依赖,那目前呢,这个依赖呢,就是我们这个Phoenix,然后呢,对我们Spark支持对吧?它的一个什么呢?它的一个依赖,那么这会儿大家呢,这个如果要自己写的话,这会会有一个坑的什么呢?就是本身呢,咱们在我们当前这个Phoenix这个对八依赖的5.00包里边,那么它呢,引用了我们这个glass fish啊,引用了我们现在glass fish这个依赖。但是呢,他在引用的时候呢,他使用的是一快照版不稳定版本,对吧?然后更可气的是什么呢?这个哥们把这个快照版呢,这个用了一段时间之后,他从正式版就把这个快照版给干掉了,就你从官网上,你从咱们这仓库里边就找不到这快照版了,对吧?所以说呢,咱们现在在这里,我呢把我们这个快照版呢,对吧,引用给他排除出来,然后自己呢,我去加它的一个正式版本啊,自己加的一个正式版本对吧?那么这块呢,如果大家做的话,那可能会有一个坑,对吧?然后接下来那我把这个SPA搜相关依赖呢也给拿过来,后续呢,我们可能会用上啊,可能会用上好了,把这两依赖呢也加过来,那么加入来之后呢,那我现在因为我要去对我们的订单数据做处理,然后呢,判断我们是否啊这个已经消费过,所以说呢,那为了操作方便,我在这里呢,去定义两个样例类,那么这个样例类呢,一个是order in inform,那么它主要呢,用来去封装我们的订单,它的对象来把这个东西。
03:54
打过来啊,把这拿过来CTRLC,然后接下来我们现在呢,在我们对吧,这个B目录下面,我们把这个给创建一下啊卡了一下。
04:08
嗯。有下载的吗?下载先关一下啊。就这么好使是吧,关完之后立马好使是吧是吧,这个这个包我当服务器是不是又当服务器对吧?让又同屏,这个是肯定挺不住的啊,那么咱们现在呢,在这里啊,对吧?这个我们呢,去把我们现在这个样力创建一下来,在这里我们新创建一个我们这个order in inform对吧,这订单压力类,然后接下来那么咱们当前呢,这个订单压力类里边主要的做一些内容,大家应该对这个字段比较熟悉的,对吧?首先这个ID不说了,然后pro ID,省份ID,订单状态,用户ID,然后呢,在咱们这里边订单里面是有几个金额呀,这几个金额之间的关系应该知道,对吧?有一个总金额,有个优惠金额,原价金额,有一个运费,他们之间的关系应该是什么?
05:13
走金额等于原价金额加优惠金额,你一看你就瞎说,你是不是原价金额等于什么啊,走金额是吧,等于我们现在原价金额减去优惠金额,再加上运费对吧?是这么一个关系是吧?诶这个关系差不多吧,好,那咱现在呢,在这里把这几个东西拿过来,然后这里还有失效时间,创建时间,还有操作时间,像这些东西啊,大家注意,那应该是什么,应该是咱们原来啊这个表里面就有的对吧?但其实有些东西呢,那我们也用不上是吧,其实你可以看一看咱们当前订单表里边它的一些字段都有哪些啊。来,那么咱们现在呢,打开,然后看一看我们现在这个order in inform这个订单表啊把这订单表呢,咱们打开一下,那么在咱们订单表里边呢,对吧,大家看上面收货人呢,收件人电话呀,像这些其实咱们不在我统计范围之内,对吧?因为你想我要对他做一些什么订单相关统计,对吧?收件人收件电话,像这个东西咱们很少有这个维度去统计的,对吧?所以说呢,咱们现在把什么状态啊,金额这些拿过来对吧?而且我再去创业样例的时候,同学们大家看像这些东西对吧?相当这些东西,然后这个这些东西它的名字呀,我不是瞎写的,对吧,我我是和咱们当前这个表里的名字保持一致的。
06:37
对吧,就是大家尽量也这样,就是以后这个东西呢,大家肯定要自己去创建对吧,就假如说我现在表有了,然后呢,我可能去创建样类,然后和得去对应一下,对那这个时候呢,尽量啊,咱们也是对这名字呢一致对后续呢会方便很多对吧?然后除了这些之外,大家注意,那么咱们这里还有一些没有的对吧,比如说你看在他订单表里边还有一个创建时间,操作时间,还有一个什么失效时间,这些是不是都是我们时间出time的格式,但是我在统计的时候,我可能要统计某一天对吧,然后某一个小时的这订单的一个这个情况。
07:14
短的这个时候它根本没有填,没有小时的概念,那怎么办呢?咱们在这里,我在我这里除了我现在它里面有这些字段之外,我又加了一些,比如说有一个什么呀,有一个创建日期,这个专门到天了这个小时的,哪个小时创建的,然后这里还有一个对,就是和我们这个业务有关的是否首单对吧?大家注意啊,假如说你们看到这个需求之后,说我现在呢,想判断一下当前这个用户端,或者我今天这个网站它的一个首单啊,每个小时的首单对吧?这个访问这个量是多少啊,我这个首单对吧,是多少,它的一个分布情况什么样的,对吧?那么假如你们看到需求之后,你们大概在设计的时候怎么来设计,你们肯定是这样想的,肯定有同学这么做啊,我现在呢,从我卡卡里边是不是可以把订单数据给拿到,订单数据拿到之后呢,那我就判断一下呗,是不是我们现在第一次消费,然后呢,把咱们现在首单用户给留着,然后把不是首单用户给过滤掉。
08:12
是不是应该这样的思路?啊,你你为什么不敢说了,是不是啊,我现在把首单用户给留着,然后把不是首单用户给过滤掉,就不是首单的给过滤掉,然后呢,咱把首单打了之后,然后现在来判断一下首单做分析嘛,对吧,然后看一看这个地区呀,看一看什么咱们现在年龄段呀,看一看性别分布啊这种方式行不行。可以吧,对吧,对于我们目前首单完全没问题,但是明天假如说人家又给个需求,说来你别统计首单了,你把非首单的一个分布过来一下。你是不是疯了,你昨天刚做的需求把它分数单过滤掉了,明天的结果就想要非数单数据对吧?所以说咱们现在注意啊,同学们,如果大家要看的光,从我现在的一个这个这个需求来讲,对吧,咱们完全可以把这个这个非数单用户过滤掉,对吧?但是呢,如果要从你的扩展程序扩展能力上来讲,对吧,那这块你这个过滤掉不好,那如果过得不好的话怎么办呢?我这个加个标记。
09:10
对吧,这个所有订单的数据都在我这儿吧,只不过呢,我通过一个标记来标记他是首单还是非首单,对吧?如果你要统计首单的话,那我现在就统计咱们首单标记的,如果你想统计非首单的,对吧,那我现在就统计非首单标记的,如果你想统计所有订单的,我这是不是也可以啊,对吧?所以说你这个程序这么写,这么设计,咱们更健壮一些。啊,这程序的健壮性,那么咱们现在呢,把这个东西我呢通过一个标记来设计一下,然后除了这些之外呢,那么咱们的订单里边,我们说它没有一些,我们这个说地区名称啊,或者地区编码呀,这些东西没有对吧?那么这些没有的话呢,那我也给他对一些字段,到时候咱们做维表关联的时候,我是不是可以从咱们什么省份表或用户表里边把这堆拿到,对吧,那么形成更大的宽表,那其实我这块呢,我可以对我们的宽表数据做一个封装,对吧,这是第一个啊订单的阳历类。
10:01
那么除了我们订单压力类之外呢,那么接下来咱们呢,再往下走对吧?那么再往下走呢,还有一个用户状态压力类,那目前呢,咱们的用户状态它表示的是用户是否咱们曾经消费过啊,曾经消费过,那这里只有两个字段,一个呢是user ID,一个呢是if can serve,对,只有这两个对吧,一个呢,是我们这个U的ad对吧,U的ad,然后一个呢,是我们这个if cons serveved对吧?把这个东西呢给拿过来,对,给拿过来要注意同学们对吧,老师说你这不对呀,刚才你这说名字一致,那他俩呢,这个名字不一致对吧?没关系,到时候咱们呢,告诉你名字一致有什么好处对吧?名字不一致的话,那么咱们到时候需要怎么做对吧?来,那我现在呢,在这里啊,我们把这个东西呢,也创建一下。在这呢,我去新创建一个我们这样的一个类,对吧?这个呢叫user this啊这个呢,我直接拿过来了,对吧?那么这个呢,是用户我们的一个映射,我用户状态的这样一样力类,好了,把这两样类完事之后呢,那么接下来我现在就写工具类,这个工具类的就是连接我们的菲利克斯的,要连接菲利克斯的,那么像这块东西呢,大家应该会写,就不管用什么框架,其实底层呢,他帮你可能做一些封装,但是这块东西如果你要自己用GDB写的话,那么你也应该去写一下啊,而且去感受一下嘛,对吧,感受一下咱们如果要自己用GDBC,对吧,去处理接口题的话,那么这个时候应该的对吧,怎么来写?呃,在这呢,我去创建一个工具类,对吧?来在这里,比如说呢,这个工具类就叫菲尼克斯U,对吧,那么它这个作用干什么呢?对吧,用于呃,从我们这个菲尼格斯中查询我们这个数据啊,查询数据好了,那么如果说你现在呢,要想查询数据的话,大家想一想。
11:46
一般情况下,比如说啊,我现在定一个方法,这个方法呢可以查询数据,那应该是什么query什么什么吧,对吧,那query返回结果一般是个粒子集合对吧?一般是一个例子集合好了,那我现在呢,定一个我们这个query,那么如果你要想直接查询的话,大家想一想,你要从每搜数据库里查询,那你是得给我传一个S后L语句过来,对吧,你这个S后L语句什么样的,然后我帮你执行这个S后语句,然后接下来那我给你返回个结果期,那么需要返回一个什么呢?对吧,大家想一想,那么在数据库里边它存的目前呢,有这么两个内容,一个呢叫U的ID,那么另外一个叫咱们if consed啊is customer的,那比如说我现在真存的数据的话,那应该是这样的,张三一对,然后呢,李四啊一这个代表什么,代表张三呀和李四曾经在咱们这消费过啊,再来一个比如王五对吧,这个一只要是在我当前表里边都有数据的,那是不是就意味着他他们曾经已经消费过了呀。
12:46
对吧,这数据库里边肯定存在这样的数据,对吧,然后接下来那么咱们现在呢,那要想把这个数据库查出来,那以什么样形式给我展示出来的,大家想想,那么大家常规的思路肯定是把这些东西给我拿过来了。是不是把这东西给拿回来了,就那拿过来之后,咱们是不是得把它封装封装封装成什么呢。
13:05
Map集合,那么如果map集合的话,那你想讲这K是什么名称,这个是value对吧,这这这个K是ID,然后这个呢是它的值,好像没什么意思,所以说呢,咱们要处理的话,我其实想这样对吧,那么如果说啊,你要想从数据库里插出去的话,你能不能稍微的呀,给我做一个处理,怎么处理呢?比如说你现在呢,把张三这个记录啊给我查出来了,我期望的结果什么样的,注意看我的期望结果啊,我期望结果是这样的,你给我返回一个这个东西。你看这个东西这是什么,一看一看中括号啊,那么咱们这个东西,那就是接数组,一看大括号,画括号,那给他接对象呗,对吧,那么这个接对象里都有哪些属性呢?第一个user ID你告诉我对吧,然后记下来我现在user ID,就比如张三,然后另外一个,那么咱们现在呢,还有一个属性叫什么呢?叫if conserveed啊consumveed对吧。
14:01
然后接下来,那么咱们现在呢,这个值它是什么?它是我们现在的一对吧,我希望你给我返回这样的一个结果,那么如果有多条的话,那么咱们现在这里同学们,那你是不是应该对吧,给我返回多个这样的一个数据啊,那也就是说咱们期望的啊,我执行完查询之后,它应该返回一个粒子集合,那么粒子经理放的是什么呢?粒子经理放的应该是一个一个的结森对象。都要一个一个的解释一下,对吧,我期望的这些东西对吧?在这里这个是Jason object对吧?那么咱们是pass对吧?在这里我需要你们返回这个东西对吧?那我要求有了,那你现在呢,对吧?这里如果有个查询的话,对吧?那么这个时候咱们怎么来去写一个代码的对吧?我们说了这个东西和你去写我们这个这个GDVC连接买搜狗其实是一样的,那主要走几步,注册驱动,然后接下来建立连接,对,然后接下来创建数据库操作对象啊创建数据库操作对象,然后接下来执行搜后语句啊,然后再往下处理结果题啊处理结果题,然后再往下释放资源,市场资源,就这么几步呗,首先注册驱动,怎么注册呢?应该是。
15:21
class.for name是吧?class.for name,来class,点我们这个for name,然后接下来这里边是不是要把驱动力拿过来呀,对吧?那么咱们现在这个驱动力我直接复制了,同学们在这里把它驱动力给拿过来,CTRLC啊TCTRLC,那么除了做驱动之外,那么再往下是不是建立连接呀,建连接怎么来建,建立driver manager不错啊driver manager对吧?那么这个时候点这里边是不是有一个get connection对吧?那么咱们现在用户名密码没指定,是不是直接传URL就可以了,这个URL那么咱们现在也是我拷贝过来对吧?像这东西你不需要自己去去写啊对吧?来CTRLC,然后呢,这会儿注意这是什么,这是它的协议啊,这是协议,那就像咱们GDBC什么买搜狗什么,这是一样的。
16:06
对吧,那么只不过后边它连的是我们这个对这个组keep地址啊keep地址,然后进下来创建数据库操作对象怎么创建,是不是得通过连接创建,那我定义变量来接入一下,对吧?点VR连接对象,然后接下来那通过连接对象点是不是有一个create,然后呢。Statement,哎,我一般会这样,对,除了great之外,好像还有一个prepare statement,对吧,你们是不是应该这个你们也接触过呀,对吧,这个是有一个预变译的一个咱们这个这个产语句啊,可以避免它SQ注入,对不对,对吧?然后接下来,那么咱们现在把时间拿过来呢,是不是你要指的S啊来点2VR,那么这个返回的是我们的数据库操作对象,然后进下来,其实我们现在这个搜索句是不是也执行了呀,对吧?那么执行这个东西啊,相当于数据库操作对象,还有的这些搜索句都同时做了呀,啊,但是执行的话好像有一个东西,对吧,怎么来写呢?是不是有一个叫点,是不是就像query啊,对吧,Query然后进下来它返回什么呢?它返回是一个result set,对吧,返回一个result set,然后接下来咱们要处理接口集,对吧?那么处理接口机怎么来处理这个,咱们暂时放一放这个东西大家应该能搞定的,释放资源,先把简单代码给搞定了,对吧?然后一一路关闭呗,对吧,应该是S点咱们现在close,然后接下来我们现在点我们这个。
17:29
Close咱们创建的时候呢,是先创建连接,再创建prepare,再创建result set,咱们关闭的时候呢,是不是反向的呀,对吧?来close,然后再来一个咱们呢,连接点我们这个close要连接点close,然后接下来那么咱们现在呢,把这个啊拿到之后,对吧,那么这里我们要要看一下。怎么来处理结果题啊,这个结果集咱们怎么来处理?这样就怎么来处理,我现在想得到这样的结果,同学们啊,我现在想得到这样结果是吧?
18:11
首先呢,咱们你既然要list,那咱得有一个list呀,对吧,你不要把就要要拿list吗?那我就帮你拗一个咱们这个list,而且我现在这里面要往里面加数据,所以说呢,我创建一个list子8UFF分对吧?创建list子8UFF分,然后接下来点我们这个VR吧,那么这个呢,咱们可以定义变量,这个就是RS的list对吧?哎,用来接收啊我们现在这个数据对吧?那么咱们现在这个数据可能有多条吧,那怎么取出来呢?是不是得这个通过循环去取呀,对吧?那么咱们循环的时候如果说什么呢?RS.n有值,对到这个RS.nest它和咱们原来别的不太一样,对这个什么r.N大家看这个是不是咱们返回布尔类型的值啊,是相当于你现在呢取出来值了啊,相当于你现在这个结果拿拿到了对吧,拿到了它有下调数据,你把下调数据取出来了对吧,然后接下来,那么取完之后,咱们在这里是不是要把当前取出来结果给封装成个对象,其实你先取的是谁,你是不是应该取的是这个东西。
19:10
对吧,那你现在要把它给干什么呢?来封装对象对吧?那么如果你要把它封装对象的话,咱们这里是不是又得你一个我们的Jason object呀,对吧?在这里点2VR这个是谁呢?这个相当于我们这个RSN对吧?这个Jason object或者直接就JD吧,对吧?这个是谁呢?这个tate。杰森OB,对吧,这是咱们现在啊,我要创建一个这样的一个接对象,对吧,那么你怎么来去封装的,怎么来封装的,对吧,大家想一想这个时候呀,那么你现在呢,不光要拿咱们现在这个这个数据了,你是不是还得拿这个列名啊,对吧,这个列名怎么拿呀。对吧,这你就把这个产品计绍机拿到了,你是不是还得拿个列名啊,怎么拿到is点这里边有一个什么get对吧,谁呢?注意啊,在咱们这里边有叫get my date对吧,Get my,然后点we are对吧,那么你可以看到,那么其实拿的是什么?拿到的是RS might date,那么这个ma date,注意啊,是原数据,那么原数据里都包含哪些东西呢?咱们现在是不是想获取列名了,对吧?其实除列名之外呢,它还有好多别的东西,第二盖的对吧?你看这个什么列的类的名字,列的数量,列的标签,列的什么这类型对吧?然后列的名称是不是都有啊对吧?所以说咱们现在呢,你要想拿列表的话,这个东西其实可以拿到的,怎么拿?就是通过我当前这个结果集,它里面有一个叫mind的原数据,对吧,这样一个方法来获取,然后接下来那我现在呢,这个东西呢,拿到了啊,这个当前这个结果有了,对吧,然后现在呢,我要把这个东西封装这个类对象,并且。
20:53
把这个对象啊,来放到我们的集合里去,放集合里边这个是好说直接呢,咱们那个集合RS list.end对吧,直接把那们user states往里面一放就行了,关键是咱们现在这个user states呀,你怎么样,我整成这样的。
21:19
怎么样,你把这个东西给我整成这样的呢?大家想想这是一个基因,对这整个这是一个基因对象吧,那么基因对象咱们现在没数据,你要想往里放数据怎么办?是不是你得去调它的一个put的方法,那么put的方法它里边其实是我们这个名值对的形式,这个呢是我的名,这个呢是值对吧?那么如果名的话,我现在想u.ID你不能够写死啊,对吧,你是不是应该从我这个这个差P进入机里面列名里获获取啊对吧?那这个时候大家想一想,我现在呢,把这东西拿到了对吧?然后接下来那么你从这里去获取人去获取的一个列名对吧,是不是column克lo,然后接下来,那么这里它传需要传输参数的,传一个咱们现在它的一个整数,对吧,第一列那就是一,第二列呢就是二,那也就是说咱们现在啊,在这里你可以这么来做,对吧?如果说你要想把第一列值拿过这个列表拿过来,那就这样。
22:09
如果说第二列拿过来呢,那就是咱们现在来这个啊对吧,那这样写有点少,如果是200列的话,对吧,你光这个事你是不是得做对吧,这个200次,所以说咱们现在呢,可以使用循环对不对?来那咱就放循环呗,放循环那么对谁做放循环呢?同学们啊,这谁做波循环,我是不是可以通过咱们这个列的数量来作为波循环呀,对吧?那么怎么来做,那就是通过RSM的对吧RS,然后呢,M date对吧?然后接来点,然后get是不是有一个叫total count呀列的数量,然后接下来,那么咱们现在呢,来从一,然后呢,到它来生成一个数,然后呢,得到一个这个循环变量,哎呃,这种结构应该知道吧,咱们现在1TO几,这个to是什么?这个to是关键字吗?
23:01
这个to是方法,方法名字叫to对吧,然后它返回应该是一个RA集合对吧,是成RA集合,那么咱们现在注意啊,那么一般我们说这个索引的或者位置的话,大部分是不是都是从零开始,但是有一个地方是例外的,就是在那GDBC这一块。啊,他在获取操作的时候,一般咱们是从一的开始的,对吧?那所以说我现在想获取我们这个第一点那个从一开始对吧,你对他呢,来做一个便利,那么如果跟做便利的话,那么这个时候咱们是不是可以把这个语句往里边拿了呀,对吧?干什么呢?Put,然后接下来这块是不是就咱们A了呀,对吧?那么你现在可以根据我们这个循环变量A来获取值,对吧?那么另外一个同学们,咱们现在这个值呢。你现在可以通过咱们这个原数据来获取列名,对吧?那么咱们现在这个值从哪获取,是不是在咱们这个结果集里面有啊,所以说呢,咱们可以通过RS.get谁呢?咱们这个object,因为我现在我要得到的是一个什么我要得的数据的类型对吧?这个东西不确定对吧?所以说呢,我get object对吧?它得到的是一个any if类型了,对吧?那么咱们直接把它放到哪呢?放到我们这个getson它的value这里面来,对吧?那么这会也是谁,是不是也是我们的I呀?
24:11
对吧,这是相当于咱们做了一个我们的个封装啊,这会相当于做了一封装啊,那么咱们现在呢,封装完之后创建一个这个对象,然后对象呢,这个值都给它付过去了,然后接下来,那么咱们现在呢,去执行我们现在A判把这个把这个当前呢,我们现在这个创建接对象,然后交给我们这个粒子集合,放到粒子集合中,对吧?然后最后呢,咱们给返回过去,那么返回的话,大家注意了,咱们现在呢,我创建为了操作方便,我这里创建是不是一个list buffer呀,咱们呢,去给它转换一下,转换成我们这个list,那转换成list好了,那咱们现在呢在这里啊,那我这个方法写完了,那方法写的对不对呢?那我这也不确定,所以说呢,咱们写一个我们这个测试短期测试,那么这个测试呢,那比如说。从哪查呢?对吧,那我现在呢,去定一个变量circleq,它呢,就等于我们现在呢,这个circleq我给拿过来对吧?来到这里,我们现在呢,把我们这个circleq啊给拿过来啊,把咱当前我们这个circleq呢给拿过来啊把这搜给拿过来,那么咱们现在在查询的时候呢,都把这so拿过来了,那接下来我们去调用我们这个query list,把这个S呀给传过去,那么它返回的呢,那应该是一个例子集合,然后咱们现在把这个做一个输出,对吧?来看一下效果啊,看效果那目前这里应该是没数据的,咱们看一看能不能连上啊,先看一看能不能连上啊。
25:47
来在咱们这里边写一个主方法啊。
26:02
Then。那么咱们现在呢,来看一下,当时我们现在呢,在咱们这执行的时候来,我现在运行是吧,看一下,那么我现在呢,执行我们现在这个circle口这里是不是现在有一个质量,那么有一个值之后呢,咱现在来运行我这个程序,看一看现在拿出来的个集合,是不是我们现在封装的这个样子啊,是不是我们封装这个杰森啊。大家看咱们当前if cons的一,然后用在D1,是不是我现在可以得到我们现在样了,对吧,那这个呢,就是关于我们这个数据的一个这样的一个封装,其实封装了一个我们这个查询工具啊,封装查询工具,把这个呢稍微停一下。
我来说两句