00:00
好,那下面咱们就通过my be里面的动态circle对吧,然后来实现一个多条件查询,好,那我们在这咱们再重新创建一个工程啊,咱们快速的来创建一下啊,不耽误那么多的时间啊,然后叫做my be,然后下划线叫做动态circle,叫第1DYNAMIC啊,Dynamic是动态的意思啊,叫动态circle口,OK,然后group ID咱们设置为com.ADD,硅谷点MY就可以啊,啊点击finish,然后下面咱们是不是就可以把我们的这些依赖呀,对吧,然后都给它复制过来,来大家看啊。好,找到咱们的package打包方式。好,然后再往下把咱们的依赖呢都给它复制过来就可以,然后点击音port的changes,然后再把咱们需要用到的一些配置文件什么的都给它拿过来啊,比如说然后我们在这咱们的配置文件有GDBC.proper logo for g点叉L这两个直接拿过来,或者说咱们也可以直接把咱们的my be杠、configgu你直接复制过来也没有任何问题啊好,咱们直接拿过来就行,对吧?然后这里面大家看一下,这是咱们的引入proper文件,这是咱们的全局配置,有三个,然后再往下的话,然后这是咱们的类型别名,然后这是我们当前连接数据库的环境,然后这是引入,引入咱们的映射文件,OK吧,好,那我们在这咱们继续,然后来创建,我们先创建一个包,叫做com.at硅谷点买be,然后点uts u,然后把我们的这个工具类啊,然后给它拿过来。
01:40
好,然后再往下呢,然后咱们再来创建一个包,然后把咱们的实体类呢也拿过来啊,好叫poo,好,然后呢,咱们来创建一个什么样的实体类,比如说咱们就拿着咱们的员工表来做例子,OK吧,然后所以说咱们在这直接创建一个emp就行啊,然后这其中咱们需要设置的属性都有,成员变量都有谁啊,Epd,然后再往下private string类型的EP name,然后还有呢,Private,然后in tIgEr类型的age,然后再往下是S类型的gender g gender OK,就这四个就行,OK吧,咱们现在就拿着员工这一个表,然后来操作我们当前的一个动态circle啊好。
02:27
然后来设置它所对应的有参构造,还有它的无参构造,然后还有呢,咱们这里面的get跟set方法。然后还有最后咱们的一个突证方法就可以啊好,第1PT呢,咱们就不操作了,我们就只操作我们的一个什么呀,只操作我们当前咱们的一个原工表就行啊好,然后再往下的话,那我们还需要拿过来是别的就不需要了,对不对,那我们就直接开始来实现咱们的功能,比如说咱们把map接口呢,给创建一下,叫做map点,叫做动态circle dynaic dynamic circle。
03:07
Map。好,再来创建它所对应的这个映射文件啊,咱们把这个映射文件所对应的包先创建出来,Come。艾特硅谷MYT。然后map。好,再来创建咱们的映射文件。叫dynamic circle map OK,好,创建完之后,咱们在这把它的命名空间呀,和咱们的map接口的全类名,然后保持一致。然后再往下,咱们就可以来测试我们的多条件查询了,对吧?首先呢,咱们先来写个方法,这个方法呢,就是多条件查询,根据条件来查询员工信息,那大家说这个方法的返回值应该是什么呀?咱们确定不确定你查询出来的数据有几条,是不是可能有一条,也有可能有多条,所以说当你不确定你查询出来的数据有几条的时候,那咱们最好是用list的集合,因为如果你查询出来的是多条,但是你却用实体类类型来作为返回值,大家还记得报的什么错吗?叫做too many results exception,有印象吧?好,所以说在这咱们要用集合泛型是emp,然后叫做get emp by condition啊,叫做条件的意思啊,好,然后这里面咱们现在,那咱们都能把什么作为条件,那咱们既然是查询员工信息,那咱们肯定要以员工的信息作为条件,所以咱们就可以把员工的各个信息啊,封装成一个一。
04:38
MP对象,哎,这个大家注意啊,好杠行行,然后咱们是根据条件,然后来查询员工信息,OK啊好,然后我们现在呢,咱们把它复制放到我们当前的映射文件中,然后这是一个查询的操作,它的ID要跟方法名一致。好,然后再往下result type就可以啊,因为我们现在不需要实现多对一,所以说呢,咱们直接然后查询一个员工对象就行,好,那下面大家说我们在这咱们应该怎么做呀?然后首先circle语句很简单,Select的形from t_emp然后我们现在呢,是需要把咱们的条件呢都给它加上,但是呢,咱们的条件需不需要被拼接到SQL语句中,我们还需要来看一下你的页面中有没有去选择这个条件,那我们要想知道你选择有没有选择这个条件,那咱们就是来判断一下它的一些特殊的值不就完事了吗?还记不记得我们上一个视频里面跟大家说过,然后我们当前呢,把这些数据从浏览器传输到服务器的时候,它有两个比较特殊的值,一个叫难,一个叫孔子不串,如果是难的话,或者说是空字不串,那就说明你没有选这个条件,如果当它不等于空字不串,也不等于难的时候,那我们是不是就说我们。
05:59
当前选择了这个条件,那我们就要把它给拼接到咱们的circle中,对吧?好,那这个时候呢,咱们先把while关键字加上,加上之后呢,然后我们在这大家说咱们是不是就要判断这个条件需不需要拼接到circle中啊,这时候咱们用什么大家看好啊,这个时候咱们的动态circle中呢,有一个标签叫做if,那其实我们要做的不就是来判断它是否符合条件,是否符合规则,如果符合规则的话,咱们就要把它拼到circle口中,如果不符合规则,那就不拼呗,对不对?所以说在这儿大家看好这个if标签。
06:35
非常的简单,里面只有一个属性,这个属性的作用呢,就是来判断,根据我们当前这里面所写的这个表达式呀,然后来判断它为true或为false,然后呢,以决定当前咱们标签中的内容是否有效,什么叫做有效无效,大家记好啊,有效表示的就是当前标签中的内容有效果,会拼到circle口中,而无效表示的就是标签中的内容没有效果,不会拼到circle口中,OK吧,好,这个啊,行,那我们在这咱们怎么写呢?大家说咱们要判断的是谁,咱们是不是说了拿着员工姓名,年龄还有性别这三个作为条件,对不对,就不要拿着ID作为条件了啊,因为这个ID啊,大家要注意,它对于用户来说,它是没有任何意义的。
07:21
知道吧,它只是在咱们的表里面有意义,能够帮助我们更精确的去操作数据,对于用户来说是没有意义的,所以说咱们也不需要让用户知道这个ID是几,咱们也不需要让用户根据ID去查询数据,知道吧,这样的啊,好,然后下面呢,我们在这咱们怎么做EP大家看好怎么写啊,在test里面,如果说你要把谁作为条件的话,咱们传过来的不是一个实体类对象吗?所以说在这咱们直接去访问实体类中的属性叫EP内,然后来判断当它不等于nu l的时候,还有就是什么不等于空字符串的时候,咱们是不是才需要把它拼到circle口中,那中间咱们需要来写个and,那我们之前咱们的and怎么写,这样去写。
08:10
但是大家注意,这个东西在咱们的。用这个叉L文件里面,它是一个特殊字符啊,所以说我们在这不能用这个不能用这个符号表示and的,那我们怎么办?咱们可以通过汉字来表示就是and的啊,通过这个英文来表示and的就是并且的意思,然后如果说大家要想写或的话,大家就直接写哦就可以知道吧啊然后再往下,然后是EP内当它不等于谁空字不串,哎,这个大家一定要看好,这需要写什么?井号大括号Dollar大括号不需要直接通过我们当前咱们的属性名就可以来获取当前的属性值进行判断,OK吧,那如果咱们要满足这个条件的话,大家说我们要干什么,咱们在这是不是要加上一个emp下划线内幕等于井号大括号emp name的条件,也就是说,如果当前咱们所获取的emp name,它不是那也不是空字不串,那我们就需要把这个条件拼到咱们的搜狗中。
09:14
OK吧,下面的话是一样的啊衣服。好,然后间括号一标签。好,然后test,然后里面写什么,咱们判断第二个叫做年龄,如果说年龄。不等于难。然后并且,然后这个A级它是不等于空字不串的,好然后这个时候啊,我们就需要在咱们的S口尾句中再拼一个条件,那当然大家看咱们写的顺序,这是第二个条件,那第二个条件是不是要跟咱们上面这个条件进行拼接,那所以说这里面它就要加上一个and,对不对,好A级等于。然后井号大括号HOK再往下,然后第三个呢是金得,然后在这咱们也是啊,然后一个尖括号if,然后test,然后来判断这个金得,当它不等于null,然后并且啊金,然后不等于空字符串的时候,大家看啊,然后我们再加上咱们的第三个条件叫做and金得等于井号大括号G金得啊。
10:24
行,大家注意这个circle语句咱们就写完了,然后下面呢,我们是不是就可以来进行测试了,对不对,然后我们来找到咱们的这个test,然后下面的Java来创建一个类叫com.at硅谷点my be啊,然后my be,然后点test,然后点叫dynamic map test。OK,行,然后咱们在这来创建一个测试方法。返回值是VO的,然后咱们所写的方法叫get e,然后by condition,哎,By condition OK,啊,行,然后下面咱们怎么做呢?大家想想,首先第一步还是一样的,来获取我们当前的circle session对象,然后再来获取我们当前的dynamic map circle map的一个代理实现类对象,然后再来调用咱们当前的这个方法。
11:22
好,那我们是不是就可以来创建一个emp对象了,对不对,Emmp等于另一个emp,然后第一个ad咱们不根据ID查,所以说是耐,然后第二个,比如说我们获取的叫做a me,然后第三个的话啊,或者说咱们这里面应该是叫张三吧,对不对,然后这个年龄的话,咱们写个23,然后最后这个性别的话,然后咱们来写个男查看啊。二。来性别咱们来写个男就可以啊。选这个年龄,咱们设置的应该是银台,那就写个这个把双引号去掉就可以啊好,然后咱们把这个emp呢给它放进来,那这个时候咱们就可以干嘛呀,是不是来获取一个list的集合,然后下面我们直接通过咱们的list点过一起,然后把它给输出就行啊好,那下面大家来看一下这个效果啊,看我们当前咱们在这这样去拼接,看它对不对,首先呢,大家注意咱们现在给大家传输的这些数据啊,员工性名也好,年龄也好,然后性别也好,他是不是都不为难,也不为空自无串,那所以说这个时候咱们的每一个条件是不是都需要拼到circle口尾去中对不对,那咱们就来看一下,咱们通过if标签的判断,能不能把我们当前的这些条件呢,拼到circle中啊好,下面我们在这来一个执行,大家来看一下。
12:56
好,大家看一下,诶,看有问题没有,咱们先看这个circle口啊,Select的形容,From t_emp well EP name等于谁,And age a级等于谁,And金等于谁,没有问题吧,那我们现在咱们查询不到,是因为没有相对应的数据嘛,对不对,大家看张三年龄是20,那我在这把年龄给他改成是20,大家再来看啊,我们现在咱们再来一个执行,大家看一下,这个时候我们就可以把张三这个员工信息给他查出来了。
13:28
OK,大家看是不是就可以查出来了,OK吧,好,那所以这就是我们通过my be的动态circle,然后来实现的这个这个多条件查询,咱们在这呢给大家来讲了,这个第一个这个标签叫做if标签,来咱们在这写一下,然后咱们的my be的动态circle,哎,Myab的动态circle,咱们讲的第一个标签大家看好啊,叫做if,它的作用是干什么的?大家说通过咱们的test属性中的什么表达式对吧?然后来判断啊,然后来判断咱们标签中的内容是否有效,标签中的内容然后是否有效,什么叫是否有效,其实就是是否是否会拼接到,是否会拼接到咱们的circle中,哎,行,这个大家注意啊,好,这是咱们的第一个标签,那当然这里面的问题啊很多,那下面咱们就来看一下它。
14:28
它所出现的一些问题,然后以及它所对应的解决方案啊好。
我来说两句