00:00
好,那我们看上去呢,这个东西已经完成了,但是呢,我们把它呢,更完善一点啊,更完善一点,呃,什么叫完善一点呢?就目前来说,咱们这个工具类啊,它只能干什么事儿啊。呃,我告诉你,他现在呢,咱们这个工具类啊,它只能做什么事呢?哎,当你这个扎并的字段跟表的字段一样多。才可以。对吧,那如果说我招聘里的字段比你表的字段要多,怎么办呢。就是比如说啊,我呢,其中有这个辅助字段,诶,那这个SS呢,假如说是一个辅助资本,我我举个例子啊,当然咱们这个表不是啊,那未来呢,我们会有这种需求,对吧,它呢是一个辅助字段。比如说它是一个辅助字段,OK吧,好,那也就是说这个呢,是帮助我们计算诶其他字段的,比如说它能帮助我们计算这两个字段。
01:05
对吧,啊,你不用考虑我们当前这个需求的实际情况啊,那他没有帮你不要这样聊对吧?啊,那假如说这作为一个辅助字段,它是辅助我们生成这两个字段用的。啊,它是辅助咱们生成这两个字段用的好,那也就什么意思呢,这个字段呢,我不需要写出去。啊,辅助助战。不需要写入C。那这样的话就形成了什么,我们。招聘当中字段多。而。表里边字段少对吧,因为表里边呢是五个字段,比如说表里边是这个啊ST keyword keyword count加TS,比如说在我们的扎并里边呢,是六个字段,咱们的扎这这个表呢,克里奥这个表对吧,它是五个字段。那。
02:01
我不需要把它写出去,如果说我这个工具类不改不调对吧,不做这种考虑,那是不是会报错呀。对吧,因为你只有五个问号。但是呢,你这边会便利六次。一到六都负值,它肯定会报错啊,那我们得想办法把这个怎么样。不需要。写出去对吧,诶想个办法把它。过滤掉。啊,得想办法把它过滤掉是不是啊,对吧,我们要做这样的事情啊,那这边呢,其实在招聘当中,它有一个这样的注解啊。哎,这个就是渣并当中的一个注解,看见没?啊,它有一个这样的注解,这个注解大家知不知道它是什么作用。
03:04
这个注解它是什么作用?他表示不做不知道是吧,他表示不做这个。不能序列化,对对对对啊。不做序列化。啊,就不做序列化对吧,啊不去序列化是这个意思对吧?好,那正常的,你传输你要序列化,那这个呢,它不做序列化啊好那。我们也模仿这个来写一下,我们写一个呢,我们自定一个注解,对吧,我们自定一个注解,假如说这个注解名字呢,我模仿他来。对吧,啊,我叫这个transend think,诶那就是不写到think里边不写出去对吧,不能写出去,我们自定义一个注解。OK吧,我们自定一个注解来完成这个功能,就类似于刚才说的,哎,不做序列化是一个道理,对吧?啊好,那我们呢,自定一个注解啊好,那把这个拿过来。
04:00
呃。我们的病包底下在这儿啊,来创建一个。啊,注意这个呢。Noation,对吧,我们要定一个注解啊,这里要注解,那未来呢,呃,加在这儿做这个事情啊,那注解呢,我们也要给它添加一些信息对吧?好,那首先呢,是。在注解上面呢,我们可以加一个target,也就是说它作用于刚才啊,我们我刚才只是随便写的,我刚才呢,写这个注解的时候,它直接怎么样。直接在报错,他说什么东西,他说。并不是这个字段的field上面等于什么注解,对吧?哎,你不能这个注解呢,不能随便加,那就是有它的一个作用域,相当于啊,那这边呢,我们加一个target啊target,那咱们呢,现在要加到field上面吧,对吧,我们这个注解呢,未来就加到这个字段上面的,那我们声明一下,诶字段对吧,除了这个之外,那它这个枚举类型有什么呢?呃,有类型对吧?加在class啊,Interface啊这个上面的啊,直接就加了对吧?然后呢,Method加在方法上面的,然后那个构造器的,哎,本地变量的。
05:10
对吧,还有这个就是说。朱姐本身的包的对吧,啊,这都有。对吧,它有它自己的一些作用欲啊,作用域,那咱们的这个是加在字段上面的,因为我们希望某一些字段不写出去吧,这第一个第二个呢,它的一个生效时机。我们让它运行时,运行时生效就够了,对吧?啊把这两个策略。保存这个策略加一下。就搞定了啊,咱们这个注解呢,就。写完了。好,那我问大家,哎,那这样写有用吗?我呢在这边看啊扎in里边我加了这个注解,我呢也写了这个注解,那么接下来他他就把这个S斯呢,不写出去了吗。啊。
06:00
他就能把这个S字段它不写出去了吗?是这样吗?那怎么可能,你你要是这个东西能这样做到。那还神了呢?对吧。啊,你要这样做,能做到这个事情,那你不还神了呢?是不是对吧,你就递了个注解,啥也没写,然后呢,把这个注解往这一加,这个字段就就自动扔掉了。那怎么可能是不是对吧,所以还有呢,工作要做啊,怎么做呢,我们呢,这个主体啊,其实可以帮助我们横向的扩展功能。对吧,你本来这个东西都写好了,那我们呢,要扩展一些功能,那我们在这边你能获取到这个值,你也能获取到。
07:03
注解。啊,你也能获得到注解,好,那这边叫尝试。尝试。获取。字段上的自定义。注解,对吧?啊,为什么尝试获取呢?因为有的字段有,有的字段没有fails get叫get an notation对吧?然后呢,我们的类叫什么叫transcit。S。点class得到一个什么呢?性的一个注解对吧,我们判断if。啊,他呢,如果。不等于,那说明我们当前这个字段上面确确实实有这个注解,能明白吗?如果我获取到的注解,它不等于none。
08:03
那是不是说明这个字段有这个注解,那有这个注解我就不写出去,当时我们定义的是不是这个字段我就不要,那我怎么办?如果说它不等于呢,我这写什么。我这应该写什么,就是这个字段我就不要了,如果他有这个注解我就不要了,那这块我应该写什么。啊。我应该写什么?就是我我怎么这个子弹不要了。写什么不知道吗?
09:02
都到这种程度了。是不是continue啊?我赶紧到下一个数据吧,对吧,这个数据呢,我就不要做这个事儿了,这个字段我都不要了,对吧,我我我还要这个什么获取值赋值吗?我肯定不需要了呀,我直接continue就好了吧。我就相当于跳过当前这个字段吧,对吧,啊叫跳过当前这个字段。啊,忘了忘了,怎么拼了啊。Continue啊。我们是不是继续啊,这个能明白吗。OK吗,这个。这个能看懂吗,现在。把这个全部都写出来了,大家就能明白了吧。这块能不能行啊。给点反馈好吗?
10:03
啊。好,那这个有个问题呢,其实它里边还有一点小小的问题啊,来看问题是什么呢?比如说啊,咱们的招聘啊,这边呢写招聘。这边呢写table。啊呃,我招聘呢,有五个字段A。B。C。D。E。我呢,这有四个字段。有四个字段可以吧,好呃,C呢加了那个注解嘛,对吧,有那个注解啊,C呢加了一个注解。OK吧,我给C加了一个注解,这个C不要,所以呢,没有什么对吧,这边是abcde,这边是AB de,好那这种情况,那招聘呢,它是从零开始变利的,对吧,这边呢,角标是从一开始的,但是这个没关系,因为我们呢是I加一对吧?好,那A正常对应上没有问题,它呢是零一。
11:05
234,它呢是1234对吧,位置啊0234好,那这个没毛病,零呢I加一一对吧,B呢加一没问题好,C呢跳过不管对吧,因为直接continue好,那么到了D接下来变成DD呢A等于三,三呢加一变成四了,诶指向它了,四呢指向这个位置没人了,是不是你发现到一个什么问题,一旦你continue跳过了一个字段,接下来这个角标。就不对了。就是你这个I是不是还正常增长啊,但是这边它少一个字段,你看啊,你把D是不是给了E,但是接下来这个E呢,没人给了。那。这个问题能明白吗?我现在举出来这个问题大家能看得懂吗?就是我们跳过C了,但是I是不是还正常长啊?
12:00
对吧,虽然你C不往下处理了,直接continue了,但是这个I是不是还在涨啊,对吧,那到D的时候,I对应的是谁啊是三。I对应的是三啊,那就给E赋值了,E呢,对应的I是四。哎,那给了一个空腹值了,那这个不行啊。这玩意儿哪行啊?对吧,那怎么办,告诉我。这个问题。单独一个字段记录。呃,能不能说清楚一点,单独一个字段记录是什么意思?
13:01
啊,Continue,前I减一啊I减减是吗。嗯。有的说了,娜娜你不是continue那个I加了吗?我把它减回去,把它退一格,那这种行不行啊。啊,不用I加一使用。J记录J变化可不可以啊?对吧,啊,那严总说刚才那个A减一,有两个同学说了A减一对吧,云总说不行,为什么不行,给他们解释一下。为什么用A减一不行?为什么用A减一不行?啊。为什么用A减一不行啊?又变回去了,对,如果说你在这儿,你想想看啊I减减。
14:02
你在这I减减,因为I呢是循环字段,好你碰到这个字段,比如说刚才我们那个I是几啊,是三对吧,三减减变成二,二呢,你continue,然后接下来A加加进入循环吧,是不加以后循环又变成三。死循环。死循环能懂吗?刚才说A减一的同学能明白吗?如果你在这里边用I减减,你循环条件是I加加一旦。进来这儿了,你将会陷入死循环。你将是一个死循环。能懂吧,啊,所以你不能在里边再对I进行操作啊,你会影响到循环的啊,对I是控制循环的条件啊,所以呢,就像云总所说,我们另外搞一个变量,当然我就。不用那个J整个做记录了,那咱们这样啊,咱们这样你不是往前推一格嘛,对吧,很简单啊,呃,我来一个J等于零啊,我定一个另外一个变量,或者叫奥赛啊偏移量。
15:04
默认的偏移零个。啊,默认呢,是偏移零个可以吧,好,那么接下来呢,这边如果一旦发生了一个,那我们就偏移一个,那就off,怎么样加加off赛加加这边呢减。对吧,我另外定义一个变量来控制这个东西就好了,你不要对I进行控制。对吧,你这边用I减减是跟我减一是不是一个道理啊,对吧,但是你I减减就不行,因为你循环条件是I加加,你这里面一旦出现I减减完了。你一旦进入A减点了,你就陷入死循环了,你不进去还好说对吧,一旦有一个这个注解,你就彻底玩完。就不用想了。直接GG。就欢声笑语中打,打出GG对吧,就卡死了对吧,铁死循环呀循环两点是下家,你写的是减点,你不疯了吗?能明白吧,对吧,它这意思啊,所以呢,我们另外定一个变量就好了啊,一旦发生了一个,那我就变成一了,变成一我我把这个一减掉,我是不是向前推了一个。
16:11
对吧,或者像云总所说的,我呢用I便利,但是外面呢,搞一个J等于零对吧,你每一次在这个结束后我去干什么。J加加也可以,我在这个后面去加J也可以,对吧,只有当你把这个数据完整的写入了,我才去加一。是不是也可以,我不用I去作为这个。Index,所以位置我用纯用金对吧,我在这去写一个在这后面,哎,那我如果从零开始对吧,这写谁呢?写J加一,我在这J加加。是不是也可以啊,甚至我这从一开始。我我这直接写J就行了,直接写一个J对吧,是不是也可以啊,对吧,你你不要对I进行控制啊,你不要对I进行什么呢。操作你对I一旦一旦对I进行操作就完了,彻底完了,对吧,不能搞的啊好,那这个就解释清楚了,那到这个位置呢,咱们就整个搞定了,搞定之后呢,注意啊,这儿是我为了演示说明的,把这个注释掉。
17:12
如果说这边我不出示,那完了。那我们就完了对吧,啊,那那那我的表呢,是六个字段,你招聘的是五个字段,那不行对吧?好,那这边呢,就彻底的搞定了,咱们终于终于把这个什么工具类。方法写完了啊,终于到这一步为止,才整个的怎么样完成了,OK吧啊。
我来说两句