00:01
刚才咱们讲的这个table ID里面呢,可以设置主键策略ID type or two啊下课的时候有同学问呢一个问题,就是如果在数据库当中我们并没有设置。自动递增。保存,但是呢,在我们的应用程序当中,我们呢。为ID设置了。自增的这样的一个策略,它会有什么样的一个结果,我们先来分析一下啊,如果应用程序当中我们设置自增策略了,说明什么,说明我们的。业务层当中。是不是就没有策略啊,业务层当中如果没有策略的话,就说明我们业务中。ID为空对吧?好,那么这个时候呢,就把这个SQL语句组装起来了,不带ID传给。
01:00
数据库好,数据库当中也没有策略说明。数据库中。没有ID好,这个ID有一个特点就是它是主键啊。ID。是主键对不对,ID如果是主键的话,它有一个最重要的一个要求,就是什么呀,不能。为空,好组件是不能为空的,那是不是和上面这两条矛盾了,也就是说组件是不能为空,我们既没有在业务中设置,也没有在数据库中设置,那么我们的ID在数据库中进行音色的插入的时候就会出现问题,所以呢,我们分析完了之后,可以看一下是不是这样的。好,大家看一下最终的一个结果。在这个地方呢,我们会看到。
02:00
这样的一个错误提示叫做circle exception,然后呢,它说field u ID没有默认值对不对,同时呢,在下面这个地方,当它生成circleql语句啊,要在我们的买circleql当中执行的时候,它也告诉我们了,这是一个circleql exception field的u ID does't have a default value对吧?啊所以这个呢,就是他整个的一个错误分析啊,当然了,作为你的话啊,你可以先执行,执行完了之后倒推,其实也可以推出咱们刚才的这样的一个逻辑哈,好,那这是刚才咱们同学问的一个问题,我把它还原回来,那么。嗯,还有就是假设说我们这个数据库表里面有很多的呃,表,这个数据里面啊,有很多的表,然后呢,这个每一个数据库表呢,都有一个自增自增的这样的一个要求,那就意味着我们在我们的实体类当中需要。
03:00
对这个ID全都设置,主键自增策略,每一个类当中都要设置,那有没有一个方便的方法呢?是有的,你可以呢,不在这个地方设置这个自动策略,你可以在配置文件当中去设置,那如何设置呢?就是它。把它复制过来先。我们呢,找到配文件。好在这里面呢,我们添加上my biggest plus下面的global configig,然后DB config,然后ID type auto two啊把这个策略呢,给它设置上就可以了,这样的话呢,针对我们所有的。数据库的一个实体类,它都可以自动的呢,被设置一个凹凸策略啊,也就是组建自动策略。好吧,啊,所以说这块呢,我们在最后来进行一个测试吧。
04:01
好,大家看这一次我们的插入呢,也是成功的,因为我们做了一个全局设置好,这个呢是对主键自增策略的一个补充。
我来说两句