mybatisplus基础操作之lambda和stream流的使用

mybatisplus中lambda的使用

一、lambdaUpdate
1.更新某张表的某个字段

/**
*
* 将fly_numbers 字段值+1
**/
boolean success = airRouteService.lambdaUpdate()
      .setSql("fly_numbers = fly_numbers + 1")
      .eq(AirRoute::getId, routeId)
      .update();

2.删除单条数据

/**
*
*删除对应id下的图片
**/
taskImageService.lambdaUpdate()
	.eq(TaskImage::getTaskId, taskId)
	.remove();

3.删除多条数据

/**
*
*删除对应ids下的图片
**/
taskImageService.lambdaUpdate()
	.in(TaskImage::getTaskId, taskIds)
	.remove();

二、lambdaQuery
1.lambdaQuery获取数量

/**
*
* 获取轨迹数量
**/
cationCount = taskLocationService.lambdaQuery()
	.eq(TaskLocation::getTaskId, id)
	.count();

2.lambdaQuery获取集合

taskImageService.lambdaQuery()
			.select(TaskImage::getImageUrl) //查询imageurl字段
			.eq(TaskImage::getTaskId, taskId) //查询条件
			.list() //获得集合
			.stream() //转为流
			.filter(i -> !StringUtils.isEmpty(i.getImageUrl())) //过滤为空字段
			.map(TaskImage::getImageUrl) 
			.collect(Collectors.toList());

3.lambdaQuery动态查询排序分页

IPage<Task> pageInfo = Condition.getPage(query);
taskService.lambdaQuery()
	.eq(!Objects.isNull(task.getProjectId()), Task::getProjectId, task.getProjectId())
	// 按创建时间排序
	.orderByDesc(Task::getCreateTime)
	.page(pageInfo);

4.lambdaQuery查询单个字段的值

	Long polygonId = polygonPointService.lambdaQuery()
			.eq(PolygonPoint::getId, id)
			.one()
			.getPolygonId();

5.按照指定格式输出
工具类

/**
 * 通用组合框对象
 *
 * @author pxz
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@ApiModel(value = "通用组合框对象")
public class ComboBoxVO implements Serializable {

	private static final long serialVersionUID = 3431871989555003768L;

	/**
	 * ID
	 */
	private Long id;

	/**
	 * name
	 */
	private String name;

	public ComboBoxVO(Long id, String name) {
		this.id = id;
		this.name = name;
	}

}

实现代码

	@Override
	public List<ComboBoxVO> getEquipmentListByUserId(Integer userId) {
		List<Equipment> equipments = equipmentService.lambdaQuery()
				.select(Equipment::getId, Equipment::getName)
				.eq(Equipment::getUserId, userId)
				.list();
		if (CollectionUtils.isEmpty(equipments)) {
			return Collections.emptyList();
		}

		List<ComboBoxVO> voList = equipments.stream()
				.map(e -> new ComboBoxVO(Long.valueOf(e.getId().toString()), e.getName()))
				.collect(Collectors.toList());

		return voList;
	}
}
  • 6
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值