00:00
好,我们刚才呢,就把这个运行流程大致的给大家画出来了,画出来以后呢,我们来把这个流程。啊,我们得截取出来。然后呢,这个流程虽然多,但是呢,我们把我们关注啊,非常重要的那几点搞清楚,哎就对了,好把这个保存,保存到咱们这个呢,运行流程。这是查询流程。好,那么呢,在基于这个查询流程,我们来总结一下这个查询流程里边重要的这些步骤。好,这是这个流程,然后对于这个流程查询的总结。查询流程。也就是说呢,对于这个流程,我们需要知道的是,我们首先呢,在第三步会用代理对象来执行增删改查。
01:02
我们会先有一个代理对象。代理对象,而这个代理对象呢,实际执行增删改查,它是用它里边的default。啊,我们知道代理对象里边是不是包含了session啊。而这个deft session又执行增删改查,它又用的是谁呀,是不是它里边包含,哎,就是这个。哎,我们一直都看它是。Ex来执行增删改查的,所以说呢,我们接下来execu在执行增删改查的时候,我们这个流程我们就发现了,他先拿到我们SQ语句的详细信息,然后执行我们这个查询,平行查询的时候呢,它会创建statement对象A。所以说呢,我们这个ex。在这里边呢,它会创建出一个statement,看到了。
02:01
Handle,这个statement handle到了呢,我们把每一个作用都说一下看。哎,它就是用来处理咱们这个SQL语句,咱们这个预编译啦,预编译设置参数等相关工作。也就是说呢,就是哎,他呢,这个statement handle他来处理这些工作,那么呢,这个statement他创建出来以后,他还不满足。好,这个快速向驶好。置于底层,好这个STEM呢,它创建出来以后呢,我们来看到这个流程。Statement在执行SL语句预编译及设置参数的时候,诶借助了它创建statement的时候还创建了两个对象叫primeter handleler和咱们这个set handle。
03:00
哎,我们把这个给打错了吧,这怎么还叫paraer看到好这个呢,叫result set看到了,哎,你看啊,后边呢,都是我截的result set的图,好CTRLC,那么在这呢,会创建result set handle。这个图呢,我们一会给他给大家重新更新一下,好,也就是说呢,它在这会创建出handler和result set handler。哎,会创建出两个handle德,这两个handle德ler又有什么作用呢?Ter看到。咱们这个result set。Result。Set,咱们这好会有这两个handle了,而这两个handle了呢,我们刚才也看到了这个parater handle了。
04:03
把这个流程我们来看到这儿,好,查询在这儿。调查询咱们这个per handler呢,它是来设置参数,预编译哎等等工作,然后呢,并且执行我们这个查询,所以说呢,这一块它是用来。执行SQL语句以及预编译三。哎,Primeter handle了,哎,它不是预变一啊primeter handle了呢,我们statementment它是执行设置参数,而设置参数的时候呢,就是我们刚才也进来看了,在这块预编译的时候,设置参数的时候,哎,设置参数的实现呢,我们刚才看到了,它就是借助我们这个pter看到了来设置参数。好设置咱们这个一编译参数与用了。也就说呢,我们这个statement handle在设置参数的时候用它。
05:05
用它来设置参数。设置参数好。这个参数等等预编译都设置完了以后呢,啊,我们会有执行这个执行,执行完了以后我们再来好看它的这个实线执行,整个执行完了以后,我们又用result set来处理咱们这个。执行后的。查询后的结果。那他是来处理结果的。处理结果就是说呢,我们statement handler它也不是直接来做啊,然而借助这两个handler来处理,而我们这两个处理的时候呢,都有一个东西叫type handle。这个type handler呢,我们在p handler啊,设置参数的时候见过,在我们这个处理结果的时候呢,啊,我们也见过,哎,这是设置参数的时候他用type handler,你看啊,Default parameter handler,设置参数的时候他用这个type handler seter。
06:16
所以说呢,这是我们第一个。第一个设置参数来,它呢,就是在,哎,大家要看这个呢,就在default,咱们这个parameter handle里边。看到了里边能够找到,哎,它呢是用咱们这个type handle到来设置参数的。包括我们这个处理结果呢,哎,我们来到我们刚才也看到了,哎,在我们这个里边A。Set看到了,这里边它get property mapping mapping value,方法就是利用咱们这个type看到了,最终获取到咱们这个结果的。
07:00
获取每一个某个渣B对应的那一列的值。哎,这个类呢是default。这类我们叫TAT。上走。叫这个ul set看到了,好,它呢,它里边的这个。Get,哎,我们这有一个get property mapping。这个映射方法。好,然后呢,它这个方法里边呢,就是大概拿到我们这个啊,我们这个每一个参数,然后把每一个参数来是来获取出来,它是用type handle来获取的。好,Type handle了,从咱们这个result set里边,哎,我们结果集里边获取对应列的值,所以说呢,在这一块大家注意一下type handler的作用,设置参数以及哎,处理结果都是用type handler来做的。
08:03
所以说呢,他们两个回归到最终。都是用人家type handler来完成circle,哎,咱们数据库里边的数据和Java b数据的这个映射的。好。Type handle了,我们在这一块呢,说一下result set handle的错误,它是呢来处理咱们这响应,不是处理处理咱们这个呢,查询后的咱们这个结果集,哎,应该处理结果集就行了,处理结果的,而整个他们处理过程中呢,都是借助太盘的了,太盘的了在。整个过程中。过程中来来进行进行数据库类型。和张斌。
09:00
类型的映射。比方说呢,你看我们设置参数,哎,就是用type handle了设置,把Y6值设置进去,获取值也是用type handle了获取出来,哎,所以说呢,这一块我们只需要在整个流程里边大家知道这个图,而这个图最底层,哎所有的底层操作都是原生接DBC的statement也好。还是prepare statement也好。都是调用原生接DBC这一串,或者呢,它的的。来或者呢,哎,他们里边的那些参数预编译等等,都是调用这一串操作的,所以说呢,这是马贝蒂斯的整个原理。好,这一块原理呢,大家只需要知道这四大对象,它们的作用都是什么?看起来ex是执行增删改查的,其实他执行增删改查也是用人家statement handle,而statement handleler执行增删改查的时候呢,又是设置参数用它,处理结果用它,哎,整个参数设置与结果处理牵扯到类型转换,又用它type了把这个流程大家只要搞清楚我们买贝蒂斯的运行流程就行了。
我来说两句