00:00
最后一个内容啊,MP实现复杂点的查询操作。小区位置啊。MP实现复杂一些的。条件查询,那这个该怎么做呢?给大家说明,首先啊,在MP中呢,你要做条件就是复杂点查询,查询它要用到里边的一个对象。然后这个对象呢,大家看一下里边的这张图。啊,我邀各位能看懂啊,这图怎么看,我说一下啊,咱这么来看啊,大家看你看啊,每个前面一个字母是不是叫C。这C什么意思表示啊,它是一个类啊,就是类有rapper这种类,然后你看啊,它是不是有不同的箭头的指向,这箭头什么意思,我强调啊,首先第一个。这个叫rapper,表示它的一个什么,是不是一个父类啊,下面是不是他们的子类,比如它子类下面还有子类啊,这一个类的一个继承关系,这是父类下面有它的子类,所以咱用这个rapper能做一个叫条件的构造,比如你做什么普通查询,什么某查询,什么各种分页,什么各种查询,他都可以做到啊,这叫条件查询,那这里边有这么多类,咱到底用哪一个呢?给大家说明啊,就是理论上用哪个都可以。
01:19
但是咱们实际中一般建议各位用这个就用这个类创建对象来实现。这个名字叫query rapper,咱们做MP的天然查询,一般用到的都是用它来构建我们的条件啊,用这个来构建,我写一下啊,使用这个叫做query rapper。构建我们的那个条件啊,这个各位给他先知道啊,然后这个咱为什么用它,我来解释这么一个概念啊,因为这个应该比较好理解啊,是咱们在Java基础中一个最简单一个思路,什么思路呢?你注意啊,比如说我现在一个父类中有的方法,我子类中是不是可以去用。
02:03
但是你注意啊,如果说子猪有方法,那父类是不能用,比如说说的更直接点啊,比如说你的父亲有东西,那我可以要,但是你有的东西,那父亲他不能用啊,就类似于这个特点,所以说咱们用这个quary rap,为什么用它,它里边的功能方法比其他的更加强大,所以咱们做天查询用的一般都是这个叫quary rapper,但你说我就用这个rapper也没有问题,只是这个quary rap里边的这个功能更加强大,所以咱们一般用的都是它叫query rapper来构建我们的条件。啊,这各位给他先指导一下啊,然后这怎么用我来演示一下啊,这小问题我说到咱们后面这都去掉了啊。然后它的做法就是首先啊咱看一下,然后演示它的第一步就是咱先new这个对象叫快rapper,然后new完之后呢,调里边的各种方法来把这功能做到,比如说咱看一下有什么get,什么EQ,什么比between啊等等一系列方法,那下面给大家就来演示这怎么来做。
03:05
但我说明啊,我在这个课件中呢,给大家列出了有很多的方法,在这方法中呢,我只演示一部分,就是演示咱们在在线教育项目中会实际用到的方法,就是大部分在用到,但有一些咱不会用到,所以这里边我演示用到的,如果说我在上课没有演示到的方法,留各位一个任务啊,就给各位自己在课下按照我的文档,把我没有演示的方法自己给他动手演示一遍,因为我在课件中这些代码都有啊,我只演示咱们在在线教育中会实际用到的东西,因为这个一个里边的方法很多,我不都演示了,演示最主要咱们最实际能用到的方法。这各位要明确啊,也说有一点各位要注意啊,咱们之前呢,经过了很多阶段的学习,不管你是学Java基础,学Java web,学框架,学什么Java高级等等,学了很多,但是你发现啊,之前我们学到很多知识,我觉得各位很多应该不记得了。
04:08
啊,肯定是这个样子,为什么不记得,因为你后面一直没有用啊,比如说之前有很多东西,咱后面可能都忘记了,有一个最基本的GDBC,我觉得很多应该都忘记怎么去想啊,因为后面我们一直没有用,但是咱们在项目中我们学的东西肯定都是咱们项目中马上要用到的东西,都是最直接最马上要使用的东西,所以咱们项目中学技术跟之前会稍微有点区别。学完之后马上就要去用啊,所以大家把这学的要重视起来啊,咱们学的就是更精准一些,那在下面来具体演示一下里面这个操作啊,直接我们写代码来操作啊。首先啊,怎么做呢?角这位置啊,第一步操作,咱的做法就是先创建一个叫宽rapper这么一个对象。啊,创建一个叫query。Rapper的这么一个对象。
05:00
这个创建,然后创建之后呢,调用里边那个方法来实现各种的条件查询啊主要这个步骤,那咱们先写一个最基本的一个操作,然后在演示里边就是更具体的这些方法。好,那我来写一下啊,咱写到下边啊。呃,这个啊。首先啊,我先写就是最基本的这个操作啊,就是MP实现一些复杂点的开操作。啊,比如说这个方法我改一下啊,叫这个test。Select啊,这个叫query啊,就是这个名字了,那里边怎么来做呢?按照我刚才说的,首先第一步操作,咱需要先创建这么一个叫query rapper的这么一个对象。那我来创建啊,Query rapper里边的泛型中加上这个user,然后起个名字,比如我叫rapper,等于new上这么一个叫query rapper,这是它的第一步,创建一个query rap对象啊,第一步做到了。
06:08
然后做到之后第二步操作,咱们通过这个叫query rapper来设置它那个条件和它那个值,就是设置啊,它里边那个条件。那这个该怎么做呢?咱看我的课件中,在我课件中这些位置列了很多的方法啊,那我说一下我们项目中会用到哪些方法,先做个介绍,然后再一演示,首先第一类方法就这几个方法。叫get,这几个方法什么意思呢?给大家啊,写到我们的这个代码中。就是它的含义就是GE嘛。就是大于等于包括大于小于等于小于,就是这个操作,比如说我们现在要查这个年龄大于20的这个年龄,那就就是大于包我查年龄小于等于200的,那就是查这个数据,这是大于大于等于小于小于等于啊这是第一类方法,因为咱演示。
07:06
然后除了这个之外,在咱们后面在线中还要用到这两个方法,这个用的是最多的啊,就是一个是EQ,这是最多的方法,那这两个什么意思,EQ就表示等于,比如现在name等于Lucy,那NEE什么意思,它就表示不等于啊,这是两个我们后面会用到的啊,两个基本方法。然后除了这个之外,咱们后面项目中还要用到这个方法叫比退。这个大家来不来比退什么意思呢?比如我现在想查询年龄在,呃,这年龄太大了,来换个年龄,比如说来一个20,这来一个。三十来个70啊,比如现在我想查询年龄在20~30范围中的这个值啊,那这个表示比退查你范围中的值,这是一个方法,除了它之外,这咱会用到给各位自己去演示了啊,然后这个咱会用到它叫like方法。
08:03
啊,这里边有一个叫like。Like,什么意思?就是咱要做个模糊查询,比如现在我想查询就是你的名字中只要包含这个什么东的这个名字啊,都给它查出来啊,这叫模查询。然后除了这个之外,然后后面还用到一个啊这些各位去演示,这个会用到叫order by,就是一个排序,比如我们现在根据ID做个升序,或者说做个降序啊,这一个方法,然后除了它之外还有一个叫,那这个方法后面咱有用到。Last做什么呢?就做一个拼接,我先列出来啊,一会我都会演出来,还有最后一个就要查询指定的这个列。啊,就是这几个方法,但在后面的在线教育项目中我们都会用到啊,各位先知道啊,然后我下面咱们一个一个详细演示,然后这里边有几个我没在课上演示,交给各位去完成,就留成一个今天的任务啊,各位把我没有演示的一个代码,自己按照我这文档给自己去动手操作一遍啊,因为咱项目中主要演示的操作的就是这么几个方法。
09:10
啊,这么一个啊。少于括号啊。然后这里边咱们下面演示一下啊,首先演示第一类,第一类是什么呢?咱就写一个具体一个需求,比如现在我想查询A,就是大于等于这个30的这个记录啊,把这个我想做个查询,那咱们下面就来写一下这个方法啊,我们先把数据啊,就有数据大于等于30啊这两个数据,那咱们看怎么做啊。做法很简单,Rapper咱扭出来了,然后咱们用rapper里边这个方法,就要这个G就大于等于,然后在里边两个参数,咱们看两个参数啊,大家看这个值。第一个参数它是不是叫column column什么意思呢?就表示是你那个字段的名字,第二个VL是我们的值,那比如现在我查年龄,什么叫字段,就是你的这个值。
10:08
Age嘛啊,那我们写上这么一个叫age。然后第二个值,比如咱们写个30,这要表示构建这么一个条件,然后构建之后呢,最后咱调方法就是user map中的这个方法啊,咱用刚才这个叫select list,最早咱是传过空,现在咱们把传进去。然后他会返回这个结果,然后把结果最后做个输出。就这个啊,我们叫右侧,而这么做的话,它就会把这个年龄大于30的记度查出来啊,这叫G就大于等于,包括GT大于,Le是小于等于小于都一样啊,咱以它为例给大家做个演示。这个啊做到了,就是你六个对象用方法里边两个参数。我写一下两个参数啊,第一个参数是你那个。
11:02
字段的名字,第二个是你要设置里边那个值啊,比如说我们查询的年龄是30的这个值啊,那我们就写个30。这个啊,我们就做到了啊,然后咱们来执行一下,看一下这个最终的结果是什么样的啊,我们来执行啊。看结果啊。啊,然后这个执行咱往后面看啊,第一个咱看它的语句中,大家看语句这个位置。A值是不是大于等于一个值,然后它的值就是这个30,包括把里面这个记录做到了,就是30啊,包括这个啊,咱又多加一条记录啊,就这个数据应该都有了啊,刚才我又加了几个啊,这个啊,我们就最终给他做到了啊,这是我们说的第一个就是GT啊,咱以这个为例,这几个用法跟它一样,也是写个方法,名字传你的字段名字,还有你的值。
12:00
啊,这个啊,我们演出来了,然后这个演示之后,咱们下面继续往下演示,这个我就先注释一下啊,咱们里有数据。然后咱们看第二类方法,它叫做EQ和ne,那什么意思呢?EQ表示等于NEE表示不等于啊,那我们现在还是写个条件,我来一个rapper点上EQ,比如现在我加上这么一个条件,我想查询,比如这个就是名称等于这个李雷的这个数据,把这个我想查出来,那在里边我们就写下啊,比如咱们来一个叫。Name。然后它的值是这个叫李雷,最后调方法查询,它就可以把这个名称是李雷这个数据查出来,这就用叫EQEQ表示就是等于的效果啊,就是你内等于李雷。咱们来试一下效果啊,看一下结果。把这个啊,我们执行。
13:03
然后咱们啊,看他最终的结果啊。到最后我们来看一下啊,咱就直接看语句就可以了,然后语句啊,就看这个可以select from,然后你看语中name。等于是不是李雷啊,这个我们就做到了啊,这是它的这么一个方法叫EQ,另外还一个叫ne,这ne我也演示一下啊,还是用这个条件,那这里边不用EQ了,然后改成叫ne表示,就是不等于,现在我要查的就是name,不等于李雷的这个数据啊,咱们来试一下哈。这个做个执行name不等于李雷的数据。咱们看它啊,最终的这么一个结果。这个啊,也是听出来了,咱看最后你看啊,Name是不等于李雷啊,你注意这个写法啊。我强调啊。就是这个写法。
14:01
小括号大括号表示不等于它跟咱们就是这种写法是等价的,就是咱们这语中一般建议写成小括号大括号啊,不写这个不等于这个,两个写法是一样的。这个啊,就是nee的一个效果,咱们也是做了一个演示,就是不等于这个值,包括EQ等于,然后这个做完之后,下面还有几个啊,咱们也是快速演示一下,看下面一个啊。这个叫比T,它表示一个范围。比如现在来个需求,我想查询这个年龄,比如在这个20~30这个范围中的这个值啊,我们做一个查询20~30范围。来看数据。应该就这两个,比如再换一个啊,再来一个这个。呃,25啊,让他有多几条记录,然后现在我做查询,那这个过程中可以用这个比吞时间,咱加个rapper点上比between,大家看啊,三个参数,第一个参数是你那个字段的名字,我们叫age,第二个参数是你的开始值乃至20,第三个结束值是30,他就会查这个范围是20~30这个之间的这个值。
15:16
把这做到啊,这个叫between,那咱们也是演示一下啊,直接看结果。就看这个效果啊,20~30这个范围中的这个值,用比吞做到啊,它就相当于我们写一个语句,那个比吞按的这个效果。啊,咱们啊直接看一下啊,它这里边的这个语句你看啊。比吞20按的30,然后他把这三条记录查出来了,因为咱们表中就是有这三条,20 30,还有一个25。啊,这个就可以了,这叫比吞的这么一个功能啊。所以大家把这个用法给他知道啊,就是用法都一样,你直接用rapper调方法可以做到,然后下面还有一个叫like啊,包括这个啊,这几个我都快速演示一下啊。
16:04
给我放到最后了啊。然后咱们看这个like like做什么呢?它叫模糊查询,比如来一个rapper.like like啊。然后在like中,比如我加了个字段叫。啊,Name,比如我现在啊想查这个就是。我在这个名称中,比如说只要包含这个就是。呃,这个吧,月的这个字都给它查出来啊,那里边我就传一个指叫这个月这做的就是不查询啊,用like做到,那咱们啊,这个也是执行一下啊,看一下结果。用这个啊,实现一个模糊查询。啊,我们看啊最终的结果,首先啊,第一个各位注意啊,咱们看它的生成的语中语句里边是不是多了一个叫like,但是你看它给我们拼接的参数中。
17:02
多了一个什么。是不是百分号啊,但是我刚才在传值的时候没有百分号啊,百分号是由他帮我们传进去的,没有我们做到一个角模糊查询啊。它就是这么一个结果,这个叫like,然后除了它之外还有一个叫order by,就是做一个排序啊,这应该比较简单,就是咱们根据这个ID你做升序和降序啊,有一个排序的效果,那这个啊,快速写下啊,Rap点上这个叫order by,你看里边啊。ESC是降序,SC是升序,那比如说我就写一个降序了,咱就写一个ID,它根据ID可以做一个降序排列啊,就这么一个结果啊,这各位也都知道啊。然后除了它之外啊,在这里边还有一个方法叫last啊,这个不显示,因为这个比较简单直接,它就是一个排序。然后还有一个叫last last什么意思呢?咱看我的文档中啊,这里边有一段标注。
18:01
Last。啊,应该在。下边啊。呃,在这位置啊,那什么意思,它就表示你可以直接拼接到circle的最后,比如它最后可以拼个语句啊,那比如说我现在比如说啊,咱就拼个语句。咱就拼个最简单的语句啊,我来一个last,比如说写这么一个语句,我叫这个LIMIT1,它就表示咱们查出数据,只查一条数据,它就是向后面拼一条SQL语句。啊,那咱们来执行一下啊,这个拉这个方法。拼最后语句啊。来试一下。然后我们啊,看他最终的这个最终结果啊。咱看这里边的显示中,你看啊,在语句后面多出来是一个利特,然后它就把这一条数据查出来,它就是在这个前面部分最后拼上这么一个内容,这叫last,就拼个so后语句。
19:06
啊,这个做到了啊,然后除了这个之外,咱们在在线教育项目中还有最后一个咱有用到,就咱项目中用到很多,还有最后一个叫什么,它叫做指定要查询的力。那什么叫指定列呢?给大家解释一下啊,大家注意啊,比如我现在这里边我写个select星号。这星号什么意思呢?它就表示是不是就是把所有资源都查出来了,但是比如我现在啊,我只想查ID和name,那咱希望就是我是不是加个ID逗号是不是name,这就表示我只查ID和name,这就叫指定的列啊,这查出来,而咱现在在代码中也可以这么做,那怎么实现rapper点上这个方法,这个方法。叫select里边加上你的字段的一个名称,比如我们查一个ID。
20:01
比如说再来一个这么一个叫name,那这么做它就只会查询出你的ID和name的两个字段啊,但是你可以加更多啊,你不加的话查所有加的话,根据你加这个字段把这个数据查出来,那咱们也是最终来试一下啊。这么一个效果啊,指定的这么一个力,把这个咱做个查询,咱们现在只需要查这个ID和name的两个字段的值。咱们啊,看这结果直接看语句啊,你看语句中啊。是不是就是ID和name没有别的字段啊,然后他查出结果就是我们的ID还有这个name,别的数据就没有啊,这是关于我们说的条件场景部分啊,用MP中这个query rapper对象把这个可以做到。啊,所以大家把这给他要不用啊,主要就是里边的这么几个内容啊,然后这几个方法,我在这个位置给大家就是快速列下啊,主要这么几个有一个例。
21:04
BTT它做就是大于大于等于小于小于等于这些内容我写一下啊,就是这个。大于等于大于小于等于小于啊,这是第一个的方法,第二类叫做EQ,还有这个叫NEE,他们做的是什么?就是咱说那个等于,还有这个不等于,不等于可以用这种形式表示。这是第二个啊,就是EQ和,然后第三个方法,我们调这个like,它做的就是那个模糊查询啊。这叫like,除了like之外,咱还有一个叫order by,比如我们这个DSC啊,或者说有一个叫asc。啊,A。那他做的就是你我们说那个排序操作啊,这大家用到,然后除了他之外,还有一个叫last,它就表示我们要在你的语句后面啊,就是语句的最后。
22:01
拼接一段circle语句啊,这叫last,然后除了last之外,咱们刚才也是到了,还有一个应该叫啊,少了一个比between啊,还有一个叫比between。比特就表示在你一个范围中的那个值,还有最后一个叫Li啊,它就表示我们要查那个。指定的列中的这个值。啊,指定力,比如你只查ID和内啊,用这做到,所以这是我们做这个MP条件场景中,然后面项目中主要用到的,主要是这么些方法啊,各位给他比如自己都实际去操作一遍啊,当然还有几个方法,我在课上没有演示到,各位在自习中把我没有演示方法自己给他动手操作一遍啊,我这里把咱们最主要的方法给大家应该都演出来了。这个啊,我们就说完了啊。
我来说两句