00:02
行了,Map也写了,那大家想一想,同一个需求,我是不是用domain可以传了一个S是不是可以啊?哎,我用map是不是也可以啊?哎,那我实际项目开发中用doin还是用map呢?其实都行,这个需求是这样吗?好,最后咱们总结一下啊。总结啊。好,那么在我们的实际项目开发中啊,大家注意啊,好,那么使用咱们这个刀面啊,引用类型。或者是。使用。Map集合类型是不是都可以啊都可以啊这个啊为SQ语句同时传递多个参数,是这样吗?好,其实用哪种都行OK吧,好,那么一般情况下啊情况下。
01:13
好啊,我们使用这个do就。可以了,OK吧,当咱们domin domain啊,这个啊符合。需求的。情况下。我们。要一定啊,一定要考虑使用咱们这个map来船只OK吧,大家。什么情况下这个倒霉穿不了?太简单了,咱们现在来个需求啊。请查询出。啊,姓名为吴亦凡,好班级。
02:05
喂。啊,一年一班的学员的详细信息。怎么查?谁带他查吧,咋的多表不会了。是没有啊,这不给你写的吗?来啊,TBR,咱们来一个student行吗?OK吧,咱们是不是得关联班级表了对不对?好,那现在咱们起个边名S怎么着,Join TL class。Room,咱们来个C行吗?Ons点是什么拉?Room ID等于c.ID是这样吗?Where?那这代我就随便来个星了,行吗?
03:03
S点内等于什么呢?咱们是不是传过来一个内包括N什么呢。c.name咱们是不是得等于一个name,到时候这个name咱们是得传谁啊吴亦凡这个name得传谁?一年一班是这样吧,好,这种情况你想一想用短面行吗?为什么不行?哎,你学生这个导面没有班级的名称,班级的导面没有学生的名称,所以说用导面不行,只能使用什么map OK吧,好,我们早晚会遇到这种情况啊,好,所以说一定要考虑使用map类型,OK吧,好,最后啊。在实际项目开发中啊,好,一定要学会使用咱们这个啊,为这个SQ传值的这几种方式啊,几种方式OK吧,好,但是对于在这个select中的。
04:17
Perter属性啊,一般我们都是什么呢。我们都是啊,省略不写的OK吧,好,所以说啊,为了这个开发方便,咱们就省略不写了,但是啊,你传递的这个类型,它是不是自动会给你识别出来,OK吧,好,这个东西你不填也行啊,不填也行啊,行了。嗯,接下来啊,咱们来看一看这个井号画括号的问题啊,除了这个井号和括号之外啊,那对应它的还有一个。
05:01
Dollar号括号好,我们一直用的是哪个呢?井号号括号对不对?哎,井号号括号好,呃,SQ语序中的符号,井号括括号表示占位符,什么叫占位符?同学们是不是我们以前GDBC中那个问号占位符对不对?可以有效防止售后注入,怎么听着这么面熟呢?Prepared没错吧?呃,下面这个Dollar for符号表示拼接符无法防止SQ注入,那它就是一个普通的。没错吧,这个有悬念吗?来看看啊,可以有效防止射后输入的啊,咱们在用statement的时候用的是不是都是pre state men用的是不是都是它呀?那这个拼接符指的什么?Stat这种普通的是不是,咱们一般来讲是不用它呀?
06:06
咱们用的都是这种占位符的形式,是这样吧,好,那所以说咱们以后是用它还是用它。还用井号画画号OK吧,好呃,我们现在啊,这个举一个这个到了画画号这个例子啊,虽然咱们以后不用啊呃,带大家这个了解一下啊,了解一下好,我们这个是第几个了,第六个呢是吧。啊。测试啊好,根据ID查单条,还是这个需求啊,咱们来使用啊,So,用Dollar画括号来接收值啊。我们来看一看student DAO啊,调一个点c select,这个是不是该第六个了,上也是五是吧。
07:06
来六了啊。我穿个这个A001。啊,反一个这个啊。好,咱们把这个S啊给它传递进去啊,输出出来。Select好,我们来一个SELECT6好,这个三呢,我给它夹到这个中间行吗。按照这个顺序来吧,好,我们现在来一个啊。六对吧?Permit type不写了啊,Result type,咱们来一个student,好,Select from t BL。Student对吧?VR如果按照我们以前写法的时候,应该ID等于这个ID啊,对不对,这是我们以前的写法,对吧?好啊,虽然咱们没有填这个permit type,但是你得知道咱们传过来是一个string,咱们得这么接,而且这里边是可以乱写的,是这样吗?好,但是现在我们用的是这个Dollar和括号,大家注意啊,Dollar括号它是一种拼接符,OK吧,好,拼接符里边。
08:22
你就不能直接写咱们这个ID了,还有它的这个固定的写法,它必须叫什么呢。必须叫Y6,你叫其他的,对不起,不识别OK吧,好,而且拼接符大家想一想,就相当于我们拼接字符串一样。还得什么?这个引号是不是得填上?是这样吗?好,Circle中咱们用的这个单引号用的比较多啊,哎,是不是这个得填上啊,对吧?好,我们现在来试一下啊,SELECT6。
09:06
好,大家注意看啊,这回啊,咱们还是查询出来这个结果了,对吧,但是呢,你看一看我们这回这个时候语句是不是ID用单引号拼接的这个值,而不是用一个问号代替它。对吧,所以说啊,这种形式啊,这种形式我们以后基本不用OK吧,但是你知道啊,有这么回事就行了,OK吧,好,那么我们这个Dollar画括号啊,其实啊,在某些特殊情况下也有它的作用,例如啊。来看看下边这一句,这一句可厉害了啊。好,咱们先来看这第一组啊,需要动态的拼接表明。
10:06
啥意思,他不是拼接符吗?对不对,我是不是想拼什么拼什么呀。来看看啊,上面这一句可以翻译成什么?嗯,咱们来一个circle,等于什么呢?Select星from,咱们可以什么呢?加上一个表吧,哎,这个这个表咱们来一个啊TBL等于。然后student加上一个什么。T。啊,能理解老师的意思吧,啊,它是一个变量,看到没。OK吧,你看拼接符说表明也能拼呢,如果我乐意的话,来关键字数也能拼呢。是这样吗?你是拼接符,啥都能拼,OK吧,但是你的井号画括号。
11:01
能用这种形式吗?不能,你想一想,之前咱们用那个井号号号号,它代表的什么,它可不是拼接符啊,它叫什么占位符,占位符只能占什么呀?只能占直的位置,OK吗?好,例如咱们之前玩的都是什么呢?比如说select星、from表,Where。ID等于咱们是不问号,占的是值的位置,对吧?哎,咱们是不可从来没这么用过,比如说来个select形from问号,你没用它就不行了,OK吧,作为问号占位符,它只能在后边值的位置,OK吧,好,所以说啊,我们在一些特殊需求下啊,也会使用这种形式,但是这种形式用的非常非常少,为什么呢?它会非常严重的影响我们SQ语句的可读性,也就是说你把表名变活了,有可能会使得我们的这个开发节奏变快啊,因为他更灵活了嘛,对不对,我传哪个表我就无脑插谁,是这样吗?好,但是呢,你可以想象一下,到时候我真正在执行项目的时候啊,你想一想,我做一个需求,我到底执行的是哪张表,我都不知道啊。
12:18
是这样吗?为什么?因为表是一个什么表是一个变量啊,是这样吗?好,所以说啊,这种形式啊,你知道就行了啊,以后用的很少,那同时啊,它也干嘛呢?他也可以啊,它不不仅仅能代替表名,它还能代替什么呢?All by还可以代替字段名,看到没?也就是说啊,如果他想的话,他想拼什么它就能拼什么,它跟我们的井号括括号占位这个占位符不一样,占位符只能做什么,做值OK吧,只能做直OK吧,好。行了,咱们接下来来一个重点案例啊,Like模糊查询,这个like模糊查询啊,是我们今天下午的这个重点啊,啊为什么把like当做重点呢?啊,因为我们将来实际项目开发啊,基本上我只是基本上啊,50%以上啊,就一半以上都是什么呢?Like模茶。
13:11
OK吧,好行,比如说我这个商品叫手机呢啊,手机其实也是一个全名对吧?好比如说我这个商品与电视挂钩的,像那本书的名字,你是不是搜的,基本上都是这个关键字,对不对?好所以说咱们这个赖模护场啊,以后用的是这个最多的啊好,接下来我们来下一个第七个啊。Like。模糊查询,好,我们先来这个第一种方式啊,方式一我们使用谁呢?使用Dollar画括号的形式,这种形式老师说了啊,拼接符咱们以后用的很少,OK吧,这种形式啊,咱们了解一下就行了。
14:06
OK吧,好啊,但是这种形式实现起来还是相对来讲容易一些啊,来,Student d来。七。我们来个查,查什么呢,查一个带。Z的。行吗?哎,人名带C的行吗?好,学生信息列表啊。啊。好,这个咱们来一个list studentist。Select,七,好,哎,什么呀,没写select是吧?七,Result type student对吧?好,我们来啊,Select from表where,好,咱们是不是应该是name这个名字对不对?什么like,我们先用这种Dollar划括号的形式啊来。
15:28
百分号,百分号对吧,啊中间应该是什么到。花括号这里边写应该写什么?Value,它的写法相对来讲比较容易,OK吧?哎,咱们来复习一下这个like模糊查询啊,这个百分号表示什么意思?表示零位或多位的占位符是这样吗?好,那么还有表示一位的叫什么?是不是下划线呢,对不对,那现在比如说我要找一个。
16:07
我要找个这么个人。啊,找谁第二个字母带Y就行,是这样吗?好。那如果是这样的呢?只有俩字符,第二个带Y是这样吗?好,这个需要注意了啊,好,我们现在啊,就比如说只要带我们这个Z就可以OK吧,所以说两边啊,咱们都带上这个百分号啊,好来试一下看看好不好使啊C的。黄子韬。啊,这叫张艺兴是吧,黄子韬和张艺兴啊,都带Z是吧?哎,都带J没问题吧,好,都没问题啊好。
17:00
啊,除了这种方式呢。呃,我们来一个第八个啊。方式二,咱们这回使用的是什么呢?咱们肯定得使用这个井号括号,它才是王道,是这样吧,以后实际项目开发啊,咱百分百用这种井号号括号的形式,对不对好。这个咱们来扒了啊,还是差带Z的吧。Select返回student select表like。这回咱们说单。就不许填了,这回是不是不许填单引号的占位符来讲的话,咱们从来都不填这些个标点符号,是这样吗?好,但是这个百分号用不用填。
18:04
百分号是必须的,是这样吗?包括你下划线这是必须的,百分号得保留,是这样吗?好,那中间咱们写啥呢?写啥都行,比如说咱们是不是传了一个这个内。没错吧,咱们是不是传了一个这个name这个Z呀,对吧,好写啥都行,那我这种语法能行吗?能过不。啊,这个这个是井号是吧,行啊井号,哎,貌似没啥问题啊是吧。不行啊。来看看同学们啊,我们来看看这个so后语句啊,那大家注意啊。有没有看到这个near,只要你给我看到这个near啊,只要给我看到这句话,什么什么for right啊等等等等啊,什么to the use near就说明是什么错误,SQL语句的错误,你就给我查SQL语句就行了,OK吗?好,没有这么写的啊,好,也就是说这个百分号啊,流向是流向,但是这个百分号是不是。
19:14
它应该是我们字符串的一部分。咋办呢?哎,那如果我要加字符串了,是不是中间那个井号画括号就括号是了。来,走一个。这也不行,是不是这也不行啊,好,大家注意啊,咱们看一看这种方式行不行,比如说我现在就来个井号花括号,我这个百分号。就不写了。我在哪写呢?我在这写。试试呗,行吗?
20:06
好使吧,好使,但这种方式大家想一想,这种方式好吗?啊,老师这么问肯定是不好啊,对吧?那问题在于为什么不好啊?你想一想啊,这个啊功能啊,咱们肯定是实现了,是这样吧,功能实现你看啊,咱们再来一次啊,再来一次好使上是好使都没有问题,对不对,好like,后边咱们直接拼个这么个东西对不对,但是大家注意了啊,我们现在这个参数啊,是不是参与到了这个SQL语句的语法当中去了。它就不好,在这一点上,为什么呢?也就是说将来咱们在实际项目开发中啊,Circle是circle,参数是参数,总之我作为我传参数的这个角色,我就负责把参数给你,至于你怎么运行呢,与我无关。
21:03
能理解吧,这属于单一职责原则啊,就在于此,我可不想像现在这样提心吊胆的呀,我给你这个S后语句,我传一个字符串,传个Z。你能不能用啊,我要不要再给你传点百分号过去啊,我还得合计你的语法的问题,能理解吧,所以说当我在传参数的时候,我思考的就多了,我还得去拼接你的circle的语法,这很明显是不合理的,所以说我现在想要的一种结果是什么呢?我现在我就把参数给你,至于语法你自己去搞,你自己是circle,我也不是circle,对不对,我就把参数给你,你去搞就行了,OK吧,好,所以说这种方式虽然能用啊,但是以后实际项目开发当中用的很少,OK吧,所以说这种方式仍然是什么呢?了解啊好,接下来我们再来看下一组啊。
22:00
啊。嗯,这回咱们这个是第二个,该第三个了吧,对不对啊,还使用这个井号号括号啊,这个是掌握了啊得啊。来个来。九啊,我的目的是什么呢?同学,我的目的是不是要把这个百分号干掉啊,我就单纯的给你传个参数就行了,哎,这是我这回的目的对吧?好。好,我们来一个SELECT9啊。嗯,这回呢,咱们百分号还得写在这里边啊啊,这回啊,有同学说的很棒啊,咱们拼一下就行了,对吧。是吗?
23:05
行吧。这回,这回满足吗?可以不啊,这是你们你们说的啊。你们将来去那个创建语言啊,去做创造性,然后你们创建语言让别人去用,OK吧,这种语法是绝对是不存在的啊。小号不允许啊。我直接这么用行不行。来啊,我把加号去掉了,我们再来看。嗯。大家注意啊,什么叫拼接啊?在my circle里边拼接值怎么拼呢?空格相当于加号,能记住不?
24:00
空格啊,不是你们硬给我来个加号啊,这个空格是必须得加的,OK吧,好,这是最容易遗忘的地方啊,好,我们现在再来看一看。好使吗?好使了啊,所以说这种形式啊,是我们未来实际项目开发中啊,最常使用的形式啊,好这有一个这个注意的点啊,注意好我们这个在做直这个字符串拼接的时候,大家注意啊,这应该加一个什么呢?空格,然后这块是什么呢?空格百分号啊好空格。以上这个空格啊。不能省略啊,这个是必须的,OK吧,行了以后就用这种啊,用这种就行了。
我来说两句