LambdaQueryWrapper大家都不陌生,主要是帮我们动态的拼接SQL查询条件
至于基础的eq,like等用法就不在这里说了
一般复杂的查询条件语句我会在XML中手写sql,然后通过传参来实现
而简单的查询条件语句往往就通过LambdaQueryWrapper 来实现。
但是最近我遇到一种情况,就是介于以上两者之间的复杂程度
写sql吧没大有必要,用LambdaQueryWrapper 又不能完全实现需要的条件
于是,我向朋友请教,学会了这样的一个语法
我们先创建学生对象,假设学生对象中有
学号(studentNumber)
姓名(name)
班级(class)
分数(score)这几个字段
需求:如果缺考了分数就是0,然后我们想查出没缺考的人数。
然后可能有同学就说了,拿查出所有是0的人数,然后用总人数一减不就出来了
这里我要解释一下,因为我用到这个地方的实际业务场景有点复杂,不好描述
所以只是举例子来展示用法,那我们可以这样写
LambdaQueryWrapper lqw= Wrappers.lambdaQuery();
lqw.eq(Student::class,"一般");
**lqw.last(" and score != '0' ")**
这个last的作用就是可以在里面手写sql语句然后会自动拼在lqw构造条件的结尾
如果你还想要根据分数排序那还可以这样
lqw.last(” and score != ‘0’ ORDER BY score DESC”)
好了,这样我们就可以动态的使用LambdaQueryWrapper拼接sql语句了