00:00
好,那首先咱们先来看咱们的第一种情况啊,叫做单个字面量类型的参数,也就是说我们的map接口的方法呀,它的参数是单个的字面量类型。那首先大家要知道什么叫自面量,字面量呢?然后跟咱们的变量它是相对应的,然后就比如说我们在这呢,咱们来创建了一个变量,叫做int a,然后等于一,大家注意这个一它就是字面量,就大家从字面上看到的它是什么,它就是什么,而这个A它表示的就是变量,你看到的是A,那这个数据就真的是A吗?不一定,然后我们是不是得看它所对应的数据是谁,这个A来表示的就是我们当前的这个一这个数据。OK吧,所以说呢,字面量呢,哪些属于字面量类型。就比如说字符串,还有咱们的基本数据类型。以及所对应的包装类,你像这些的话,大家注意它都属于字面量类型啊,好,那比如说我们刚才咱们所写的这个案例,咱们是根据我们的用户名,然后来查询用户信息,它的参数就是单个的字符串类型,好然后也就是我们的第一种情况,那这个时候我们在映射文件中,咱们该如何把这个参数的值给它拼接到咱们的SCO尾句里面呢?那咱们的买be呢,提供了两种方式,这两种方式呢都行,那关键是我们该如何来使用呢?井号,大括号这里面写什么?那大家的第一感觉是不是应该是我们传过来的参数叫username,那这里面咱们写的是不是应该也是username呀,对吧?那咱们就把username给写上呗,试一下。
01:41
那报错的话对吧,那my be,它应该是告诉我们,我们应该用什么的,对不对,所以说在这大家直接把u name写进来就行好,然后下面呢,我们在这咱们再来创建一个测试类,咱们来测试一下。好,叫come.at硅谷点买be,然后点test,然后点咱们就叫做per parameter test OK,然后下面咱们首先先来创建一个方法,然后public VO,咱们就叫做test get user by username,好啊,行,那首先咱们是不是要来获取咱们的ion对象,那这个东西大家也是啊,咱们直接在这来创建一个包,叫us,然后直接从我们之前咱们的工程里面把它给拿过来就行,对吧,因为这些东西啊,然后咱们写一遍之后,基本上对吧,然后是可以一直来使用的,咱没有必要说每一次咱们需要用到它的时候都重新去写,对不对,好啊,行,那这个时候怎么做啊,首先circle session YouTube.get circle session来获取circle session对象,然后circle session.get map,然后来获取我们当前U。
02:55
O map class user map的一个实例,这个啊,代理实现类对象,然后下面咱们再来调用map里面的方法,比如说get user by username,那这里面咱们是不是就可以来写一个用户名啊。
03:10
对吧,写什么呢?比如说呀,我现在先把咱们的用户表,因为这里面的order me1共有三个是不是啊,然后呢,所以我们现在咱们是不是只能咱们一下子就能,如果我在这来写了一个ain的话,咱们是不是就能够查出来三条数据,但是结果我方法的返回值,这是个啥呀,这是个优点对象,那咱们查询出来的是三条数据,而你用一个优的对象,它能获取得了吗?获取不了,这个问题呢,大家注意,咱们到后边去讲my be的各种查询功能的时候,咱们会具体的去说OK吧,好,那下面呢,我们再来看,咱们先把咱们的表啊,然后给它截断一下,然后咱们在这呢去添加一条数据,这个叫做order me 123456,然后年龄23,然后性别男。好,然后邮箱12345qq.com就可以啊,好,下面咱们来保存,OK,那咱们当前咱们再把so,然后把U的对象给它输出就可以啊,下面我们在这咱们来一个执行,然后大家看啊,然后大家看我们当前输出的这个SQ语句,大家就能够看出来一些问题,好。
04:23
咱大家看查出来了没有,查出来了没有任何问题,对吧,然后呢,我们来看这个circle,你看我们的circle,咱们在最后明明写的是一个井号大括号,但是结果在这是变成一个问号啊,对吧?那所以说当我们使用井号大括号的时候,那其实在底层里面,咱们的井号大括号,它是会直接被当做是什么来解析的,当做是占位符来解析的,OK吧,好,咱们传过来的参数是adin,咱们查询出来的几条数据,一共查询出来了一条数据。好,这个大家看好啊好,那所以说我们在咱们的映射文件中,咱们通过井号大括号,然后里面来写个参数名的方式是没有任何问题的,对不对,但是其实大家来看啊,你看我在这来写个name,然后我现在我再来一个执行,诶大家会发现它好像也没有问题。
05:15
大家看啊,来,大家看一下有问题吗?没有任何问题啊,然后这里面大家随便去写,然后你会发现它都没有问题,为什么呢?大家想想,其实我们当前咱们的这个U端内呀,然后当我们把这个数据,然后咱们真正的去传输到我们的映射文件的时候,当然呢,肯定不能直接传输到映射文件,在咱们买be体的执行SQL语句的底层代码里面,他知不知道你的参数叫什么呢?他不知道,他只知道你传过来的值是order me,但是他并不知道你当前传输过来的参数,它叫username。这个大家注意,所以说它其实跟名字没有关系,咱们在这个地方啊,其实我们可以通过任意的一个内容呢,来获取我们当前这个参数值,但是建议大家最起码你要写的有意义一些,对不对,咱们传过来的是用户名,那我建议大家在这也写什么写user name OK吧这样的啊。
06:14
好,我再说一遍,大家注意,在这咱们是可以通过任意的内容来获取我们当前的参数值的,但是建议大家呀,你传输你用的这个数据,它是什么?那咱们就用一个名字来表示它就可以,那咱们传过来的就是用户名,那咱们在这就写user name就可以啊好,那井号大括号可以,那咱们的Dollar大括号行不行呢?大家注意在这不要用CL shift加斜线,这个注释不对啊,所以这个注释大家最好还是自己去写好,OK,那下面呢,我们再来看,然后咱们把这个S语句呢给它拿过来,在这咱们直接呢把它换成do。这个时候它对不对,然后下面我们在这,咱们再来一个执行,哎,大家会发现它就报错了。对吧?为什么报错呢?你看咱们的so口尾句是不是给我们输出了,那大家有没有发现咱们的这个so口尾句,它是不是有点问题啊,什么问题啊,这是A的in a的in的话,然后是不是一个字符串,那字符串大家说在S口尾句中是不是要加上单引号啊,对吧?那你不加单引号,那你说这是啥?那它不就会被当成是什么字段来解析吗?它又不是数值对不对?然后它又不是其他的类型,又不是浮点,所以说这个内容一定会被当成是字段来解析,所以大家看,你看他给我们报的错是什么错,他说unknown column order me,然后in well close什么意思?他说在我们的well词句中,咱们没有有一个不认识的字段叫做order me,所以他在这是把咱们的order me当成是一个字段,因为你没有加单引号嘛,字符串类型是要加单引号的,除非它是一个字段,但是它不是字段的。
07:57
是不是好,这不就是我们跟大家说的Dollar大括号和井号大括号的区别吗?咱们刚才已经看到了井号大括号,然后当执行circle的时候占用的是什么问号,而我们现在呢?然后咱们的Dollar大括号,大家会发现这个a me是直接拼接在我们当前的circle中的,而且加单引号的没有没有,因为字符串拼接是需要手动加单引号的,OK吧,所以说。
08:25
咱们把这个单引号手动加上之后,我们在这咱们再来一个执行。好,大家看是不是就查出来了呀,对吧?哎,行,这个大家一定要看好啊,那咱们的Dollar大括号,这个括号里面咱们都能够写什么呢?大家注意这里面也是井号大括号和Dollar大括号,它这个括号里面呢,都可以以任意的内容来获取,当然它也有一些这个区别,就比如说咱们的Dollar大块,这里面你不能写数值,因为你写数值的话,你写一个纯数字的话,然后它是具有运算功能的,然后它会直接在这里面把咱们当前的结果给运算出来,比如说你写个一,大家注意这个时候它解析完之后,它就是一个一。
09:10
这个大家能听懂吧,所以说呢,然后大家不需要去记那么多的情况,你就记得这种,既然我们当前咱们可以任意的内容来获取,那咱们就不能这样去记,大家最好是给他记一个固定的规则,比如说咱们传输过来的参数名叫什么,咱们就用这个参数名来获取,当然大家要注意啊,并不是只能通过参数名获取的,其实咱们是可以通过任意内容来获取的,OK吧,这样的啊好,那这个东西咱们把它给写到咱们的user map user map这个接口里面,大家注意这个是咱们my be获取参数值的两种方式,对不对,然后分别是井号、大括号,然后和谁呀,和Dollar大括号,OK吧,然后呢,我们当前咱们的各种情况,大家注意第一种情况,若map je。
10:03
对吧,然后方法的参数,然后为看好叫做单个的字面量类型好,然后此时咱们可以通过谁呀井号大括号和Dollar大括号,然后以什么任意的内容,然后来获取参数值。能看懂不啊,以任意的内容获取参数值,但是建议大家用一个有意义的内容去获取它,比如说跟咱们的参数名保持一致,OK吧,而且大家最主要的一定要注意看好了啊,然后一定要注意什么叫做Dollar大括号,然后的单引号问题啊,这个大家注意,因为我们刚才看到了,如果我们当前往S口尾区中拼接的是一个字符串联型的参数的话,那咱们的Dollar大括号它一定要加上什么呀?加上单引号OK吧,这个大家注意,为啥呢?在这给大家写一下,因为井号大括号的本质是什么?占位符赋值,然后而我们的Dollar大括号的本质是什么?是字符串拼接,字符串拼接。
11:17
OK,这个大家看好啊。好,然后当然我们现在用的是给大家补稍微补充一点啊,我们现在用的是这个my bet3.5的版本,在之前my be3.4的版本里面,就我们的第一种情况,大家注意井号大括号和Dollar大括号,它们两个的区别还是很大的,就比如说井号大括号是可以通过任意的内容来获取的,而Dollar大括号只能用两种固定的写法,一种叫Dollar大括号下划线parameter,一种是Dollar大括号里面来写个value。只有这两种固定写法。然后当然呢,在3.5之后呢,然后井号大括号和Dollar大括号,其实他们两个获取数据的方式就一样了。
12:01
就比如说咱们的第一种情况都是可以以任意的内容来获取,对吧,除了一些比较特殊的内容对吧,然后但是呢,因为这些情况咱们就不记了,为什么?因为咱们在这你一定要用一个比较有意义的名字去获取它,对吧?啊就比如说咱们刚才说的建议大家用什么,建议大家用参数名来获取,OK啊好,当然到后边呢,我也会给大家去总结一下,然后我们最终咱们来使用这个来获在买杯体中获取参数值,咱们到底该如何去使用啊,会给大家说一个统一的方式啊,行,OK,那这是咱们的第一种情况。
我来说两句