00:00
来,咱们一起来看一下啊,下面我们一起再来看一下批处理。批处理。我们用到了。我们用到了这么几个核心的API,第一个叫ADD batch batch叫批处理任务的意思啊,添加批处理任务。XQ的BAT这个叫执行批处理任务,我们还有一个叫clear。叫clear叫清空,如果我们执行完了,执行完之后你就清空嘛,哎,就这意思。所以呢,批处理的作用是什么?如果说我们每次就只执行一个,只执行一个操作,那如果说假假设咱们咱们有1万个操作,那如果我们每执行1万次,那这个效率有点低。那批处理是什么意思呢?我们可以把这1万个操作,我们分成100份,每一份都是都是100个任务。啊,把这100个任务,把把它绑定成一个批次,然后去执行,咱们只需要100次。我们举个生活的案例就很简单,比如说这个你开水果店是吧,你要去批发卖这个,这个进货啊进货,假设你每次去这个批发市场,每次总总进货进一个苹果。
01:10
那假设你需要进1000斤苹果回来,你得进进货,你得来回多少趟啊是吧?那怎么办呢?搞个小卡车,一次进100斤,一次进200斤,或者一次进500斤,那我来回的这个趟数是不是就比较少了?就这意思啊,OK。来,咱们一起来看一下啊。呃,在这个地方。我们如何进行批处理操作呢?我们如何要进行批处理操作呢?那么在ul中,我们需要添加一个参数,叫re。Bach的statement,我们要把它设置为two,不用死记硬背啊,不需要死记硬背,大家只要你能够理解,然后你把它留着,什么时候想用什么时候加啊。好了再来。然后呢,我们在调用方法的时候,我们就用的是prepare statement,它一个方法叫ADD半,然后我们就Q半就可以了。
02:05
所以咱们一起来看一下,比如我们来看这个例子啊,第一步加载驱动,第二步获取连接,这都是一样的,唯一不一样的就是我们这个121里面,大家看一下是不是咱们加载这个参数啊。好。再来下面是connection.statement这是不是也是一样的,哦啊,没问题啊,这是个in色语句,看看看下面啊,不一样了,负循环。I得一。I小等于1000。哎,说明咱们循环了1000次。然后PSMD.set object有点问号。Set object。设置完之后执行一下be。然后经过这个风险完之后,我们再执行XQ的半径。搞定就这么简单,下面的释放资源都是一样的。那行吧,咱们来试一下吧。
03:00
这个我就不再在上面写了,我直接把第一个复制一下CTRLCCTRLV。我写一个叫PROJECT06。JDBC,好,我写个叫bench BA ch bench,以及我们的data source啊,一会要讲啊。把他名字改一下啊。然后structure我们把它导入进来,这玩意不要了行吗?删掉了啊。找到model,点加号import。我们把零六把它加进来。好,没问题。呃,其实这个里面的lay啊,太多了啊,我们这边一个float没问题啊,我们添加是哪一个,我看一眼啊,是不是代零二,哎,这边有音色的是吧,那行吧,其他的我全删掉了啊,不要了。我只是保留一个弹幕,零二。然后我再把他的名字改掉。
04:01
我再改成代码零幺。我再写个半行吧,同学们。啊,这这没啥问题啊行。OK。嗯,这边的注释全去掉了啊,不需要class for name好。第二步,通过驱动管理器获取连接对象,我们再加一下。如果要执行批处理任务。需要添加一个参数,这个参数叫rewrite。Could you see。叫rewrite batch statements。好,我们把它设置为Q。OK。Can you see。所以这边我就全把它删掉了,行不行,同学们删掉了啊好。121。把它放到后面去,跑到这边来。啊,把他加进来。那行。嗯,下面是编写搜狗语句,我就不写了啊,这是搜狗语句色into fruit value,好,有这么多值,嗯,下面是创建预处理命令connection.statement好。
05:08
再往下咱们是不是要填充参数哦。你行怎么填充参数怎么填充来着。我们写个负循环,要执行批处理嘛。Int I等于零,I小于,比如说十次吧,I加加,咱们就搞十个啊,别搞太多了。好,1234,咱们把它扔进来。Set string,呃,这个名字最好别相同吧,榴莲咱们加一个,加个I的值行吗?同学们就榴莲零,榴莲一,榴莲二,一直到榴莲九吗?行吧,后面一样就算了啊。这是我们去设置参数,然后我们要做一个事情,是不是叫at be啊?看一下执行完这些是不是要执行at be啊,你要把当前的这个添加到批处理里面去嘛,然后循环的时候再设置参数再扔进去,再设置参数再扔进去,是不是这意思啊,那行。所以这步不太一样。
06:03
好,这个注释全去掉啊。这是不一样的地方。这第一个批处理。批处理操作。如果要执行批处理任务,那么121。121中。需要添加一个参数。KC,我们放到这。批处理操作二。叫PS mt.a bench。PSMt.be好。把它加进去。那行加进去之后。加去之后,我们经过了这个负循环,我们再去执行XQ的,那这个XQ的就不是阿了吧。哎,是不是同学们。批处理操作三。还记得吧,是不是叫XQ的半体?
07:03
哎,是不是同学们啊,就是它行,它返回的是啥?看一下半级是不是返回的是个数组啊,那你猜一下呗,这数组是啥呗。啊。我们把这个抗的值把它打印出来行不行,同学们。数组我们可以直接好像可以直接打印吗。估计还不行吗?哎,不行是吧,呃,那我就写个叫iris。点as list,然后把come放进去是吧,然后再点for可以吧,然后在system.out。脱水也行吗?我我没事啊。外面这个不要。是吧,同学们可以吧,变成集合嘛,然后再附一起嘛,一样的吧,行。啊,我们重点不在这啊,重点是咱们上面这个批注,我们试试看能不能执行成功。啊,咱们来试试。
08:00
点一下运行。API大家是不用去死记硬背的啊,哪怕你写错了都不要紧的啊。哎,怎么打印出这玩意儿。这有问题啊。啊,这个真是的,说明他这玩意儿他认为是一个对象,他认为这个对象是这个集合里面的第一个元素啊,第一个元素是一个数组。我们的想法不是这样的是吧,他和我们想的不一样啊,但是没关系,我估计肯定是成功了是吧,同学们。啊,肯定是没问题的啊,把这个看拿过来啊,点弄死。然后咱们打印一下,看当中的I是不是同学们。咱们就别打印了,我们看一下数据库行不行,同学们。数据我还好没有装。找一下数据库啊。什么数据库叫?我看一下啊。那个数据库叫什么来着?四个牙膏,一个是一个。看一下啊。
09:02
找到DB打开打开,右键打开。有的吧,零到九嘛,咱们刚刚新新建的嘛,是吧,新增了十个啊就这样,那其实这就是批处理。API其实非常简单,第一个U2也不一样。第二个be。啊,第三个咱们就执行XQ的bench就可以了。当然还有一个叫clear班级,什么意思呢?如果咱们这个批处理任务不是十个,是10万个。10万个力怎么能,可能等复循环全部结束之后,一次性执行吧,那这个效率可能也不太好。咱们可以每1000个执行一次。每1000个咱们就执行一次批处理。所以呢,我们可以在这个点if。如果I100分号1000。啊,反正差不多吧,啊,摆放1000等于等于零是不是。啊,如果说你和1000取余数的话,如果是等于零的话,咱们就PS mt.XQ的半径。EXECUT。
10:01
XQ的bench。执行完之后PS mt.clear。是不是同学们?这个不就是指的是每1000次我执行一次嘛。哎,是吧。不,不就这样的吗?啊。好,我们写一下。如果任务较多。可以分批次执行。每次执行完清空。清空任务列表啊,或者叫任务队列。任务队列。行吧,同学们啊,了解一下啊。啊。哦,我明白大家的意思啊,刚刚咱们同学问了一个疑问,假设我这边的次数,假设我这边的次数,假设我是9999次,你每100次执行一次,或者每1000次执行一次,那么最后一次不足1000怎么办?所以我后面这个XQ的半径我没删。
11:04
是吧,你想象一下,想象一下。最后的900,最后的999次,这个if成立不?不成立,不成立,是不是最后这个批处批处理任务里面还有999次啊,那是不是会执行这个。是吧,同学们啊,所以说不会有遗漏的啊,OK。
我来说两句