00:00
好,那我们之前呢,咱们是讲了自定义的映射result map,那我们通过result map咱们能解决的问题啊,首先呢,就是咱们的字段名跟属性名不一致的情况,还有咱们的多对一的映射,以及一对多的映射,那我们的result map,其实它在使用的时候呢,它的模式都是固定的啊,所以说呢,大家在练习的过程中,大家只要会写一个案例,那其他表的这个映射关系我们也是能够处理的啊。好,下面呢,大家来看咱们的第九个内容,叫做动态。那什么是动态circle呢?首先大家来看my be框架所提供的动态circle的技术,是一种根据特定条件动态去拼接circleq语句的功能,然后它存在的意义是未来解决拼接circle口语句字符串时的一个痛点问题。那所以说动态circle啊,它的本质啊,就是帮助我们来实现一个circle的语句的一个拼接的,那其实我们在讲获取参数值的两种方式的时候,那我们通过井号大括号和Dollar大括号,其实也是往我们的circle语句中去拼接数据,当然了,咱们的动态circle呢,大家注意,它主要是负责去拼接咱们的一些关键字,或者说是拼接我们当前的一个条件。
01:16
就比如说呀,然后大家应该都听说过多条件查询,就比如说我们在一些购物网站中,对吧,当我们去查询一个商品的时候,大家会发现这个页面中呢,会有很多些,会有很多个条件,那每当我们去设置一些条件的时候,我们所查询出来的数据呢,就会越精确一些。那所以说呢,这个就是咱们所说的多条件查询。那我们在讲买V体之前呢,比如说在我们的JDBC中,如果说我们要想来实现这个功能的话,那首先呢,咱们就需要通过Java程序把咱们的SQ语句呢给拼接好,然后这个拼接可不是简单的拼接,因为这里面的问题还是比较多的,首先大家需要明白一个问题,就是咱们的多条件查询,如果我们在页面中没有设置某个条件的话,那我们的SQ尾区中就绝对不能出现某个条件,如果说我们在页面中设置了这个条件,那这个条件就必须拼接到我们的SQ尾句中,才能把最终的结果给查询出来。
02:18
就比如说呢,大家来看,那我们现在如果咱们通过Java程序来处理这个问题,那我们当前呢,我们比如说咱们操作的表还是咱们的员工表,然后我们要拿着员工名称,也就是咱们的1NAME啊员工名称,然后还有咱们的age,然后还有sex这三个作为条件来进行查询,那我们当前这是我们的查询的circle,那我们在这是不是要加上咱们的while关键字对不对?然后这是咱们的第一个条件,所以说它前面不需要加and,而我们的第二个条件A前面咱们是不是应该为了和我们上面的一内来进行拼接,那我们是不是要加上and,那sex的话,咱们是不是也要加上and对不对?大家来看啊,好,那这个时候就有一些问题,就什么时候我们的这些条件应该拼接到circle中,什么时候咱们的这个条件不应该拼接呢?大家来想,那比如说我们要在页面中去设置这个条件的话,那一般情况下咱们应该用的都是表。
03:18
单项让用户去输入一些内容,或者说选择一些内容,然后来作为条件进行查询,比如说咱们的一内呢,在页面中有可能就是一个文本框,然后用户呢,来输入员工姓名,那咱们就可以根据员工姓名来查询了。好然后这个时候大家要想,如果我们在页面中没有设置这个条件,就比如说我们第一次去访问这个页面中数据的时候,那我们应该是没有传输这个条件的,然后或者说还有一种情况就是我们在点击查询按钮的时候,这个文本框里面是没有任何内容的,那这个时候就算是我们当前的一些特殊情况了,什么特殊情况?就是我们不需要把这个S尾句。
04:02
拼接不需要把咱们当前的这个条件拼接到咱们的SQL语句中的这种情况,那我们该如何来进行判断呢?首先大家先来想啊,如果说你的一个数据没有传输到咱们的服务器中,而我在服务器中咱们去获取了,那这个时候咱们获取的应该是null,这个大家注意,或者说我们当前这个文本框中没有任何内容,而我们却在服务器中获取它的时候,咱们获取的应该是空字符串,这个大家注意啊,一定要看好是有这两种情况的,那这个该怎么去解释呢?你就比如说我们之前呢,然后咱们都学过Java script,在Java script里面,如果我们当前要把一个文本框中的内容给它清空掉,大家是不是首先要来获得这个文本框,然后点value属性,让它等于空字符串,然后是不是才可以将这个文本框中的内容给清空,那所以说一个文本框中如果没有任何内容的话,它其实就相当于。
05:02
VALUE6等于空字符串,那这个时候当我们把它传输到服务器中,那我们所获取的不就是这个表单项的VALUE6属性值嘛,那所以说咱们获取的不就是孔子不串嘛,对不对,这个大家一定要注意啊,好,那所以说我们经过判断,如果我们当前咱们的一内它是不等于null,并且也不等于空字符串,我们是不是才需要把这个条件加到我们当前的circle口中,OK吧,那下面咱们的这两个字段呢?同样是这样的一个判断的一个条件,好,然后,但是现在问题来了,就比如说如果我这三个条件咱们都成立的话,那我是不是while后边可以先加1NAME,然后and age,然后and sex,这没问题,但是大家想,如果我的第一个条件如果都不成立的话,那咱们的while后边是不是就直接跟上了咱们的and,那这个S句对不对呢?不对。对吧?还有一种情况,比如说我们当前咱们的三个条件都不成立,那我们当前的SQ语句中,这三个条件都不应该出现,那这个时候咱们的circle语句中是不是就多了一个well啊?
06:11
是不是所以说。多条件查询啊,然后大家需要注意的问题就是我们该如何去拼接circleq,我们什么时候需要把这个条件加入到我们的SQ中,什么时候咱们不需要加,哎,这是一个问题,那我们如果要用Java程序来进行判断,来进行来进行功能的实现的话,可能会比较麻烦,那我们的my be呢,就为我们提供了一套动态circle的标签,其实大家注意这个动态circle它主要指的就是咱们映射文件中的一系列的标签啊,我们就可以通过这些标签,然后来帮助我们更简单更方便的去拼接咱们的SQL语句。OK啊,那其实这个就是我们动态circle的一个功能,大家注意它主要它的本质呢,就是一系列的标签,它的功能呢,就是帮助我们动态的去拼接咱们的SQL语句,OK啊。
我来说两句