持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情
一、Wrappers.lambdaQuery()根据条件查询
List<String> itemIds = this.listObjs(Wrappers.lambdaQuery(ItemInfo.class).select(ItemInfo::getId).eq(ItemInfo::getItemCode, item.getItemCode()).eq(ItemInfo::getItemBarcode, item.getItemBarcode()), Object::toString);
Wrappers.<FormInfo>lambdaQuery().eq(FormInfo::getRoleId,formInfoVo.getFormInfo().getRoleId()).orderByDesc(CardTake::getCreateTime)); //根据createTime降序排序;
Wrappers.query().lambda()等同于Wrappers.query().lambda().
lambdaQuery().in(IncidentType::getCode, Lists.newArrayList(codes.split(","))).list()
二、Wrappers.lambdaUpdate()根据条件更新表里某些字段
service.update(Wrappers.lambdaUpdate(OrderInfo.class)
.set(OrderInfo::getOrderStatus, CommonConstant.order_status.status_discard)
.set(OrderInfo::getId, orderInfo.getId() + "-")
.eq(OrderInfo::getId, ele.getParentId()));
三、Condition.getQueryWrapper(entity, ReportProject.class)实体对象转QueryWrapper
LambdaQueryWrapper<ReportProject> wrapper = Condition.getQueryWrapper(param, ReportProject.class).lambda();
四、QueryWrapper查询条件构造器
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper
.isNull("name")
.ge("age", 12)
.isNotNull("email");
int result = userMapper.delete(queryWrapper);
System.out.println("delete return count = " + result);
五、LambdaQueryWrapper简化QueryWrapper
LambdaQueryWrapper的四种写法:
1、LambdaQueryWrapper query = new LambdaQueryWrapper<>(); query.select(Test::getName).eq(Test::getId,14);
2、testMapper.selectList(Wrappers.lambdaQuery().eq(Test::getId,14));
3、testMapper.selectList(Wrappers.query().lambda().eq(Test::getId,16));
4、LambdaQueryWrapper wrapper = new QueryWrapper().lambda();
六、链式查询LambdaQueryChainWrapper
List<BannerItem> bannerItems = new LambdaQueryChainWrapper<>(bannerItemMapper)
.eq(BannerItem::getBannerId, id)
.list();
附加条件构造器LambdaQueryWrapper常用方法 ---这几个肯定够用了
wrapper.eq("实体类::查询字段", "条件值"); //相当于where条件
wrapper.between("实体类::查询字段", "区间一", "区间二");//相当于范围内使用的between
wrapper.like("实体类::查询字段", "模糊查询的字符"); //模糊查询like
wrapper.groupBy("实体类::查询字段"); //相当于group by分组
wrapper.in("实体类::查询字段", "包括的值,分割"); //相当于in
wrapper.orderByAsc("实体类::查询字段"); //升序
wrapper.orderByDesc("实体类::查询字段");//降序
wrapper.ge("实体类::查询字段", "要比较的值"); //大于等于
wrapper.le("实体类::查询字段", "要比较的值"); //小于等于
其他方法:
queryWrapper.lt()——小于
queryWrapper.gt()——大于
queryWrapper.ne()——不等于
queryWrapper.notBetweeen(“age”,10,20)——age不在值10到20之间
queryWrapper.notLike(“属性”,“值”)——模糊查询不匹配值‘%值%’
queryWrapper.likeLeft(“属性”,“值”)——模糊查询匹配最后一位值‘%值’
queryWrapper.likeRight(“属性”,“值”)——模糊查询匹配第一位值‘值%’
queryWrapper.isNull()——值为空或null
queryWrapper.isNotNull()——值不为空或null
queryWrapper.notIn(“属性”,条件,条件 )——不符合多个条件的值
queryWrapper.or()——或者
queryWrapper.and()——和
queryWrapper.inSql(“sql语句”)——符合sql语句的值
queryWrapper.notSql(“sql语句”)——不符合SQL语句的值
queryWrapper.esists(“SQL语句”)——查询符合SQL语句的值
queryWrapper.notEsists(“SQL语句”)——查询不符合SQL语句的值