00:00
好,那么呢,存储过程我们就定义出来了,我们接下来用MY贝调用一下这个存储过程,完成我们在Oracle中的这个分页功能,我们来到我们这个employee map里边,我们来定义一个方法,诶,这个方法就是调存储过程的比get page获取分页数据,但是我们是by procedurec,我们是用存储过程拿到的,好,然后呢,我们来定义这个方法的实现走。好。首先呢,这是一个存储过程的调用,那增删改查该写什么标签呢?啊,所以说我们该写查询标签,使用select定义存储过程,使用咱们的select标签,哎,定义咱们这调用存储过程,哎,我们使用它,然后呢,ID就是它,它怎么能调用存储过程呢?这里边有一个statement,哎type,这statement type呢,有非常多取值,哎,有prepare的,这是我们默认的,哎,我们看源码的时候也知道,我们就是根据这个statement type来创建一个,哎,咱们这个prepared statement还是简单的simple statement,还是咱们这个能调用存储过程的accountable,所以说呢,我们要调存储过程,我们就得写这个值,哎,我们是cable。
01:29
把它改成来说,我们来调用存储过程表示。要调用存储过程。这是第一步,我们用select标签定义,第二步改它这个来表示要调用存储过程,接下来呢,存储过程的调用啊是一个固定语法,首先大括号,这大括号里边呢,一个后关键字,哎,我们要调用存储过程,接下来呢,就是存储过程的名,Hello test,好,这个存储过程名呢,把小括号就是存储过程的参数列表,而我们这个存储过程要调用,我们需要传入咱们这个配置这个分页对象,因为存储过程里边有四个参数,这四个参数呢,我们正好在分页对象里边啊,在这个里边有对应的每一个的值,所以说呢,我们把这个map方法,我们规定的时候让它传入配置对象,好,我们自己的配置对象传入以后呢,我们接下来在这一块重。
02:38
主过程每一个参数的取值,哎也是一样,井号大括号,我们把派置对象中哎,Start的值作为哎,我们来看啊,第一个参数是start,所以说呢,我们把start属性的值取出来作为第一个参数,但是呢,我们得告诉myab这个参数的哎,它是我们输入参数用木的属性等于in,告诉这是一个输入参数,并且呢,告诉MY这个JD bc type,我们调用存储过程呢,我们都来告诉它的JD bc type类型,好,这jdbc type怎么写呢?我们需要参照JD bc type这个枚举类,哎,这个枚举类因为我们传入的第一个是人家这有,所以说呢,我们就直接写。
03:30
好,接下来我们这个写完以后,哎,我们这个就可以第第一个参数定义完毕了,接下来我们来取第二个参数,第二个参数呢,是我们存储过程中的这个PN的这个N呢,对应我们配置中的这个N的属性值,好,我们也是井号N的,取出这个,它呢也是作为输入参数的,我们写目的in,然后呢,它的JD bc type,哎,也是咱们这个in,哎,整数行,接下来我们取出第三个参数,哎,我们存储过程要取四个参数呢,我们来看第三个参数呢,是一个P-outt count,那我们这个总记录数,总记录数呢,它是一个输出参数,总记录数在我们配置对象里边对应count属性,好,那么这一块就取出count的值,然后说明它是一个输出参数,好JDBC态JDBC的类型,哎,我们也是。
04:30
是一个配,哎,总计录数是一个整数,接下来继续进号,打括号。就是最后一个,最后一个呢,我们存储过程中有一个游标,而这个游标的值呢,我们是希望全部呢,封装在employees属性中,所以说呢,我们把这个。Employees拿过来,好,我们接下来呢,应该是取出employees的值,但是这不是取出好,我们是把employees的值,因为它是一个输出参数,这个输出参数呢,我们这个EE是一个邮标,对于我们这个查询语句,查询语句呢会查出很多结果,这是一个邮标,我们可以便利邮标取出每一个结果,而每一个结果我们都应该封装成一个employee对象,最终呢就会形成一个employee的list几何。所以说呢,我们这一块得告诉马如何封装游标查出的每一条数据,对于游标怎么处理好,我们写一个目out,它是一个输出参数,但是它的JDBC类型是一个游标。
05:43
这个游标呢,我们来往下看,有没有呢,往下翻,诶这有一个叫coer,诶这个coer呢是Oracle中特有的,所以说呢,我们用Oracle来作为演示,好这个类型呢,为了支持Oracle中的这个游标,好接下来呢,我们来继续。
06:01
指定它的Java type类型。这个Java type呢,我们指定成result set,哎,它是一个啊,它的这个Java类型呢,就是我们的这个结果集,哎,我们Java circle包下的这个结果集,但是这个结果集该怎么封装,我们需要用map。属性来指定我们这个结果集里边的取出的每一条数据怎么封装,我们每一条数据希望是封装成一个employee对象,而这个employee对象的封装规则呢?哎,列字段跟咱们这个扎宾的名又不一样,我们来可以看一下。那么这个数据库表里边的employees这张表里边的这些数据,哎,又跟我们咱们这个扎不一样,我们来定义,自定义一下这个数据的封装,好我们来写一个result map,好我们封装employee对象的时候。
07:02
好,它的ID我们就叫配置EP,我们是按照这么来封装好,这么来封装的时候呢,我们来定义一些封装规则,ID,它的主键列。主见列C在数据库中对应的列叫employee I在我们Java b中对应的属性,哎,对应的属性呢,我们叫什么来着?哎,叫ID吧,好,还有一些普通的,比如呢,我们result。我们这个last name对应的这一列,这一列。在我们扎中,哎对应的属性是email,哎,比如呢,接下来还有没定义完的这个C,哎,我们这个email对应的这一列,哎,Email这一列。在我们Java中呢,也对应的是email属性好,那么这样定义好我们这个封装规则以后,哎,我们来用result map指定,哎,你的结果集里面的数据给我封装成,哎,这个按照这种规则进行封装,每一条数据封装成一个n employ1对象来这么来封装,接下来我们就来测试调用来,这是Oracle下,我们把Oracle环境打出来,那么这个测试环境呢,我们来看啊,全局配置里边只有MYMYS环境,哎,这个呢,是我们MYSQ的开发环境。
08:32
我们把凹入口的炸包啦,这些呃,都拿过来,把我们在之前的这个二号工程里边,把凹入口的这个炸包。我们拿过来好,然后呢,我们来导入到咱们这个项目下来,导入进来好,接下来呢,我们再来看Oracle炸包,拿过来以后呢,我们再把咱们这个马贝蒂斯的全局配置文件,我们要引入Oracle环境,我们把这个好,That,哎,DB con拿过来,我们用properties标签引入数据库的配置文件,哎,这里边呢,有一个resource,哎,引入内路之下的它好,我们在这一块呢,可以再来配置一个Oracle环境,我把这个配置呢,我也就不再写了,我把它直接拿过来,Oracle环境在这儿。
09:23
好。好,我们切换到这个入口环境。好,我们在呢,为了让咱们这个SQL语句能兼容过来,我们可以写一个database ID provide,大家也可以不写这个啊,不写这个的话呢,我们就不用写,写在咱们这个map里边。不用在这里边是不是写database ID了,哎,即使你写上哎也会没什么用的,所以说呢,我们如果有多数据库环境,我们都把这个文来写上,好,我把这个window呢,我们来配置出来,这个叫database ID provider,它叫DB。
10:03
DB window,而对于这个window里边的这些,呃,数据库厂商起别名,我也把这个以前的配置拿过来,DB好。把这个起别名拿过来,放在这儿好,接下来呢,我们来把这一块其他关掉。好,我们来到我们这个circleq映射文件行,我们这个这个存储过程就是我们这个Oracle中我们来调用的,其他呢,我们可以给一个ID,我们是MYSQL下调用的行,我就不给了,好,我们在这里边呢来测试调用。好,测试调用第2CIRCLE session factory,好拿到它再获取到circle session对象,点open session。好,拿到它。好,我们来TRY看open session.get member,哎,那么这个呢,我们拿到employee member。
11:09
点class。好,Finally。在那里,我们来关闭我们这个session。好,我们来看啊,我调用这个。第二啊,我们这个叫get page by,哎。按照我们这个存储过程,我们来获取一个这个配置,好,我们来导入,咱们来我们来创建一个配置对象,配置呢,是我们这个B影下的配置,诶哦,这个权利名是因为我们之前测试配置helper应该,哎,还有这个配置好,所以权类名就权利名吧,难看的话呢,我们把这个可以改一下名。好,给这个配置类呢,我们就叫Oracle的配置。
12:03
好,这块一改了以后呢,嗯,我们这个咱们这个工具会把这个map里边好也改掉没问题,好那在这里边呢,我们就重新来导这个叫Oracle来创建一个Oracle。Page对象好,我们就叫配置,等于用一个or page置好,然后呢,我们要查询的数据是点set start,我要查询,哎,第一行到。Set end的第五行的数据,好,然后呢,在这一块就会调用查询,查询以后呢,我们来就来输出,哎,可以输出总记录数,因为总计录数我们这个存储过程查过来会交给配对象的count,虽然我们给count没负值,但是在这一块查完以后直接拿countt值就会有值。哎,我们再来看一下,咱们只要查出的数据,查出的数据,我们先来看查出了几条数据配置。
13:09
第二,Get list来get我们的EPS,我们来看一下它有多少条,是不是五条数据,我们再来看一下咱们这五条数据都是什么,查出咱们的数据。Ins,好,我们来测试一下这个调用。走。诶调用成功了,我们来看总计录数123条,好没问题,查出五条数据,哎确实五条数据,查出的数据呢,哎这块有ID223225哦这些呢,哎这个数据库的查询我们来看啊select。咱们这个星from emps。Employees这张表。
14:01
哎,它这个223223是不是前面五条啊,哎,我们来看啊,正好啊,你们说EID正好呢,前面五条是咱们这个223225224245246啊,按照它这个长顺序来做的啊,22422522244以及245246,哎就是这些数据好没问题,当然了,大家想要按照ID排序,把那个存储过程呢,也可以改一改,按照那个排序查出结果,这就是我们对存储过程的调用,这个调用呢也非常简单,就是这么几步,第一步,首先呢,我们哎写好存储过程,改咱们这个查询标签的statement type属性,然后呢,再调用我们这个固定的语法call咱们这个存储过程名。满P我们就叫pro c name存储过程的名,以及它的参数列表,参数列表的定义,哎,就是在这一块定义参数列表的时候,哎,特别是对于游标,Oracle中的这个游标怎么处理,哎,大家来看一下就行了。
我来说两句