00:00
我们来看一下使用电梯BC如何调用存储过程,那我们在前边呢讲过。Statement跟实际上statement还有一个接口,看一下。啊,Statement我们已经讲过了哈,但我们现在长期用的是谁啊?是prepare statement,还有一个子接口叫Co statement这个家伙就是调用函数或者是存储过程的。好说我们可以通过connection对象的prepare Co方法创建一个Co statement对象,使用connection,在使用这个对象的时候呢,我们需要传入一个字符串,这个字符串指定了我们是调用存储过程还是函数过来看这个四符串从这考的啊,大家看带返回值率是什么意思啊,调用的是函数,函数是有返回值的,而不带这个呃,占位符的,就是前面不带这个返回值的,这个叫调用存储过程,它这块都写的一个procedure name啊,这个是带返回值的,调的是函数,不带返回值,这个实际上调的是存储过程。
01:28
好,我们需要传入这样一个字符串,然后呢,我们可以通过调用coal statement对象的resist out perter来注册out参数,Out参数是个什么情况?我说不,这个值能传回来啊,Out参数,那其中这个返回值呢,也是一个。Out参数,我们通过调用Co statement对象的set叉叉叉方法,我们可以为in或in out参数赋值,我可以把这个值附进去,然后我调用这个来执行,然后我调用get的叉叉的方法,把这个值返回就可以了,这就是整个调用的过程,那前提是呢,我们还得干什么呀?我们还得知道一下,我在我的这个数据库里边有。
02:19
哪些目前我们写过的这个过程或者是函数,我们可以通过select text,就是说我看一下以前是如何定义的,From叫u source where啊,我们写一个名字就可以,我来看一下我的存储过程或者是函数点它。My objects,我们先来看调用函数吧,Function啊,有这么多,我来找一个比方说。按的方式不行,我们希望什么呀,我们希望这个里边还有一个这个,嗯,返回值。
03:01
方程都是有返回值的啊那。这个就可以爱的方式看一下。这么写。His from from new south。Where?Name吧,Name对law name为什么写law name,因为这个时候我不知道它里边存的是大写还是小写的,这个时候肯定没问题,爱的方式好了,这就是我们以前定义的,以前怎么定义的是不传进去一个这个呃,I一个积,然后完了给我一个反回值啊,那这个时候的话呢,对于这个函数而言。它的这个返回值实际上是是这两个相加,这个返回值的话呢,就是一个out型的参数,我们还可以看一看别的,比方说some,诶这个里边的话呢,我们看我们写的哈。
04:21
哦,这个有个二三数挺好的,我们来用它来写,这是返回什么呢?这是返回的是总的总的工资还总的人数啊返回值。执行,这个不是V返回的some v some应该是。Count啊,返回的是种,返回的是人数是吧,但是的话呢,我这块我返回的是。工资看一下。咋写的,Somemp from,这是总公司哦,他这个返回的这个值是总公司,总公司,而这块这个结果是总的人数吧,是这样吧,然后的话呢,我用的是呃,Department ID,然后这块有一个输出没问题,好了,这个是执行,我们可以执行一下,看一下效果。
05:15
CTRLCCTRLV。Set throughout put on。好了,这不是吗?总人数是32,总公司是它,来,我们来调用这个函数吧,写一下看看如何来调用这个函数g bc test。Public state at测试的是如何使用JDBC调用存储在数据库中啊函数或存储过程,好吧,那这个步骤的话呢,在这块我有清晰的写,我们可以把这个复制过来,来五步,CTRLC拿过来,CTRLV。
06:19
问一下。一稿。我首先需要一个connection。我们做什么不需要,可能还整的是吧。没有,这是一个数据库链接,没有链接的话呢,怎么都看不上。嗯。好,那我首先再看。Finally。
07:00
D一点BT.release OK now,第二个是有值的。Couple statement等于啊,这个得看他。好,后边没问题,好写完我首先第一步创建connection对象。At,好,然后是这一步,首先呢,首先我确定我要的是。这个。Control save的F。好,我首先我确定我第一步调的是什么,调的是这个,呃,存储调的是函数,于是。
08:00
等于connection.repair后,我就转成一个circle,这就长啥样呢?长这样大家看啊,Circle等于OK,我来写一个circle长的样子啊,跟我这上面定义的样子是一样的,带返回值的这么写。CTRLCCTRLV我们看。这个没问题,扣扣什么呀,我这个函数名叫。嗯。叫他叫some。好吧,这里边的话呢,有一些参数,这些参数是什么呢?这些参数实际上是几个问号。
09:01
应该是两个问号,为什么说是两个问号啊?这个。我们定义的是不是两个参数啊,两个问号,返回值是一个问号,一共是三个问号,就这么写,写完了,写完之后的话呢,看第二步。我们通过这个来注册型的参数,我们写吧。How OK,我们需要看一下什么呀?我们需要看一下这个index开始。Index从初一开始吧,好了,那于是的话呢,第一个是一个out型的参数,后尾的话告诉我什么呀,这不circle type啊,这个circle type我去哪可啊,我需要一个circle的类型,第一个类型应该是什么?好,看这个第一个类型,反回来应该是一个number型吧,这也是个number型,这个还是一个number型,好了,这个number型怎么进行注册呢?
10:08
Number型,我们到这个里边来看说。看这个connection。啊,OK,这个的话呢,我要注册sist后。Are OK,我们希望知道啊,这个不是circle time,看这个也行啊,Circle time这怎么看呢?java.circle.types里边是不是有啊?看见了吧,Types里边有,于是过来好了,Type。点。另类型。
11:00
好了,这是一个,还有第几个是呢?Out型的参数,这个是不是也是啊第三个。注册完好吧,注册完之后的话呢,再下一步。那个。我们通过sat上的方法为它赋值,这块的话呢,比方我负一个80号门的call包给们的点S2赋值为。十我就20号二号后门的,然后这个我执行过程或者是函数怎么执行啊,Co statement点执行,然后我需要有返回值,我直接调什么呀,我直接调get发装方法就可以了,于是我们我们看啊eagle double类型的应该是some s。
12:01
等于呃,STEM的点DOUBLE1,好了,还有一个总的数量。放行吧。EP等于Co statement.get。三好,跑一下,第三再来。PP。回来好吧,我们看我这块调的是多少部门的,就是80吧,32什么什么什么353536跑跑一下。出问题出啥问题了哦,不是中文号,我现在调的是什么呀?我现在调的是买circle口的版,应该是口的,所以说我这块改一下为口,其他不用改,只要改这几个地方就可以了,改吧动还需要考来。
13:14
复制了啊。大话。Control c。喂。C。这个呢叫JA2,哎,这就可以了,好了,这完成之后的话呢,还需要一个驱动程序,驱动程序直接复制了。直接复制过来。加到cloud。好,再看好还有错误。
14:02
哦,应该是有什么中国号的问题,是同学说的会来哦,这个中国号是没有啊,中号表示可选的意思吗?是5536啊32。对吧,五五三六三十二没问题,好了,这就是我如何来调用。函数,那调用函数质量的话,存储过程是不是一样啊,存储过程不一样的地方在于我这块这个语法不一样,这个语法是啥样的话呢,取决于我们这块这块这个里边就是说书里没有它的此外的地方都一样,OK,大家像我这样去调用一个呃函数,或者是去调用一个准的过程,OK,写一下吧。
我来说两句