00:00
我们来看一下,如果orac口中使用序列的话,我们这个circle怎么写,行还是这个插入我写上两个版本,那么呢,刚才这个我们加一个database ID,那么呢,它是my circle的版本,哎,我们这之所以这么能写,因为我们全局配置文件中之前哎我没删掉,全局配置文件中我们配了一个ID provide这个数据库厂商,咱们这个支持的这个鉴别器,那么呢,我们给MYS起了一个别名。所以说呢啊,我们这一块说它是MYSQL数据库用的好,我们接下来再来把这个插入还是咱们这个插入。但是呢,接下来这个插入参数类型我就不写了,它是我们这个Oracle下的插入。那么Oracle下的插入呢?我们其实刚才也看见了,分两步。分两步,第一步哎,我们这个插入,这只是一个插入CTRLC。
01:08
当然circle里边的这个主键诶。哎,咱们这个插入时的组件。主见是从咱们这个序列中拿到的。比如说呢,我们这个主键是从序列中拿到的,我们要插入的值动态传进来。好,取出这B里边的last name跟我们这个email。而这个主线主线呢,我们这一块怎么办好,首先呢,我们这个主键是从序列中拿到的,那怎么办呢?哎,我们这一块有一个标签叫select k诶。那么呢,在select k标签体中就能编写咱们这个查询主见的思考语句。
02:01
所以说呢,我们把查主键的那个,我们放在这里边。我们插入之前,我们先把我们要用的这个主键ID我们插出来。好,CTRLC。复制过来,还有大家注意啊,写circleq千万别带封号,把这个封号我也删掉好,那么呢,这个circle语句是专门来查我们主建的,那么呢,查好以后把这个主件才能进行插入,而这个circle里边有一些属性,我们来看,首先有一个key property。这key property的意思就是把查出的这个主件封装给Java的哪个属性。出的主线值封装k Java d的哪个属性?那么呢,我们查出的这个主键自然要封装给我们传入的employee的ID属性。好。这个时候,哎,只要查出来这个ID了,我们在这一块动态取出ID,哎,这个ID就是从我们序列中查出来的值。
03:11
但是呢,我们也知道这一句circle口一定是不是在我们插入之前运行啊,只有在插入之前运行了ID才会有值,所以说接下来还有一个属性叫order北方,诶这个order。它有一种取值叫的意思,就是我们这个。当前circleq在咱们这个插入咱们这个circleq之前运行,哎比就说呢,这个circleq是在这个circleq之前运行的,额外的呢,我们再来说你查出来的这个主键,你要封装给ID,那么呢,查出来的结果。返回值类型是什么?来,我们来给他告诉我一下。那么我们要封装的这个ID字段,那么是一个。
04:02
好,那这个呢,查出的咱们这个数据。返回好,我们可以写上这些属性,那么这些属性呢,在我们官方文档里边,哎,都有咱们这个提示,比如我们这个select key标签,大家可以往下翻来到这个标签。那么order呢,有咱们这个还有after。那么我们刚才用了一个这个before before,既然是之前,那我们来说这个after。After after意思应该是当前circle在我们这个插入circle之后运行好,我们这个查主线要先运行的,所以说我在之前运行,那么这个我们就写好了,写好以后我们来这儿进行测试。来翻好这块呢,正好有我们之前的这个插入方法。那么就拿它来测试,拿它测试,我把数据库环境切一下。
05:01
好,现在还在用my circle环境,我来切成Oracle。好,我们来测试。这块的ID呢,我们没给,但是我们插入记录以后,我们看能不能拿到ID。糟。哎,运行成功了,来看ID224,为什么是224啊,来分析一下流程。哎,我们要插入这个N1对象,好来到我们这个插入方法,但是在这个circle运行之前,它先运先运行,因为order是北before,所以说先运行这个S语句。这个SQL语句它会查出来224,把这个224呢,它会交给ID封装好,封装好以后再去运行我们这个插入语句,把这个ID值再取出来,那么我们这个插入就有值了,所以说呢,我们这个运行顺序。
06:00
哎,顺序大家就知道,那么呢,先咱们这个运行我们这个查询ID的,咱们这个思。Select k查询ID的S,然后呢,再运行我们这个插入的circle。而先运行这个,它就是查出ID值。封装。给咱们这B的ID属性。然后呢,我再运行插入色口,这时就可以取出。ID属性对应的值。所以说呢,如果不自增的情况下,我们就可以这么来运行,当然这是北方运行顺序。好,没问题,我们在数据库里边对比一下,我们刚才插入的记录是不是24好来查询。走。插入的这个尖。
07:01
好确定就是24,所以说这是咱们这个北方,那么呢,还有一个after,这个after呢,既然在之后运行,它是怎么用呢,我们也可以这么来用,用插入的时候呢,我们这个ID值我们不从渣B里边取了,我们直接拿到序列。的值,我们的插入还可以这么来写,比如我们把这个插入再写一遍,那么这块值我们来写成来,我从序列里边,好,这个序列里边直接拿到下一个next value,好,我每次进行插入我的命二。的命二。走好,我们又插入成功了,所以说呢,我们把SQ语句也可以变成这样。Con。好,我把这个SQ语句除掉。你也可以变成这样子的。过来。好这个ID值呢,我们这么来取,那这么来取的话呢。
08:06
好,这个呢,是在北的,也是大家注意一下啊,北before。哎,这是这是北方的演示,好,那么呢,这下边这是after的演示,那么呢,我们可以让它先插入,插入以后呢,他在插的时候就会自己拿到这个ID值,完了以后呢,我们还想要获取ID值,我们就可以,哎,让他插入之后,哎,我来运行查询方法,查询就不是查询next y6,而是查询当前。当前这个外流值,那么可以看一下,当你这个插入成功以后。能查询插入成功以后呢,咱们这个。哎,就是225,我们可以拿到咱们这个序列里边当前的值。意思咱们这个circle的当前值,它有一个current value,对,然后呢。
09:04
这么。哎,他就能拿到我们刚才哎刚自增到的这个225,所以说呢,我们把这一块circle就改成CY6。哎,原来呢,是咱们这个n value。这是北方,北方版的。好,我们来写阿版的,阿版呢,我们也就是说这一块我们可以。获取它当前的。好,我们来再来运行测试也是没问题的。好杰瑞二。走。好这一块呢,他能拿到226。我们来看数据库,哎,当前是225,我查了一个记录,哎,那就是226没问题,所以说呢,如果是after以后。哎,北方的运行顺序是这样的,那么after的运行顺序。
10:08
就是。先运行插入的circle。先运行插入的circle,而这个插入的它会自动啊,它会从序列中。中取出,取出咱们这个心值作为ID,这个插入一完成以后,序列里边值已经取到了,然后呢,我们再来运行。再运行我们这个select k。查询ID。而这个ID的circle,而这个ID的查询,哎,就是还是一样,从这个表里边,从这个序列里边查询出当前的值,然后把当前的值封装给JB的ID属性,接下来你就在这个ID属性就有值了,我们就在控制台能看到了啊这就是我们如果非自增的情况下,我们怎么来获取,当然如果是这种方式,那么呢,可能就有点问题了,嗯,这种方式的话呢,我们先插入,如果同时插入好多条记录以后,你这个current y6,那么获取的那么就是我们这个,呃,最后一次记录的值可能不是我当前的,所以说呢,我们最多运行使用的还是我们之前使用北座的方式,这个after的方式。
11:30
啊,可能会有一些问题。啊,我们呢,还是使用我们这个北的方式,After的方式呢,大家也来了解一下就行了。好,这是after的方式。好,这就是我们如果数据库非自增情况下,如何获取主件,就是使用select k标签,让我们这个circle语句啊,查询主键的circle,提前运行,查出主键给Java b,然后再在后边使用主键值就行了。
我来说两句