00:00
好,那我们刚才呢,咱们是讲了table ID这个注解的Y流属性,那什么时候咱们需要用到Y流属性啊,是不是应该是当我们的实体类中的属性叫做ID,但是它所对应的主键,然后这个字段不叫ID的时候,我们需要通过它的Y流属性来指定我们作为主键的字段。好,那我们刚才也看到了,在我们的table ID这个注解中呢,它不仅仅是有谁啊,有我们的value属性,它还有一个属性叫做type,那type表示什么意思?表示的是我们当前的一个主键生成的策略。好,那我们之前在测是我们的添加功能的时候,大家都知道ID默认的主键生成策略是什么?是不是应该是雪花算法,对不对,对吧?好,那如果我现在我不想使用雪花算法,我现在想使用什么?我现在如果我要来使用咱们买SQL中的自动递增,那我应该怎么操作呢?比如我为了咱们这个测试的方便啊,然后我把咱们刚才的。
01:00
这个表呢,进行了截断,然后呢,把这五条数据,然后重新添加到我们的数据库里面了,OK吧,好,那下面大家来看,如果我要想来实现一个自动递增,大家都知道,那我肯定是要将我的这个表啊,把咱们的这个主键的这个字段来设置为自动递增的,对不对?所以说呢,大家看好,咱们只需要在这儿把咱们的这一个对号给它勾上就可以了啊好,然后来点击保存,OK,咱们的自动递增呢,就已经设置好了,那我仅仅是在我们的表里面设置完之后就可以吗?来下面大家看好,我再来执行一个添加操作,大家看一下它是不是会在我们原有的基础上把最大的ID加一作为新的ID呢?还是默认使用咱们的雪花算法生成ID呢?来大家看了啊。来,咱们直接往下拉,大家会发现,哎,在这所输出的ID是不是还是雪花算法生成的ID,那所以说我们仅仅是仅仅只在咱们的数据库里面去设置就可以了吗?并不是因为my be plus,它默认生成组件的策略就是雪花算法,那我们现在应该怎么做呢?大家来看,我们不但要来使用它的value流属性,我们还需要来使用它的type属性,比如说我现在。
02:20
大家看好了,那我能在这直接来写type吗?肯定是不行的,因为我们之前咱们说的是,如果我们在一个注解里面你只使用了value流属性,那咱们的value流可以省略,而如果我要来使用的是多个属性的话,那我们是不是应该是要把每个属性名都设置出来?OK吧?好啊,行,大家来看在咱们的ideal里面是不是可以自动将VALUE6给生成出来,对不对?那tab是什么类型?大家来看一下ID type类型。而且它有一个默认值叫ID type的na,那na是什么意思,想必大家应该都知道了,对吧?是通过雪花算法生成ID,好,那如果我们现在咱们要想来使用自动递增的话怎么办?首先要满足两个条件,首先第一个条件就是你的数据库里面这个字段主键必须得设置为自动递增,然后第二个条件就是我们需要把咱们当前table ID这个注解的type属性来指定我们当前的主键生成策略,就是我们的自动递增,那该怎么来指定?大家来看,把ID type大家看这个是一个枚举类型啊,把ID type给打开之后,然后这里面的auto大家看一下什么意思,数据库ID自增对吧?那这里面呢,我们也只讲两个,第一个叫做auto,第二个呢,是谁呢?就是我们的ASID,而ASID来表示的就是我们的雪花算法,这个大家注意啊,好,当然了,雪花算法需要我们。
03:51
自己设置吗?也不需要,因为默认情况下它就是雪花算法啊好OK,那我们在这咱们来设置一下怎么设置啊,叫做ID type,点什么凹凸设置增没问题吧,然后现在大家看好了啊,我再把我们当前的这个表啊给它截断。
04:11
好,然后我们来刷新里面是没有数据的,然后咱们再重新来添加这五条数据,OK吧,然后咱们再把这个表中的数据给打开,大家看啊,应该现在就只有几行五行数据,那我现在我再来测试添加,大家看一下,这个时候它的ID还是雪花算法吗?还是我们当前咱们所设置的自动递增呢?来大家看一下。好,其实大家应该也已经看到这个效果了,对吧,ID是几六。然后我们当前咱们所生成的这个SQ语句还是添加的语句,对不对,但是为ID赋值了没有没有我们之前呢,然后是先通过雪花算法生成的ID,所以说我们要为ID赋值,但是我们现在咱们的ID是自动递增,那自动递增的字段咱们是不是不需要赋值,它默认就会自动递增,对不对,所以说大家注意来大家看好啊,然后咱们的at table ID这个注解的什么type。
05:14
属性,然后用于设置谁呀,设置咱们的主键生成策略。OK啊,好,然后主键生成策略的话,在咱们的笔记里面给大家写的有,然后咱们常用的主键生成策略就两种,首先第一种是id.ID它是默认的,对吧,是通过我们当前的雪花算法,然后来生成咱们的主键,好,然后与数据库ID是否设置自增没有关系,这个刚才咱们已经测试过了,就算我们把数据库的ID来设置成了自动递增,然后它是不是也会来使用默认的雪花算法生成IDOK吧,好,大家注意,然后呢,如果我们来使用凹凸的话,它也是有前提条件的,我们当前的数据库中必须得设置了自增才会有效,否则的话直接报错,大家可以自己去试一下。
06:06
大家想嘛,如果说你要是没有设置的话,对不对,然后那我们当前咱们的ID你没有设置自动递增,那我们来看当前执行的SQ句为ID赋值了吗?没有赋值,没有赋值它又没有自动递增的话,那这个S句肯定是会报错的呀,因为ID作为主键是不能为null的,它是必须要有一个值的,对不对,这样的啊。好,OK,那这个就是我们当前table ID的一个type属性,它是用来生成我们ID,设置我们ID的一个生成策略。
我来说两句