00:00
好,那我们继续看今天的内容,今天呢我们会把整个框架都讲完,首先呢来讲的是封装输出结果,然后这还有一个叫like的使用。第四章动态C,这个呢内容比较少,你呢理解就行了啊。第五章呢是配置文件这个呀,做了解就可以了啊了解就可以了,第六章是个小功能,用起来也很方便,很快能讲完,那我们来看封装输出结果。所谓的风窗输出结果呢,它只是你的买be执行完了CQ,咱把这个CQ与乐执行结果变成一个加入对象,这个呢我们叫做输出,也就是说现在是这样,这是你该买be腿,哎,它放在中间了。然后呢,你把cycle呢传进去。条件之后,那么它就在里边一顿处理之后,得到的是个扎入对象啊。
01:00
那就说这个账号对象,哎是怎么组织的,这个对象怎么创建的,这个我们叫做输出结果啊,输出结果我们来看这个输出结果都有哪些,怎么来处理。收结果呢?我们这里准备给大家讲两个标签的应用,一个叫做result type,一个叫做result map。好,那我们先说。输出结果中的第一个result type先说它。为啥太不?稍等一下啊,我去找一下我的。课堂笔记这是MYBAT。好,往下来我们来说这个输出结果啊,在这。我们看应该到第二大部分,然后第三大部分。就是买百乘以四的输出结果,所谓的输出结果呢,它指的是说你的买百乘以四。
02:05
MY执行了SQ语句,得到的Java对象是这样的。那这里我们讲第一个标签呢,叫做result type。这个软态呢,你拆开来看的话,就是什么结果类型吧。它叫做结果类型,结果类型它的纸呢。我们的赛科语句执行完毕后。我们的数据要转为的Java对象。这是result type。那ta它怎么来用呢?它的用法呢,是这样的,实际上之前的代码中呢,我们一直在用,只要是查询语句都需要有result type,这是必须的。
03:01
看一下之前我们的代码。啊,看家里面。只要是查询呢,都会有这个result type。这个他呢是指的是你的这个三个卷折完毕之后,它里边的这些数据要转为哪个账号,对应的属性呢,是这个student。那这里我们看type啊,它是怎么来处理的呢?它的处理的方式是这样,首先呢,肯定是你的MYVE执行SQ语句,然后你的my vet呢,它会去调用这个类的无餐构造。无参数构造方法创建对象。要创建对象。第二,你的my back,它会把result set中的这个列啊列值。
04:01
付给。孔明的。属性啊,会有同名的属性,这样就完成了Java对象的构建,还有属性的赋值啊,设负值。好,那我们拿一个例子来说的话,比方就是它了。就这个拿他来说,嗯。那拿这个来说的话呢,那就是干什么呢?那就是说我们要执行的是这条赛语句啊,咱条件这块我们就不写了,就这样就可以了。那对等的GDBC呢?对等的JDBC,那它应该这样说,Result set啊,Is等于我们去执行这个。Thankyou,之前就是这个内容呗,只用它啊,只用它。这个执行完毕之后呢,我们需要进行一个变力,阿尔点那的变力,变力这块王,我需要把这个力给负一个加对象,你才能直接用吗?那这里边这个死丢呢,就是说你要创建对象的类型。
05:12
在while中,我们会创建一个student,然后new一个student,现在来赋值student set,那这个赋值怎么用呢?你这个列名是ID,那么ID就付给的是丢的ID属性。它就会调用的是S丢set ID里边是R x.data ind就是这样,那如果你这块是这个name的话呢,它就调下的name里边是I该尺寸的name,就这样的一个处理的方式。那最终我们是把这个记录集的。数据转成是这个Java对象啊,是这个Java对象转成它,然后这个Java对象你就能够从my be的结果中来获取到了。
06:02
这样你的代码中就可以直接用这个对象了,这就是type的处理方式啊。好。那现在给大家演示一个例子啊,演示个例子,那我们现在。找到我的代码。还是一样,我把这个零四呢拷贝一份CTRLC加CTRLV。下面呢,我们叫做零五,我们叫做return result返回结果。把里边这两个呢,要删掉它。把破文件右键打开它,改一下项目的名称。好,名称artific ID改成你的零五,好,这就满足要求了,下一步呢,导入进来。导入的是我们的零五。
07:01
设置JDK。OK。好零五呢,打开之后,首先呢,一定是加依赖了,依赖存在没问题,铝塑标签加上了没问题。然后再往下。首先呢,Resource目录结构这个名称不对啊,就是resource,它的标志不对,不是直接文件夹,所以向右键。找到你的make啊。然后是result,好。那程序中呢,我们现在先保留一个就行了,找到你的接口。然后这里边呢,我们看看。这是把它这个注释都删掉吧,我们都不要了,这两个呢留着其他都不要。现在都删掉啊,先这样好。然后你的map文件中大段的注释,这都没用了,都删掉就完事了。
08:02
保留两个,其他都不要。这都不要。包括这个内容也都不要了,好了,那现在呢,我们来看第一个。第一个先看它的接口,接口是。Student单的返回值方法名叫做c select by ID参数呢是一个ID值就完了,那这个map文件呢,我们来看这是我们的CQ语句,我当然还是换成井号下略符的方式,那我们会执行这条CQ,把我们的ID name email都付给我们的这个student对象,那我们在用的过程中呢,你就会发现。我们在执行DAO的方法的时候,那我们看这当你执行这个方法的时候,得到是一个完整的对象吗?当你在执行这个方法时,应该得到的是一个完整的对象。
09:00
这个代码中有些方法我已经删掉了,所以它没有啊。后面这些都得删掉。现在我来执行,根据ID查询得到一个student。E。好,那我们看直行的3Q。然后我们看使用的对象,这是不是有了,这个对象创建了属性是不是也放值了,这是默认的规则,默认的是把你同名的这个列付给同名的属性,同名的列付给同名的属性,这样你通过买be的执行CQ就能得到一个完整期望的对象了,这下你可以拿来直接用,这是返回,是一个student。在接口中,返回值是一个student没问题,那么下面这个方法呢?它的返回值是一个list集合。
10:05
里边呢,是这个死丢,那在我们指定这条语句的时候是这样的,注意看。在整的时候,我们这一块依然是谁呀?死胆的你注意,这不能说list啊。这不能是list,这儿不是list,为什么不是list?因为你创建的对象是死丢的,然后是把这些列的值是付给这个对象的属性,你不是付给list似的,对吧。你是付给的,是死丢的,然后用my be把这个丢对象放到这个例子的集合之中,所以呢,你要转换的是对象,不是list啊,不是list,那在这里呢,你也可以把这个result type里边这个值呢,看作是接口中方法的返回值,那你看。
11:04
上面这个反回日死掉单的吧,那这个死掉单呢,和我们程序中的这个返回值实际上是不是一致的呀,你可以看到是它的返回值,就是这个返回值类色的呢,看下里边这个内容,看着它这就完事了,这里呢,我跟你明确的说明一下。我们现在呢,我这块返回值是一个type,是一个死丢呢,那么是不是说明瑞result type的值它一定是一个实体类呢?是一个实体类呢。啊,能不能说它这个是几类呢。不是。里边这个值是一个任意的Java类型,是一个任意的Java类型啊,这补充一下。那就是说我们这个result这个类型。数据转换为的Java对象,那么这个Java类型是任意的。
12:09
好,这个Java的类型是任意的啊,任意的就是说。你只要能够把你这个三个结果转成这个类型就OK。它不必非得是实体类,不必啊,就是你自己自定义是一个类型就行。那什么意思呢?比如说。啊,我想呢,把我们的这个查询结果呢。我想转成的不是色交单的,我自己定的一个某个类,那我们可以看这样做。那比如说我呢,在VO下面我来定义一个类,这个类呢,比如说我叫做没有student。我在这里边。
13:03
首先我定了一个ID,然后一个name,我只需要这两个。需要学生的ID和姓名,别的我不需要。完了,生成对应的set和get啊,这就完事了,Will student,然后呢,打开我们的接口。现在我们来定义一个student,那我就叫做select student。然后我们瑞呢,没有still的at。来指定一个sid。然后in t ID拷贝这个方案的名称,打开你的麦文件。这个粘上select。ID,然后type,我返回的是谁呢?是这个。com北京power note VO中的这个叫VO,我想返回它。
14:11
我的目的就是要进行cycle one得到是这个对象而已,那现在我们来执行select ID name。然后。我把email写上吧,包括这个age from student where ID等于。我们的参数名称,它是叫做sid。单位符sid,好,现在我来调用这个方法。拷贝代码。放到这儿,然后我们这个叫做没有student。
15:00
现在我们来调用方法。这个是啊,1005吧。零。啊,来实现我们这个代码。嗯,我们看这有什么问题。这个是说什么呢?你的没有不能转成student,是因为我现在的结果中这。百分之应该是没有。啊,因为什么呢?我们的这个接口,诶,它的反应式应该也是为有自由单的啊,这刚才我写的不对啊。Will the单的,因为这个结果呢,它得和你的raise result type,和这是得一致的,这是一致的啊,和它是一致的,所以你这里是唯有死掉的。你接口中的也应该是student。
16:03
那当你在执行代码时候,当然反之也是V了。保持一致。怀了之后,那我们看此时我们是不是拿到了一个唯有死球战对象啊,他现在呢?没输出内容,那我们再来写一个兔死盾吧。再来写一个初始盾,一共是俩属性。直径测试。好,我们看代码。这是不得到了一个没有自迪欧的呀。从这一点呢,也证明呢,我们的result type它在执行时。它是把你的同名的这个列覆盖同名的属性吧,因为它就两个,一个ID一个name吗?它没有别的,所以这些就是忽略掉的,当然你也可以不写啊,因为本身它也没用,哎,这样完全没问题的。
17:05
再来测试一把结果。我们看1005盾山完全没问题。也就是说呢,你想执行这个cycle,你想转到哪个对象,你就写哪个,这儿可以很灵活,可以很灵活啊。我们现在做的是单表查询,当然可以做多表查询了,多表查询也是一样道理,多表查询把查询的列付给我们的对象就OK了。它的默认规则是你同名的这个列要付给这个对象的同名的属性,这就完成了,这是反应对象是最常用的,那除了反应对象以外呢,还有其他的内容。
我来说两句