00:00
好啊,这个地址我就随便填了啊,一会儿咱们能看到这里边儿这个数据就行了,OK吧,好。那咱们这个student得修复它一下。咱们得多来一个地址对吧。按照这个顺序来了。Address。下边投啊,咱们也重来一把啊。好。我们现在来个s.set name,比如说我要查性。我查,比如说带歪了吧,行吗?咱们看看啊,这个记录什么东西多一点,带歪了有几条一条。
01:00
两条三条也可以是吧,也可以啊,带Y的好,同时呢,这个地址啊,咱们来一个set address啊,带A的是不是都带A啊。你看转是不是都带A呀,对吧,好没问题啊。哎,好,我们现在啊,暂时先把他俩除掉一会儿啊,咱们一个一个条件给它放开啊。好,Student DAO调一个select该17了。把我们这个S传到里面好,但是现在啊,咱们传递的这个S对象,它虽然不是n nul,但是它里边的属性值是不是都是al,是这样吗?好,因为啥也没填呢,这两行我出掉了对吧?好给我们返回一个list啊,来展现一下这个list。
02:06
好,SELECT17啊。开这么多。啊。Student do。来一个SELECT17好,Result type啊,咱们还是这个student好。Select星from表这点啊,咱们是不变的,OK吧,那接下来呢,我们要使用这个动态circle的这个第一个标签啊,叫做什么呢?这个where标签啊标签。
03:03
好,这个where。标签啊,Where标签,好,这个where标签是这样的啊,同学们啊。Y啊,好,这个标签的这个作用是什么呢?好,当我们。Where标签在使用的时候啊,必须要搭配什么呢?好,这个where标签对中的if标签来使用,也就是说一会儿我在这个where标签里边还要写这个if标签,OK吧,好,通过这个if标签的这个判断啊,通过if标签的判断,如果有查询条件,则展现where关键字OK吧,那如果没有查询条件。
04:11
则不展现where关键字啊好,所以说呢,我们现在在这里边需要做这个意思判断啊。来这里边儿,咱们来个if。Test好,那大家注意看啊,我这个test里边,我现在需要判断的是谁呢?比如说我现在就拿这个name和这个address OK吧,哎,这个S怎么了,报错了。啊,重名了是吧。一一啊,这个咱们也给他写上啊。动态circleq啊。动态色号where。
05:03
标签。结合if标签啊好。大家注意看啊,这个test里边能写什么啊,我们现在要判断name,那这个name怎么写?以前咱们在这个井号花括号中,你能写啥,我这里边儿就能写啥,OK吧,我这个井号画括号中能写什么同学?我把这东西给你补上啊,我这个parameter type,如果我要写的话,应该写个什么。我传个什么,我说传了一个student对吧,传了一个student啊好,这是我给你补全了student,那么我这个井号括括号中的这个内容可以随便写吗?不可以,是这样吗?如果你传的是一个string,或者是一个int,我这里边可以随便写,但是你传的是一个student,这个doin引用数据类型是这样吗?那么我在井号画括号中,它只能是什么?
06:00
Student中的属性名是这样吧,好,所以说啊,我们现在啊,既然传过来的是一个student啊,那么我们就只能用做这个属名的这个标识,OK吧,好,那现在我们来判断啊,如果name不等于空,同时name不等于空串,咱们得判断一下,但是以前我们写的同时是不是都是这么写的,对不对,在这里边不行啊,这里边同时需要你把and的符给它写成真正的英文什么呢?And name不等于。空串看到吧,那大家注意啊,既然我们外层选择使用的是双引号。那是不是我里边再写引号是必须得写单引号,那单引号里边再写引号呢?应该再写什么双引号,但是这里边这个双引号你再写的时候是不是跟外层双引号就重复了,那里边如果再写双引号的话,是不是就得转移了,对吧?好,现在我们来看看这个内的问题啊,同学们,如果name不等于空and name不等于空串,我们来一个。
07:12
Name。Like,还记不记得什么线?这块得来个空格吧,这里面写什么name好摆放号,也就是说大家注意看啊,在此处我name一共出现了三次啊,一次不判断不等于空,依次判断不等于空串,第三次用我们的prepared statement啊来取值,对不对?这三处name。必须是什么?必须是什么?这三处name啊,它必须是我们什么传递过来student这个类型的属性名,OK吧,好,行,这个name咱们判断完了,好,接下来咱们再来判断下一个啊,下一个的判断方式跟上面这个name啊一模一样。
08:04
好,我现在判断地址啊,同学们。行了,这个咱们一起来写啊,Ad ress不等于空,And。我这不等于。空串,OK吧,我们拼一个什么呢?And?Like。好,A dress对吧。诶。这就是咱们这个动态色号,我们现在测第一组啊,那大家注意啊,我们现在传递的这个S啊,那大家注意了啊,我们传递的这个S啊。它是不是里边name为空,Address为空啊,啊,因为现在是助调的状态,对不对,好,所以说这个if通过不。
09:00
这个if通过不,如果都不通过这个where关键字显示,不,不显示,最终我们呈现的SQ语句是什么,Select形from表,这是我们想要的,对不对,看一看啊,最终执行的这个结果啊,它到底是什么啊来。嗯。没有啊。哎,那样的形容from表,哎,一共把这六条全查出来了,一点问题没有,对不对?好,那现在我打开第一个查询条件,大家注意啊。我把name给它打开了,Name打开了,注意看了啊,内打开之后,哎,这个回这个if判断内是不是就不等于孔了。那所以说啊,如果这个if的这个name不等于空,是不是应该执行if标签体中的内容,就跟我们以前Java中执行if语句块中的内容一样。
10:02
对吧,诶,这一句它就执行,所以说我们现在来c select星from表判断了一下这个name,哎,Name不等于空,说明要执行这个if,如果if其中有一个if有效,那么咱们这个V关键字是不是要展现出来,对不对?所以说最终拼接的结果是select形from表where name like,后边不通过就不拼它OK吧,好,来试一下。嗯。看看好不好使?同学们where name like是不是把它挂上了?OK啊,那现在啊,我再把这个address啊给它打开啊,打开之后这两个if咱们都通过,如果都通过啊,咱们就应该把这条。Circle语句给它连在一起,是这样吗?Select形from表where。
11:06
Name like什么什么and dress like什么什么,看看啊,是不是跟我们想的是一样?看看,Where name like and address like,没问题吧?哎,这就是我们的动态号。有一个吗?这道题有问题啊。是吧,我知道大家怎么想的啊,你们要注意到哪一项,要注意到第一个是吧?注意到第一个啊,我们现在只有谁了。只有address对不对?只有address那就变成什么呢?那如果有其中一项,咱们where是不是肯定得显示啊,那它就会变成c select星from表where and address是这样吧,行,我们来看看最终执行效果啊。
12:20
如果真是像你们说的那样,那这个动态时候太失败了。什么意思?咱们这个where关键字,它还有一个很重要的作用是什么?Where标签啊啊会自动的屏蔽掉。什么呢?第一个什么呢?啊这个啊,连接符是这样吗?好and或者是什么呢?Or是这样吗?哎,那我可不可以这么认为呢?我name我前面也加一个and,我随便加,可以这么认为。
13:02
可以吧,行,我现在再把这个内给他打开啊。看看内蒙前面是不是没有这个案子呀,没有任何问题啊,这种形式啊,以标签的形式来呈现,我们第一次看起来有可能有那么一丁点别扭,但是这个东西啊,如果你用熟了,这东西真的是非常好用,OK吧,行,这就是我们的这个动态circle啊,那值得一提的是,呃,我们今天要做项目呢,是吧?我们看一看这个原型啊。嗯。来咱们比如说啊,你看比如市场活动线索啊,就这些东西,你看上面是不是都有这个搜索栏。看到没,这些基本上都是咱们这个企业级这个系统啊,这个啊必备的一个需求,OK吧,那是属于一种这个基础建设了,OK吧,好,就这些东西啊,填完之后点查询,或者啥也不点点查询,就这些东西一下就能够让我们想起来什么呢?是不是动态SQL where标签结合if标签,是这样吗?哎,这个东西到时候得能想得起来啊,OK吧,好。
14:21
我们接着往下看啊。
我来说两句