java的lamada操作手法记录

文章介绍了在Java中,如何使用StreamAPI对Decimal类型的属性进行求和,以及使用Wrapper和LambdaQueryWrapper构建查询条件,执行SQL查询并处理结果映射。内容涵盖了流式操作、数据库查询和数据转换技巧。
摘要由CSDN通过智能技术生成

集合中的Decimal类型的属性求和

//'税前金额'求和
BigDecimal preTaxAmountSum = orderDivideBills.stream().map(OrderDivideBill::getPreTaxAmount).reduce(BigDecimal.ZERO,BigDecimal::add);

Wrapper构建查询条件

//批量删除
boolean remove = remove(Wrappers.lambdaQuery(OrderDivideBill.class).in(OrderDivideBill::getId, Arrays.asList(ids)));
//查询
LambdaQueryWrapper<MmsQuotationRule> wrapper = Wrappers.lambdaQuery(MmsQuotationRule.class);
wrapper.eq(MmsQuotationRule::getRuleClass,mmsQuotationRule.getRuleClass()).or();
//条件查询
wrapper.eq(StringUtils.isNotNull(mmsQuotationRule.getBizName()) , MmsQuotationRule::getBizName ,mmsQuotationRule.getBizName());
wrapper.like(StringUtils.isNotNull(mmsQuotationRule.getRemark()),MmsQuotationRule::getRemark,mmsQuotationRule.getRemark());
wrapper.orderByDesc(MmsQuotationRule::getCreateTime);
List<MmsQuotationRule> list1 = list(wrapper);
	/**
	 * 根据国家查询省份
	 * @return
	 */
	@Override
public List<Region> getProvince() {
	return list(Wrappers.lambdaQuery(Region.class).select(Region::getName, Region::getCode).eq(Region::getParentCode, PARENT_ID));
}

两字段的sql查询结果集合转map

//map写法
Map<String, Object> nameMap = ls.stream()
        .filter(e -> (String) e.get("account") != null) // 非空校验
        .collect(Collectors.toMap(e -> (String) e.get("account"), u -> u.get("realName")));

//对象写法
List<User> ls = basicRatepricingMapper.getAllUserCountAndUserName();
Map<String, String> nameMap = ls.stream()
        .filter(user -> user.getAccount() != null && !user.getAccount().isEmpty()) // 非空校验
        .filter(user -> user.getRealName() != null && !user.getRealName().isEmpty()) // 非空校验
        .collect(Collectors.toMap(User::getAccount, User::getRealName,(k1, k2) -> k1));
  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值