00:00
开始上课了啊,来,继续往下来。那我们看下一个内容,我们来看一下呢,Map,这个map呀用的比较少,给大家介绍一下,他说呢,我们的接口的方法。它的返回值呢,是一个map啊,是一个map。MYBA呢,可以把查验结果呢组织成一个map的结构,现在我们来看一下返回ma。返回map呢,我们准备这么做,首先在接口中,哎,我们要定义一个方法返回map,这个map呢,它的类型,我们的K和值呢,建议用object,用object select map I ID参数呢是一个主键ID。好,放到这儿。拷贝方法的名称,打开你的麦文件。
01:00
现在我们说的是返回my select ID。这里tap呢,你可以使用的是map map就是别名,或者呢,你使用Java点油条点。他Mike,哎,也没问题,Select,我查询一个ID,查询一个姓名,让still点的YID等于占位符l toid。这就写完了测试代码。啊,我们拷贝一个,比如这个方法吧,拷贝一下。这是返回麦。Select my。现在DAO去调用方法。Select map乘一个1001的ID,我们得到的是一个my object啊,这是一个map,我们来输出这个map map,看它是什么样的一个结构啊。
02:19
来进行测试。好,测试结果呢,我们来看啊。这是C口语句,然后呢,参数101。两列ID列,内列只是101和李四,看这个map什么结果,看到了吧,这个map的结果实际上就是这是你的列名,你子列的值,列名查出的列值以这种结构来组织的,这个麦头是这样的。那这里边儿你查出了两列。列名是K。
03:00
查出的列值是V0,这是map的方式,我们把它呢标注一下,返回map,它的结果是列名第一。列名是麦的K。K列值是map的V啊,这是结果,那我再增加一个列,比如说再增加一个email。哎,那这时候你的map应该三个K了。在一个。我们来看。你看现在是不是三个K了,那现在map的操作,咱们几项记录只有一行吗?一行,那如果反应多行会是什么样呢?比方说我们的ID呢,是大于它的。
04:05
大于1001的,大于它的啊,哎,你再走一个。我们看结果此是什么呀?倒除看到了吧,因为你返回是多行记录,看到了吗?是多行的。返回map的时候只能执行是。一行多一行是有问题的,所以呢,你在返回值是map的时候要注意。这块呢,还得换成等号,那就是说返回map的时候,你只能最多返回一行去。这个一行记住啊,一行记住多于一行是错误是不行的,所以用map呢,限制比较多啊。
05:05
每一次请求呢,你只能返回这一行,就一行多一行呢是不行的,这是返回map map用的呢比较少比较少啊,推荐你用的是什么呢。对象。反馈对象,反馈对象是最方便的啊,对象是最方便的,这是。Type它的一个使用啊,Type讲三种,咱们返回一个简单的反馈对象的返回一个map。那除了这个type以外,还有一个叫做map。Map呢,它叫做结果映射,叫结果映射map,现在来介绍它。好,往下来result map,它叫做结果映射啊,这个结果映射呢,它是用来指定你的列名和Java对象的属性对应关系的好对应关系的。
06:21
那他什么时候用呢?它有两种用法,第一种就是说你呢。叫做你自定义你的列,列值付给哪个属性,就说你自定义你想指定你的列和属性的关系。不值啊,就说这你自定义,因为什么要提供这个点呢?因为默认我们说了你的这个列名是付给同名的属性吧。那我不想做这个,我就想指定这个ID列付给这个name,那你就得用这种方式map。
07:04
啊,就是说你想指定我这个力分给哪个属性,你用给他麦夫就能做到这个事情。第二个那就是说,就是当你的这个列名和属性它不一样时。不一样时。一定啊,我们要使用这个脉这才可以,因为默认是列名和水名是不是一样啊,能复制上去,那如果你不一样是怎么办呢?你需要通过你的map来指定你的列和水平的对应关系,现在我们来用这个对that卖啊。那map呢,我们要这样使用。那我们看啊,在接口中我们单独定义一个方法。
08:07
那定义方法,那这个方法呢,我们要做的是一个查询啊,查询我们要使用对after my来定义我们的映射关系啊,因关系反,这是一个例子集合,那这个叫select of a student啊,我们不需要参数,这样就行了。拷贝放名称,打开我们的map文件,下面这我们要来做的是去。使用result my啊看的卖我们先把呢我们这个ID呢先粘上,我呢先写赛克语句ID name email,然后是一个I from student,查询所有的。
09:06
那我怎么来利用这个map呢?它使用方式这样,第一个你得先去定义,先定义一个map,第二。在类的标签中,标签中使用result map map来引用一定义的。就完事了,就这么做啊,一是先定义,二是呢来引用这么两个步骤就行了,那现在我们来定义一下使用方式,Ma标签。这是定义为麦,在这里ID是自定义的一个名称,来表示你定的这个result map type是Java类型的全限定名称。
10:17
那我现在想要执行这个查询,得到的是一个丢单的对象。The student,那这个type,这就是time北京power of的读man下面的student IDC起我叫做student Mike,下面这块来定义你的列名和Java属性的关系。首先主见列。主见列使用ID标签,主见列ID后面有一个column,还有一个property,这两个最常用的。
11:06
通过这个名字你就能猜出来了。column是列名。这是列名,那这个property呢,属性明白。这是。Java的数姓名啊,Java类型的说名。对应关系,那现在我这个列是ID呀,ID分给哪个属性是这个丢对象的某个属性,我想付给呢,ID属性你想付给谁,你就指定给谁。因为它是主见列吗?用的ID标签,对于非主见列,非主键列使用的是result,下面定义result column,我来指定name列,Name列呢,我想付给的是。
12:08
Name属性所有在内中name属性拿过来,这这就对应了再来column email列名。是我们的email属性好,还有一个column a,这里A属性好,这就定义完成了,那就说某一个select查询,我想要用它的关系,那么你就指定result my,它对应就是这个ID值,把它拷过来放到这。那么这样做呢,就告诉你的这个MY白执行这个查询之后,它的列和属性的对应关系,用上面这个关系,就用它者这个关系,那这样买be就知道你的ID列应该覆盖对象的ID属性。
13:13
测试一下,测试一下呢,我们看看我找哪个,找这个把它拷贝一下,我们放在这啊。往下来。这个是select our student,我们调用的方法是DAO的,叫做student。执行这个查询。我们看查验结果呢,是完全没问题的,查出所有的学生。
14:00
没问题,对应关系,这是你指定的。那这种方式下呢,你把它定义之后。你现在是一个查询用它了,你可以再定义其他查询,比方说叫做二,它也可以用这个映射关系,这样呢,它是可以一个复用的,一个对象可以复用的啊,你可以多次使用它。不管是哪一个查询,我都可以通过人map来指定我要用它的对应关系,那这个对应关系可以很灵活了,那比如说。我不想把这个。Email列付给email属性,我想把这个email值呢付给这个name属性,当然可以,没问题,Name。那现在你再看的话,Student它的这个。Name属性值也是email。查一下。
15:00
看结果。我们看的结果是在这啊,哎,这块有什么不空了,Email email啊,我去找一下。看一下这是以列。对的是内幕属性,内属性。Email email,这是列名,这是属性的名字,难道写错了吗?看一下啊,看一下结果。这个对应关系呢,是给你自己在指定的啊。我们看查询数据库。查询数据库是有值的,Email这个列现在没附上值是一个空,哎,啊不对不对对对着啊,这你看。你看啊,这个name列的值现在是不是email没问题啊,是对劲的,是因为我程序中没有取得email的值啊。看对应关系啊,看这一块,那你会看到我们对应的查验结果中,你看这个内幕列的值。
16:06
把是付给name了,看到了吧,把email付给了name的值,看到了吧,在这吧,这样你可以指定它的列的值的对应关系了,但这种方式呢,不推你用,但就是说它是可以这样来指定我们的关系的啊,明明没有。这样的话呢,你的email列就付给了你的email属性啊,这是对应关系的一个指令,这是map最常用的一种方式,当然它的另一个重要作用就是当你的列名和水名不一样的时候,你可以通过这个关系来指定你的力和属性的赋值关系。那么再来一个。
我来说两句