mybatis plus学习笔记 条件构造器 二

在以前,我们写原声sql的时候,在where条件后会有很多的条件语句,但是baseMapper有没有书写sql的方式,所以就引入了条件构造器,条件构造器可以拼接许多复杂的sql。废话不多说,截图代码。
在这里插入图片描述
上图是一个分页查询,查看第一页,每页显示两行,然后后面我们就用EntityWrapper的方式对sql条件进行拼接,需求给的是年龄大于20到60之间,地址在天津的,between就是年龄的范围,eq就是等于的意思,这里要注意一点,在拼接sql写的字段名都是与数据库一致的,如果与数据库不一致,就报错。另外还要补充一点。
在这里插入图片描述
Wrapper是一个抽象类,其中有三个类继承了它
在这里插入图片描述
其中Condition与EntityWrapper差不多,都继承了Wrapper,所以用EntityWrapper还是Condition都是差不多的。
下面用用selectList方法。
在这里插入图片描述
上图中查询的条件是找出性别女名字包括姚字或者地点是天津的。or()方法前面的和后面的隔离,or上面的是一起的,下面是一起的。我们看一下sql语句
在这里插入图片描述
发送的sql语句where子句后的查询条件都包含在一个括号内。我们再来看看orNew()。
在这里插入图片描述
在这里插入图片描述
看的出来用了orNew() 它把or的前面用括号包起来,后面也用括号包起来,这也就是or与ornew唯一的区别,但是他们的结果是一样的。
在这里插入图片描述
上图就是按条件更新操作。
在这里插入图片描述
上图按名称和地名删除,条件构造器
在这里插入图片描述
上图是删除发出的sql
下面我们试试order by 排序
在这里插入图片描述
上图中我们查询性别为男同志,并且根据sid进行升序排序,orderBy默认就是对指定的字段进行升序排序。
在这里插入图片描述
上图就是我们做升序排序发送的sql语句是没有一点问题的。
下面我们对sid做降序排序。
在这里插入图片描述
上图就是我们对age,年龄进行降序排序,用的是orderDesc,但是这个方法需要Collection参数,所以我们用asList将String数组转化为List对象作为参数传入,下面我们查看结果。
在这里插入图片描述
在这里插入图片描述
这个是发送的sql语句,是没有问题的,结果也是没有问题的。
下面我们用一下last()方法,这个方法接收一个字符串,然后将这个字符串拼接到这条sql语句的最后。
在这里插入图片描述
上图就是用last方法对sql的最后添加的东西。我们看一下发送的sql。
在这里插入图片描述
在这里插入图片描述
可以看到我们last方法里添加的sql在sql的最后被添加了进来,对age做降序排序,只要第一条到第三条。可以看到结果也是没有问题的。
在这里插入图片描述
但是翻看源码发现源码的注释里写道手动拼接到最后又sql注入的风险,所以用last是有一定的安全代价的。
下面我们来用一用同样继承了了Wrapper抽象类的Condition类。
在这里插入图片描述
用Condition注意他不像EntityMapper那样new对象,而是调用create对象就能创建一个对象。
在这里插入图片描述
可以看到用Condition调用create方法后,后面的条件方法都属于Wrapper抽象类的,所以与EntityWrapper是一样的了,下面我们查看结果:
在这里插入图片描述
在这里插入图片描述
可以看到sql语句发送的没错,结果也是没有问题的。
下面是所有条件构造器的列表介绍
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值