00:00
OK了啊,来吧,我们接着往后给往后讲,呃,下个话题呢,我们来说一下参数的获取方式,对吧?啊,这个大家可要好好听了啊,这个比较重要的,呃,那么其实这个参数的获取来讲的话呢,我们一直使用的都是一个井号大括号,对不对,对吧?其实呢,它还支持另外一种方式叫做Dollar大括号。李真啊,这个Dollar大括号,呃,那么这个井号大括号跟这个Dollar大括号有啥区别呢?啊,我来给大家去写一下啊,这个写的不是很全啊,来我重新给大家去写一下,这个井号大括号呢,我们可取什么值啊,就是它们两个都是取值啊,那么在取值的时候有什么区别呢?其实没有太大的一个区别,对吧,你看我给你写一下啊啊呃,这个井号大括号呢,它是来什么可取我们的啊,单个普通类型,然后呢?呃,Pogo类型啊,还有什么呀,这个多个参数啊都可以去取。
01:04
能理解对吧,都可以去取,那你看一下这个是不是已经这个啊,再再来一个吧,比如像这个什么集合类型的都可以去取啊,你看一下这个是不是已经包含了我们所有的情况了,对吧?好,那么同样的道理哈,这个当这个当然大括号它也是一样的。它也可取什么呀,可取这个好单个普通类型的,然后呢,Po go好类型以及什么多个参数,以及我们的集合类型都能取,那你说这个有啥区别啊,注意了啊,这里面唯一的一个区别就是啥呢?我们在取这个单个普通类型的时候啊,注意啊就是啊注意啊在什么呀?呃,写到下面啊OK,注意啊取单个普通类型的时候啊,普通类型的参数啊,需要什么呀,就是不能随便写了啊就这个,呃,这个刀的大括号中,井号大括号是不是可以随便写的,大家记得吧,但是呢,到了大括号中呢,哎,不能呃随便写啊,必须使用什么呀,使用一个叫做什么下划线。
02:21
Perter啊,必须使用它来取,能理解什么意思吧?啊,这个是比较固定的一个啊,因为这个下划线perter呢,稍微解释一下啊,这个下划线perter它是一个什么呀?是my be的啊,一个什么内置参数啊,就是人家已经帮你提前做好的,你直接去用就行了,就这么一点点区别,在取值方面来讲,能理清了,能听懂了吧,OK,好,那么呃,你有这么一点点区别,我们记住了,但是呢,诶,它们两个注意了啊,这是在取值的时候有一点点区别,但是呢,它们最本质的一个什么,不同的地方是什么呢?来听我讲,井号大括号它是什么呀?通过预编译的方式把你这个值呢?哎,拼接到你的什么呀,S高L语句中了就是什么,它会使用问号的形式,而这个Dora大括号呢,它不使用预编译的方式,也就意味着它不会使用这个问号占位符的。它直接把取到的值就以自。
03:21
符的方式给你拼接到这个so中了,所以说呢,他们两个比较而言的话呢,这个家伙他其实用的是我们的prepare的,而这个呢,它其实用的就是一个statement,能理解了吗?OK,好,那我把这个区别呢给大家一说,然后接下来呢,我们先来让大家呢看到这种效果啊,好,来回到我们的开发工具里面,然后呢,呃,我们把昨天的这个工程呢拷贝一个出来哈,买贝蒂零二。看明白了吧,零二啊,我就拷贝一个就行了啊,然后呢,我们在哪个地方去加一下呢?你看好了哈,我们找到昨天的这个测试方法,然后呢,再找到我们对应的这个啊,这个下就不要了哈,把它删掉啊,就是我们昨天演示那个别名的时候啊啊,然后呢,再找到我们这个map,大家讲啊,呃,我昨天写过一个这样的方法,大家还记不记得,就是传一个map类型的参数,还记得吧,OK,好,那么大家注意哈,我们看一下这个所对应的骚包语句。
04:27
好,它所对应的这个搜后语句啊,哎,找到我们的映射文件,哎,就在这好在最下面,你看我们在取值的时候,是不是通过这个井号大括号来去取的,OK,那么现在呢,我把它变了哈,你看我把这个井号呢,改成什么Dollar是不是改成Dollar了,然后呢,我们再来测试一下啊,再来测试一下我们昨天写好的这个方法啊,就传卖法啊,应该是这个方法,是不是这个呀,对吧?传卖法啊,应该就这个方法,OK,来吧,我们试一下。好,预习一下。
05:01
然大家来看这个效果,这个结果是依旧能查回来的,对吧,但是不同的地方在什么地方呢?看这个位置,你使用井号大括号的方式,它是以占位符问号放到这的,而你使用Dollar大括号呢,它是直接把那个数字给你取到这。看到了没有,是直接给你拼接到这个Soo游戏中了吧,那么这个其实就是一个什么so字动串拼接的效果啊,这个呢,就是站位服的一个效果。能理解了吗?啊,这种是井号大括号跟刀的大括号最本质的一个区别,那么对于取值来讲的话呢,其实没有太大的一个区别的,能听懂了吧?OK,这个大家一定要记住啊好,那我们知道了这个问题以后呢,那接下来我要问大家一个是啊,那我用谁好啊号井号大括号,那到了大括号能不能用啊,可不能用啊,也可以用对吧?所以说我们记住这样的一个原则啊,什么原则呢?啊就是啊能用井号大括号啊,解决的好,能用井号大括号解决啊这个取值好就使用什么呀,就优先A使用我们的井号大括号啊如果什么呀,井号大括号就是井号大括号解决不了的啊可以啊使用什么呀,我们的Dollar了大括号,哎,大家能明白。
06:28
大这是这个意思吧,能明白,就是优先的话,我们还是去使用这个井号大框,为什么呢?因为它安全了,对吧,它没有这个搜后注入的问题,因为你这个拼接字符串是不是有so后注入的问题啊,还记得那个so后注入吧,对吧?好,但是我们使用这个,哎,井号大括号有些问题呢,它解决不了,那我们就必须要使用大来大括号,比如说什么问题井号大括号解决不了呢,大家知不知道。好,举个例子啊,例如好例如什么呀,就是啊原生的JDBC不支持占位符的地方,明白了吧,就可以使用我们的刀打克号了啊这个又是啥意思呢?比如说诶,在这个原生的JDBC它不支持占位符,但是呢,我又想动态的给你赋值的时候,我们就会使用到了打个号,比如说啊,我给大家举个例子啊,你看我们来写出一条搜狗语句来啊,我去写一个查询的搜狗L语句,大概的能写成什么样子的呢?注意哈,Select。
07:40
是吧,是不是查我们的字段了吧,对不对,比如说COLUMN1COLUMN2等等等等,是不是查这个字段啊,OK,大家注意这个字段你有没有使用过占位符。使用过没?但是我现在想实现这样一效果,我动态的给你传几个字段进来,我传什么你给我查什么,这种情况下你能使用警行大方框吗?绝对不行的,你虽然说你占完后网之后放没问题,但是它编译的时候发现这个S句是有问题的,因为原生的JDPT就不支持这么去写好再来往后讲,From好from一个表对吧?表你写过詹万福吗?
08:24
学过吗?没写过吧?好,来,接下来where后面是什么条件吧?哎,条件的话我们是可以写写加乐福对吧?条件就是什么什么等于什么什么什么对吧?OK,好条件,呃,那么这个条件写完以后,我们还可以写什么呢?比如说过滤完条件以后,我是不是还可以哈位分组啊,对不对?哎哈,就是我们的这个地方肯定要有一个什么主标识了吧,知道什么叫主标识么?就是那个分组字段嘛,对吧,主标识OK,分完组以后呢,比如说我还想再去过滤啊,什么叫heaven。
09:03
好group OK,我分完主以后呢,我还想再去过滤,那我就用什么对吧,后面又是一个什么条件,OK啊,那么这个写完以后,其实我们还可以加什么东西啊啊,这个还条件啊,条件我就写到这了,条件后面的话,我是不是还可以再做什么事情,All吧,好BY什么呀,是不是我们这个排序字段呀,对不对,那么排序字段的话,我后面还可以写什么de sc或者as sc都可以写的,最后的话我还可以什么limit对吧,Limit的然后呢,就是啊两个值嘛,对吧啊limit就是这个两个值啊,我就随便写了啊。XX吧,对不对,那你看一下,这就是我们诶可以写的一条什么sofa语句啊,那么其实在这个地方你就看吧,只要它不支持占位符的地方,我都可以使用我的刀位大括号来去解决这个问题,那我们就拿出其中的一个来讲,比如说就拿这个表明来讲,我就希望我的表示动态复值的。
10:05
能理解吧,我就希望我的表示动态复制的好,那么现在我们就来看这个效果啊,好比如说我在查的时候呢,你看哈,我在这里面呢,给它map.put了一个叫做table name,好,我叫什么呀,T BL employee,这是我的那个表明吧,好,那么来到我们对应的这个映射文件这个位置,比如说哎,T BL employee,好,我就不写了,假如说我写成井号大括号,我们来看一下,它虽然说能把这个东西呢放一个问号到这,但是呢,它是报我一个什么搜狗语句的错误的,你来看啊。是不是有问题了,你看一下这个地方from后面是不是确实有一个问化吧,但是呢,这个so写出来它绝对是有问题的,它告诉你什么呀,你有一个so的错误,为啥呢?就是因为我们原生的JDBC在这个位置是不支持你的占位符的理解了吧,但是我通过字符上拼接的方式,我提前给你拼接到这是不是可以的呀,所以说呢,我们就可以把它改成什么呀,改成我们的Dollar大括号,而改成这个Dollar大括号以后呢,我们再来做个测试,大家注意,他就直接把我们这个table name呢,是直接给你就写到这个位置了。
11:13
看到了吗?哎,这样的话呢,我们就诶可以啊,做了一个什么动态的一个赋值,而且呢,它也是支持的啊,所以说大家要记住这样的一个结论,什么结论呢?就是对于这种原生的这个JDBC啊,不支持占位符的地方,我们就可以使用这个刀打括号了,明白这个意思了吗?好,那么这就是我们的诶参数啊获取的这种方式。记明白了吧,OK。
我来说两句