00:00
好,那在这个地方呢,我们先写一个测试用例。叫re。然后呢,同样在这个位置呢,我们先把这个测试用例的呃,测试环境给它创建出来。然后在这面呢,我们先注入啊,Resource注入我们的user map。Private。User user。然后接下来呢,我们来写我们的第一个例子,第一个例子呢,就是我们先简单的认识一下一些基础的条件查询,还有这个常用的条件查询,所以第一个例子呢,我们写一个。Public。Wide test1。好,这个例子我们要完成什么呢?我们看笔记。我们要完成这个内容。把它粘过来。好,查询名字中包含N。
01:02
模糊查询年龄大于十啊大于号且小于20小于号对吧,Email不为空的用户好,那么我们在这个地方写一下就是。刚才看到了我们这个家族成员有一个什么呀,刚才我说到了,我用的最多的就是这个query rapper,所以呢,我们就先创建这么一个query rapper对象啊。那么就是new。Que,然后W好,它需要一个泛型,那这个泛型呢,就是你要查谁,我们要查的是user,那么我们就写user就可以了,接下来呢,我们针对这个query rapper呢,咱们去。先把user引进来啊好,咱们针对这个query rapper呢,去做一个呃条件的一个封装,那为了我让他短一点啊好query rapper首先第一个条件的封装是什么呢?是名字中包含N,那也就是说我们可以用like,它呢可以帮助我们组装出一个like语句来啊,然后呢,这个地方呢,我们就写name。
02:11
然后呢,这个地方我们就写N。好,这样的话呢,我们就组装成了一个rapper这样的一个对象,然后接下来怎么去用它呢?用user map点。Select。有一个方法呢,叫select list,它呢可以接收一个rapper类型的这样的一个参数,所以呢,我们把query wrapper复制给他,然后接下来呢,我们就可以得到这样的一个users结果了啊,最后呢,我们可以把这个users呢给他打印出来啊好,那接下来呢,我们来进行一个简单的测试。我们主要是看他的SQL语句啊,生成的是什么样的查询结果啊,对我们来说可能不太重要,看看有什么问题啊。
03:02
然后这块呢,他报告了一个错误,他说no columnname,这个也是我们自己给自己挖的一个坑,因为我们这个名字叫username是不是,所以呢,大家可以发现这个like语句后面,它所。啊,这个表示出来的这样的一个东西,它不是属性名,而是列名啊,所以这块呢,大家要注意就是column。对吧,这个是对应。数据库表中的什么呀,列名啊,而不是属性名,明白吧?啊,所以接下来呢,我们再来运行一下。好,那接下来呢,我们来看后面的这个。呃,查询组装的这个思考语句啊,那么就是select。呃,所有的列好,然后接下来呢,From user aware is deleted等于零,这个呢,实际上就是他要查的是所有没被删除的记录啊,然后and username like,好,Like后面的这个表达式是什么呢?它自动给咱们加了一个百分号啊,而且是前后都加了百分号,好然后接下来呢,呃,这个就是我们查询出来的结果了,查询出来有一条记录啊,叫3D的这样的一个人,好,所以这就是咱们的这个like的一个应用,那同样大家可以自己呃在课下的时候呢试一试,比如说呃,Like left是在左侧加百分号,右侧没有,Like right是在右侧加百分号,左侧没有啊,可以自己试一下,那么这个我课堂上就不给大家试了,感兴趣的同学自己做啊。然后接下来呢,我们还可以写就是query。
04:51
Rapper点,那么我们呢,有一个叫做大于十且小于20,那么大于的话呢,我们呃叫大于等于,是不是大于等于呢?应该是greater than吧,所以是G啊。
05:07
啊,GEGE是大于等于哈,然后呢,还有呢,就是那个小于等于,小于等于呢就是。Le s SE l是小于等于,然后呢,还有呢就是LTLT呢就是小于啊,没有等于,还有呢就是GTGT呢就是大于,没有等于是不是啊,这个跟之前你们在web阶段学的啊,那个叫做。GSTL吧,那个是不是叫这个名字呀,啊是一致的啊,里面有一些表达式啊,是一致的啊好,然后呢,同时呢,还有一个呢,比较好用的叫between啊,大于等于并且小于等于好between呢呃,我们的age。然后这块呢,咱们写一个年龄,比如说咱们看一下咱们数据库当中的这个用户的年龄啊。
06:00
用户的年龄呢,就是呃,从一岁到99岁,400岁都有啊,那咱们呢,就嗯大于51吧,然后小于60怎么样好,然后所以呢,这个地方呢,咱们就写51。然后呢,到60行吧,啊,然后接下来呢,咱们再来进行一个运行,当然了,这个地方可能嗯,会和我们的这个位置进行冲突哈,所以我把它改成改成。改成包含一的吧,行吗?这样的话我们就可以把这一部分记录取出来了。把这个改成一啊好,然后接下来呢,我们进行一个测试。好,我们主要看这个circle哈。Circle的话呢,就是在我们整个的这个where语句当中呢,它又包含了一个and,然后age between12,这个一和二呢,就是我们看到的这个。
07:05
51和60,也就是说比村后面呢,有两个参数,是不是第一个参数呢,就是刚才我们传的这个51啊,然后第二个参数呢,就是我们传的60,好,那么他按照我们的这个预期呢,就把刚才这这几个记录都都传递进来了,也就是说明他这个比between是包含等于的啊,是包含等于的,所以这块如果严谨一点的话,我们可以就是大于等于吧。那如果你就是不想包含等于的话,那么是不是就用刚才咱们所说的呃,GT和LT就可以了啊?好,那么这块呢,就是我们的第呃二个查询条件了,那么同时呢,在我们的query rapper当中,它的每一个条件组装啊,看这个like,它返回呢,都是它自己好,然后呢,接下来呢,我们来看。在这个地方呢,我们就可以去做串联的一个写法,所以呢,在这个地方我们直接可以。
08:05
这样写。这个可以这样写,所以呢。这样啊,是可以直接帮助我们通过这种串联的方式呢,完成一个条件查询的,那同样我们后面这个地方呢,我们依然可以去。继续点,点什么呢?比如说我们来拼接第三个查询,叫做email不为空的用户,那么我们来看一下。以M不为空,这里面呢,有。啊,几条记录为空啊,有一条两条,三条四条,这个是不为空的,然后有一条是为空的是不是啊,所以说最后呢,应该是返回除了第一条记录之外的后面的几条记录啊好,然后刚才我们的这个查询里面返回了几条,返回了七条,是不是有两条记录为空,诶那两条在哪,我看一下啊。两条观海后面是不是还有观海啊?
09:03
啊,这也算是吧,这也算一条记录啊,总之啊,这也这也算一条是不是啊,所以一共七条,一条两条三条四条五条六条。一条两条三条四条五条六条七条八条对吧,八条记录,然后八条记录的话,这条记录和这条记录应该去掉是吧?啊我们执行吧,啊执行这样查太麻烦了。好,然后接下来呢,所以在这个地方呢,我们就不为空叫is not now啊,然后接下来呢,查询email。好,然后接下来呢,咱们在这个地方右键运行一下。而且还要满足咱们这个年龄条件啊,所以最后呢,咱们看最终是多少条记录。好,所有的条件都满足的记录呢,是其条记录既满足名字条件,满足年龄条件,又满足这个email不为空的条件。
10:02
Email。不为空的条件,我看一下啊。这儿呢?是吧,这些就是啊,这是我们最终查出来的这个记录数。这这个是email是吧,一条。两条三条四条,哎,这个观海是多大年龄?哎呀,他他对他也是51啊,是不是啊,我就不给大家详细的查了,总之计算机查出来的肯定是没有问题的,我们主要看的就是他的这个SQL语句是不是正确的,那我们来看一下circleql语句,最后and了一个email is not呢。啊,所以这个是我们的第一个组装查询条件的例子,那么其实呢,按照这样的一个思路的话,那么在这个里面,其实大家可以组装非常多的查询条件了,你就自己可以扩展了,你需要什么条件呢?你自己去看,你点一下。你看看这里都有什么?
11:01
啊,你能理解的,其实都可以用啊,都可以用好,那这块呢,我就不一一的给大家举例子了。
我来说两句