00:00
好,嗯,今天呢,我们这么安排啊。啊,我们头一节课啊,或者头一节课多一点啊,我们把这个MYBAT啊,剩点内容啊给它说完啊,其中包括呢,这个我们这个动态circle的机制啊,啊包括我们这个circle片段的这个使用,以及这个多表链查啊,剩的内容不多啊,然后今天上午呢,我们趁着这个网速好啊。啊,要学一个新的知识点,叫这个GI,以及结合这个联合外网这个giar OK吧,是我们一个项目版本的控制的工具啊,也就是我们要学一个工具,OK吧,暂时脱离开代码,两节课左右的时间吧,差不多OK吧,然后今天下午啊,然后今天下午我们就正式开始咱们这个CRM项目了,其实今天下午就是一个咱们那个项目搭建一个。项目的过程啊,我肯定得需要搭建ma项目,Man文这个东西咱们不是在以前阶段学习过吗?对不对啊,我们这个阶段搭建这个man文项目啊,也就是说用man呢,还是说啊,用来导这个加班来使用OK吧,好,作为一些高级的这个用法,我们在这个以后的阶段啊都会接触到,OK吧,好啊,我们今天就这些啊,好,那么首先呢,我们先来看一看my bet的这个动态circle的机制,好,我们先来看一看老师先画张图啊。
01:33
啊,现在比如说我来。我先画张这个表单啊,然后做一个查询。姓名。性别。年龄。地址。电话。
02:02
好,这一看就是咱们的一个普通的文本框,对吧。里边啊,我们通过填写的这个信息呢,最终呢,要进行一个查询。好,最后咱们提供一个按钮,这个按钮叫做搜索或者叫查询啊。好,它所查询出来的这个结果啊,大家注意啊,我们下面呢,是以这个table表格的形式来呈现的,OK吧。好,这是一个table。Table啊,Table这是一个表格,OK吧,好,那大家注意啊,我们现在填写这个姓名,比如说我先填这个姓章呢。我现在点一个这个查询,点完查询之后,这个table里边给我列出来,是不是所有姓张的这个学生啊。比如说咱们这个张艺兴还有谁来着。
03:02
就他一个是吧?啊,那比如说我姓名来输入一个姓吴的,那我一点查询就姓吴的对吧?那如果这个姓名我填了,姓别我也填了,它就相当于是在where后面多挂载了一个查询条件,是这样吗?我们肯定使用的是and连接符,是这样吗?啊,查询姓张的同时性别为男,是这样吗?好,再把年龄填上呢,又多了一个and OK吧,好,我们现在啊先来确认一件事,也就是说我这五项信息啊,如果什么都不填,我现在点查询应该出现什么样的结果?肯定是两种结果,要么查所有,要么一条都没有,对不对,那大家注意啊,上边的啊是我们的什么呢?这个查询条件。我们是这么来分析的啊,就相当于where后边的查询条件OK吧,如果这一项都不填就说明什么呢?我们要查询这张表,没有查询条件,无脑查所有,所以说我现在如果都不填的话,我现在点查询,我查询出来的结果是。
04:16
所有记录是这样吧,呃,一般来讲这个企业级的系统啊,我们都是这么做的,OK吧,而且这个功能呢。啊,是很普遍存在的,非常的重要,OK吧,好,我们现在啊,就以它为例子啊,我们来写这个SQL语句,好,如果是按照我们之前这个接DBC的这个写法啊。接DBC,或者是这个hiber这个写法,咱们肯定使用是这个字符串的形式,对吧,比如说我们来一个最基础的这个circle口啊,比如说我们来第一种情况啊,情况一什么都不填,是这样吗?点击查询啊。啊,这肯定是select星from表,是这样吗?那就TL了行吗?好,那么咱们再来下一种情况。
05:11
情况二来看看啊,它这个情况我们会猜想到应该会有很多是这样吧,情况二呢,什么只填写了。姓名其他的都没填行吧。只填写了姓名,好,那这个circle啊。就应该来个where吧,Name。OK吗?三呢?情况三情况三姓名也填了姓张的对不对?性别也填了啊,男或者是女对吧?好,情况三填写了姓名以及什么呢?
06:05
啊,性别是性别,好,Like and,性别怎么说来着?GEND。是GDR是吧,好等于咱们一个问号,一般来讲性别这些东西都我们肯定都是选的,要么是下拉框,要么是单选框,是这样吗?好所以说啊,咱们这个直接做这个等于就行了,对吧?好。继续往下写。不写了,不写了,差不多了,差不多行了。再来一个,再来一个,再来一个,再来一个,感觉不过瘾是吧?来情况四这回呢。填写了姓名,性别,年龄,咱们再多填一个,再来个年龄对吧,年龄这回再来一个and,这什么H等于什么什么是这样吗?行。
07:08
一共有多少种情况?一共有多少种情况?能能能数过来。那怎么能说是六种情况呢?来看看同学们什么都不填一种,对,咱们现在是不是已经是四种情况了,嗯,填到年龄了,然后再把地址填上五种,再把电话填上六种,是这样吧,这仅仅只是刚刚开始吧。对吧,啊,填写了这个姓名和年龄,姓名年龄地址电话姓名地址和姓名地址电话,然后从性别再开始数性别年龄性别地址性别电话姓名年龄地址姓名年龄地址电话,姓名地址电话不行了,受不了了。
08:00
多少种啊,这是其实是一种阶乘的算法,这是一种数学界的算法,是这样吗?其实你想一想啊,不论是多少种,你想一想,如果我每多一个需要查询的文本框,那么。它是不是以加速度的形式来呈现的这种结果啊,是这样吧,哎,所以说啊,我们以后肯定不可能根据每一种查询情况,给他独立的写出来一条SQL语句,OK吧,那是不可能的,OK吧,所以说啊,我们一定要把SQL语句写成动态的形式,OK吗?好。那在实际项目开发中呢,我们对于这种需求啊。好,肯定是什么呢?要将这个SQ语句啊,写成什么动态的形式,OK吧,好,那这个动态的形式表示什么呢?好。
09:07
动态。SQL语句的核心思想是。好,有哪个查询条件就动态的。在where。关键字后面挂在。哪个查询条件OK吗?OK吗?好,那也就是说我们肯定有一个这个最基础的啊,什么都不填的,肯定是什么上面这个circle。是C型防表,它肯定是作为一个基准,是这样吧,好我们可以判断呢啊。如果如果啊,咱们这个姓名啊,如果姓名有怎么着,我就加上你,OK吧,如果性别没有我就不加你,如果性别有我就加你,如果性别没有我就不加你,OK吧,咱们是不是得经过这个if判断呢。
10:14
如果咱们这个name啊,也就是说传递过来的这个参数啊,它不等于空,是这样吧,那同时呢,这个name还不等于这个空串,是这样吧,好,这个空串我就不写了啊,暂时就这么个意思,OK吧,好,如果内不等于空怎么办?同学们,Circle拼字符串,在原有的字符串的基础之上追加新内容,咱们是用加等于啊。说。真要这么写啊,Name like,问号啊。那如果人家把姓名和年龄都填了呢?那接下来大家想一想,这个if咱们是不是一共得判断五个呀?
11:01
衣服。哎,这不是赛,叫什么来着?GDR对吧,就是sex不对啊,Sex是严格来讲是那个性的意思是吧?啊,Gender才是性别啊,那这个呢,咱们来一个。最佳什么?And。等于问号。要这么写吗?不行,其实这种写法啊,可以应对于查,所有可以应对于。填了姓名可以应对于填了姓名和性别,是这样吗?但是一旦呢,我这个姓名没填。我是天了。性别,那么我们现在SQL语句所拼接的结果就是select形from表and等于问号,是这样吗?不行。
12:09
相招。那给提取到上面。对呀,那就更不行了,要查所有的话,那就是select新房表where。后边啥也没有了,对不对,也不能扔在上面啊好,那大家注意啊,我们现在啊啊,有一个这个小技巧,其实同学们以前也应该有过接触啊,我们来看一看啊。啊,咱们还得开一个数据库。啊。Select。
13:00
From t BL student啊,大家注意啊,咱们是不是查询出来一共是六条记录对不对,我给你来一句叫啥呢,Where。一等一。哎,看老师再查一把啊。走。好使啊,语法有效,还是查出来这六条,我问后边是不是挂载了一句废话呀?但是它有用啊,同学们,如果有了它之后,咱们是不是拼这个so后语句就可以。来看啊,同学们啊,注意看了,我后边可以来个什么。WHERE1等于一,那这一句怎么改啊?是不是怎么拼都好使啊?想咋拼咋拼,OK吧,其实啊,我们以前都是这么做的,以前I bet刚出来的时候,其实我们玩的都是hibernate,甚至是比较老版本的hibernate,甚至以前我们这个annotation这种机制啊,还没有出来,都是后期出来了之后,咱们才会这个大量的这个使用,后期都是来操作了,OK吧,前期其实我们都是这么写啊,好,所以说啊,你如果使用这个JDBC啊,或者是那个HY啊,你就可以这么写OK吧它但是呢,它毕竟是拼刺股串,其实这种一等于一是是一种这个投机取巧的这种做法是这样吗?是属于我实在没办法我硬想出来的这种办法,是这样吗?而且更重要的是你想想,对于我们现在这个查询来讲的话,其实它是很容易很简单的。
14:45
对吧?如果将来遇到了复杂的查询,或者是啊,需要动态的拼接更多的这个SQL语句,那么你想一想,我们这个字符串全是双引号拼的,是不是得老乱了,OK吗?从代码的可读性。
15:01
以及可维护性来讲的话,都是很差的,是这样吗?就这种代码一旦出问题了,你喜欢改它吗?我看着就乱,看着就恶心,是这样吗?你现在可以脑补一下同学们,我现在洗了俩衣服。你可以把这个代码可以脑补一样很长,If老多了,你到时候让你修改一个circle是不非常难呢?是这样吗?好,所以说啊,我们的这个MY白T啊,给我们提供了一种什么呢?动态的一种机制,OK吧,这种机制啊,可以有效的弥补啊我们啊在实际项目开发中,类似于这个啊条件啊,查询的这种需求啊,这种需求OK吗?好,我们来看一看啊,今天该多少。17了是吧。我现在先来一个student啊。
16:00
嗯,一个我看看啊。这个age啊,它这个int类型一般来讲,咱不不不算是这个搜索的一个这个常用项啊,我现在多给他添一个字符串吧,我这个name改回来了,以前叫服name行吗?咱们还看内比较爽可以吧,嗯,我再新添一个啊,比如说我再添个地址ad ress。这叫什么地址吧?
我来说两句