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;
	}
}
经验分享 程序员 微信小程序 职场和发展