00:00
实际上我们在这个进行,呃,数据插入的时候,大家想啊,我这数据插入的时候,如果。插入的那个主件是数据库自动产生的,注意哈,不是序列,而是像买SQL这样,我插入一条数据的时候的话呢,它会自动的给我生成一个主件,那么我JDBC,我可以通过JDBC里边给我们提供API,我得到这个主件值。叫取得数据库自动生成的组件值。我们这个。放在这儿看,接DBC来。
01:02
Cat。He。说为什么会有这个要求呢?正常我插入一个这个插入一个就插入一个值呗,为什么我说我插入了一条记录之后的话,我还要知道这个主件值呢,大家想啊,我们以后的话呢,我们可能会做这样一个操作,比方说呃,一个人呢,下了一个订单,那订单里边包含很多个商品,那我在插入这个像数据包里边插入这个订单值的时候啊,我有一条记录,然后同时我还需要插入我具体买了哪些商品的信息,好了,我在买哪些商品的时候的话呢,这个商品里边有一个属性,是说我这个商品属于哪一个订单的,懂我的意思吧。买东西有一个订单,我先插入一个订单信息,然后同时呢,还有一些商品信息,这些商品信息在插入数据表的时候,他得知道我是属于哪一个订单的,然后只有我这些信息都插入成功之后的话,我这个事物才能完成,才算是完成这个操作的话才算成功,这样的话呢,就是在我插入订单的时候,我就需要知道那个订单的ID是多少,以备扣我那个商品信息来使用,这个时候我们就需要用到这个情景,等我们后边讲这个讲完账va web之后的话呢,我们会做一个小型的项目。
02:31
呃,小型的网上商城,那个时候大家就能够看到这个具体使用,那于是的话,我们来写一下它啊,插入用的,插入用的说插入这条记录的话,还可以得到那个组件值,我们写一下。Connection等于,Statement等于,看看怎么得哈,掰开。
03:07
一点。Col OK等于gd bc to,点代达connection搞到。然后写一个circle。我们看啊,Insert into customer。啊,有这样的几个email。Value。123。然后我如何插入呢?啊,我是这样插入的,对啊。
04:00
等于connection.statement circle。写完写完之后开始填充单位符,三就是一后边这个值。这个这个abcde。The statement said。Email。正二,哎。Abcde,硅谷反抗。给我一个that。三六,你这应该是个什么太太啊?Circle date是吧,里边是一个吧,看这个把它加上点加个。
05:07
好写完,然后我执行一个更新操作,点更新啊写完了。写完先看效果哈。跑一下。好了,看那个值。是不是进来了abcde是它吗?能进得来,能进得来的话呢,这个主键值是八,我们想干什么呀,我们的目标就是我在插入这套记录的这个同时,我能得到那个主键值是几,怎么得。就这件事哈,就这件事儿,前面的步骤呢,都是一样的,我们刚才呢,我们在创建这个prepare statement的时候,大家可能隐约的看到了。
06:03
API。一个重载的方法,Statement等于connection点,大家看是不是有好几个重载的其中第二个。叫什么呢啊,产生逐渐值,我们看一下这个方法。Connection statement。这个方法打开。好了,我们直接看这个参数说呀,这个参数是说什么,它是一个flag是吧,这是一个这个标记说啊,是否让它返回自动产生的主键值,这个可以是返回,也可以是不返回就自动产生主键值,这个适用于什么呀?这个仅适用于这个呃,像买circle这种自征的方式,而Oracle的话,我们插入的时候,我们是要指定那个序列的,然后直接调那个序列的next value,而这个的话呢,是是自动产生的,我们可以那么写一下吧。
07:18
这样写来repair statement给他circle口是必须的,那后边这个值写啥嘞,说了是吧,它有一个嗯,叫常量,里边有个常量来过来看。点有一个常量between generated,好传完。接下来好了,说这个时候的话呢,它就可以来返回这样的一个主旋主旋值。咋出来的?好啦,那我来说吧。
08:03
一。这个步骤是这样的,是这样的,首先呢,我们注意到诶。这个搞错了。这个可能组件的话呢,我们先需要这样,需要在这里边,嗯,要使用重载的。这个方法。什么呢?后边是来生成repair statement。对象,这我们知道了是吧?好了,下边我如何来获取这个结果,通过一个方法,Statement点。它有一个方法,会返回一个结果集。
09:07
查询的不是啊。它会返回一个结果集。行,你看样子吧,然后呢,我来应付一个。2s.next反映一下2s.get object2s.get object1你看结果。不是这。点看这方面看。
10:04
十。新进的一条是十好,我把这几个删掉。再看一遍。11。插入一个11,哎,通过这样的方式好,通过什么呢?通过这个方法。获取。包含了。组件新新生成新生成的主件的什么方法?新通过这个获取包含了新生成的主件的result set result set最项result set me smd等于2s.get data,然后直接这个for循环。
11:14
In I等于0II小于RSMd.MD.get扩拢框,哎,下降。Six。2RSMD点盖。Him。博士雷是name啊,Name I加一康利知道啥?换一下。这不只有一个呀,就是说这个结果集里边只有那么一列一列的话呢,就是产生这个主键值是几行了,所以说这个使用方式的话呢,使用重载的这个方法,来来这个呃,使用重载的方法。
12:10
来产生它,然后的话呢,这块使用这个方法来获取这个对象,那这个这个中,哎在result。Set中只有。列。这里叫啥呢?叫kiss。这写的T,你看干什么呢,用于这个列,然后的话呢,用于垂放。存放呃,新生成的组件值,这就可以了,这就可以了,这就是我们这块跟大家说的,就是如何来获取生成的组件值。
13:14
这个到我们后面讲项目的时候的话呢,我们我们会用一下行吧,这是两个,这是我们讲到的什么呀,如何来生成自动的主键值。这就过了哈。
我来说两句