一、QueryWrapper不等于的概念
在进行数据库操作时,经常出现需要筛选出不等于某个值的数据的情况。QueryWrapper不等于函数就是帮助我们实现这一目标的。
QueryWrapper是Mybatis-Plus提供的比较强大的一种Wrapper,它可以用于进行单表的条件构造,包括eq、ne、gt、ge、lt、le、between、like、notLike、in、notIn、isNull、isNotNull等操作。在其中,不等于函数就是ne。
ne(field, value)函数用于构造不等于(field, value)的条件,其中field是字段名,value是字段值。返回一个QueryWrapper对象。
/**
* 示例代码:查询用户表中年龄不等于25岁的用户
*/
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.ne("age", 25);
List userList = userMapper.selectList(wrapper);
二、多个不等于的组合使用
有时候,我们需要对多个字段进行不等于筛选。此时,可以使用and或者or来进行多个不等于条件的组合。
使用and组合条件时,只需要简单的调用ne函数,并且在生成的QueryWrapper对象之间使用and连接即可,示例如下:
/**
* 示例代码:查询用户表中姓名不等于"张三"并且年龄不等于25岁的用户
*/
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.ne("name", "张三").and().ne("age", 25);
List userList = userMapper.selectList(wrapper);
同理,如果需要用or组合条件,只需要把and改成or即可。
三、实战应用
在实际开发中,QueryWrapper不等于函数的应用场景非常广泛。在这里,我们以一个商品信息查询的场景为例,介绍如何使用QueryWrapper不等于函数。
首先,查询商品表中价格不等于0,类型不等于"书籍",且商品状态为在售的商品信息:
/**
* 示例代码:查询商品表中价格不等于0,类型不等于"书籍",且商品状态为在售的商品信息
*/
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.ne("price", 0)
.ne("type", "书籍")
.eq("status", "在售");
List goodsList = goodsMapper.selectList(wrapper);
接下来,查询商品表中价格不等于0,类型为"数码"或者"家电",且商品状态为在售的商品信息:
/**
* 示例代码:查询商品表中价格不等于0,类型为"数码"或者"家电",且商品状态为在售的商品信息
*/
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.ne("price", 0)
.in("type", Arrays.asList("数码", "家电"))
.eq("status", "在售");
List goodsList = goodsMapper.selectList(wrapper);
最后,查询商品表中价格不等于0,类型为"数码"或者"家电",且商品状态不为下架的商品信息:
/**
* 示例代码:查询商品表中价格不等于0,类型为"数码"或者"家电",且商品状态不为下架的商品信息
*/
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.ne("price", 0)
.in("type", Arrays.asList("数码", "家电"))
.ne("status", "下架");
List goodsList = goodsMapper.selectList(wrapper);
四、总结
QueryWrapper不等于函数是Mybatis-Plus提供的非常有用的一种Wrapper,使用它可以方便的实现单表不等于条件的筛选,以及多个条件的组合筛选。在实际开发中,我们可以根据需要,灵活使用QueryWrapper不等于函数,来满足不同的查询需求。