Mybatis-Plus Wrapper 条件构造器(常用)

文章介绍了MyBatis-Plus中的条件查询方法,如eq(等于),ne(不等于),gt(大于),lt(小于)等,以及如何指定查询字段和实现去重功能。还提到了in条件查询和排序操作的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

eq:单字段等于查询

QueryWrapper<UserInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("user_name", "lisi");
// 以防重名用selectList而不是selectOne方法,属于业务逻辑范畴,不必纠结
List<UserInfo> userInfos = UserInfoMapper.selectList(queryWrapper);

ne :不等于

QueryWrapper<UserInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.ne("user_name", "lisi");
List<UserInfo> userInfos = UserInfoMapper.selectList(queryWrapper);

其他常用的还有:

  • gt : 大于

  • ge:大于等于

  • lt:小于

  • le : 小于等于

  • between(R column, Object val1, Object val2)

  • notBetween(R column, Object val1, Object val2)
  • like(R column, Object val)
  • notLike(R column, Object val)
  • likeLeft(R column, Object val)
  • likeRight(R column, Object val)
  • isNull(R column)
  • isNotNull : 非空

...

select不去查全部字段

mybatis-plus select查询默认是查全部字段,有两种方法可以指定要查询的字段

只需要查询出user_name 和 user_code 两个字段的数据,可以使用queryWrapper的select()方法指定要查询的字段

QueryWrapper<UserInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.select("user_name", "user_code");
List<UserInfo> userInfos = UserInfoMapper.selectList(queryWrapper);

要查询出除deptment_id和create_time外其它所有字段的数据,同样也是使用queryWrapper的select()方法

QueryWrapper<UserInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.select(UserInfo.class, info -> 
    !StringUtils.equals(info.getColumn(),"deptment_id")
                && !StringUtils.equals(info.getColumn(), "create_time"));
List<UserInfo> userInfos = userMapper.selectList(queryWrapper);
userInfos.forEach(System.out::println);

Distinct去重功能

QueryWrapper<UserInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.select("DISTINCT user_name", "user_code");
List<UserInfo> userInfos = UserInfoMapper.selectList(queryWrapper);

排序

queryWrapper 对象调用如下方法:

 

这些方法基本上见名知意,就不一一解释了,可以自行去尝试

in条件

Collection<String> userCodeSet = Sets.newHashSet();

QueryWrapper<UserInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.select("DISTINCT user_name", "user_code");
queryWrapper.in("user_code", userCodeSet);
List<UserInfo> userInfos = UserInfoMapper.selectList(queryWrapper);

in 条件操作方法的第二个参数是Collection 类型,所以list、set皆可

其他重载方法以及notIn方法如下图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值