00:01
比如说啊,我们当前的这个数据库表当中,还有另外的一个一个表啊,就是这里面有两个数据库表,还有另外一个表,然后另外一个表当中呢,它还有一个字段,这个字段呢叫author。好,这个字段也需要自动填充,那么如果这个字段也需要自动填充的话,我们就知道,首先第一数据库当中得有表,第二我们的实体当中得有类,对吧?类当中得有这个奥属性是不是好,这个过程我们就先省略了,我们就不写了啊,因为太麻烦了,你得创建一个表,在创建一个类,类里面还得定义属性啊,那我们就假设啊,这些都有了。都有了之后呢,Author也想做自动填充好,那么在author这个属性当中呢,我们也会去写什么呀,也会去写这样的一个注解,好这些咱们全都做完了,做完了之后要对奥做自动填充,是不是又会来到这个。类啊,也就是说实际上在咱们业务当中啊,你所有的这个实体当中要进行自动填充的字段,实际上最终都会写入到咱们当前的这个买卖object handler里面。好,那么假设我们已经有了另外的一个表,另外的一个类有了author属性,在另外的一个类当中,我们在这做自动填充,我们怎么写,我们是不是在这这样写就this。
01:24
点。Sat in search。Strict。Strict insert fill啊对吧,然后是matter object,然后我们要填谁,是不是刚才说了填另外一张我们假想的它存在的那个表当中的这个属性啊,好,那么就是它好这个属性的数据类型是什么呢?我们认为。它应该是一个string,所以我们把它填上,如果定义的话,肯定会定义成string的,对不对?好,那填什么呢?比如说我就填这个石头。
02:01
啊,这个就是默认的这样的一个用户名,明白吧,好那。接下来呢,我们来看啊,在这个地方我log一下log。Log DR info。Insert。Author。属性。好吧,啊,那然后接下来呢,我们就来试验一下,看看呢,在我们对user这个数据对象进行数据填充的时候,它会不会执行这句话。那我们。在这个位置吧。来执行一下它的insert啊右键,然后呢run一下。
03:00
往下走。看一看是不是执行了。也就是说,在我们为user。这个数据对象做自动填充的时候,实际上呢,这个优色数据对象里并没有。奥这个属性,而呢,我们在这个地方之所以写author这个属性,是因为其他的。数据的这样的一个对象里面有奥,所以呢我们就必须都写在这里面,所以呢我们就写了,但是你会发现它的效率就不高。因为现在我们对user做填充,我们只需要干嘛呀,只需要执行这两句话就行了,你把这句话虽也执行出来了,虽然没有对我们的应用程序啊产生一个副作用,但是呢,他却。影响了我们应用程序的执行效率,就没有必要去让他执行效率低,所以说呢,我们可以对它进行一个优化,怎么去优化呢?就你判断一下当前的这个。
04:02
字段里面有没有。我们的这个奥属性,或者说当前的这个数据对象里面有没有我们的奥属性,那怎么去判断呢?通过matterta object matter object,实际上呢,就是你要操作的这个数据对象的一些原数据信息,那么通过它点有一个方法叫做has。Has set啊,我们来看一下当前的我们的这个,嗯,数据对象里面有没有针对于奥所写的这样的一个啊,Center啊,就是。这样的一个方法对不对,如果有的话,那么这个方法呢,就会返回一个处,如果没有的话,那么这个方法呢,就会返回false,所以呢,我们来判断一下它有没有这个author。这个get和set方法。好,那很显然它呢会有一个布尔值啊,那我呢,就给这个布尔值呢,叫做has吧,Has。
05:05
Author,好吧,那然后接下来呢,我在这个地方呢,就判断如果has author啊存在的话。我呢在进行。接下来的操作,所以呢,把这个代码放到这个里面来明白吧,嗯。那这是我们对整个应用程序做的一个优化,那实际上呢,针对于前面的这些啊设置啊,如果我们做的严谨一点的话,做一个完整的一个优化的话,每一组我们其实都要做这样的一个判断啊,那我们以这个为例来执行一下,好,现在呢,我们再来执行一下。右键运行。主要是看一看刚才那个代码有没有被执行就行了。
06:02
我们来找到后面这块。啊,日志输出这个位置自动填充,后面呢,就没有再输出其他的日志了,也就是说通过这种方式呢,我们避免了这个语句的执行。明白吧,好好,然后呢,通过什么呢,通过先。提前判断一下啊,然后呢,来对当前的这个insert field呢做一个优化,好这个是我们啊说的第一个优化方案啊。
我来说两句