mybatis-plus 自定义 Service Vo接口, 实现 数据库实体与 vo 对象转换返回

1、自定义service 转换 类
public interface IServicePlus extends IService {

/**
 * 根据 ID 查询
 *
 * @param kClass vo类型
 * @param id     主键ID
 */
default  K getVoById(Serializable id, Class kClass) {
    T t = getBaseMapper().selectById(id);
    return BeanUtil.toBean(t, kClass);
}

/**
 * 根据 ID 查询
 *
 * @param id        主键ID
 * @param convertor 转换函数
 * @param        vo类型
 */
default  K getVoById(Serializable id, Function convertor) {
    T t = getBaseMapper().selectById(id);
    return convertor.apply(t);
}

/**
 * 查询(根据ID 批量查询)
 *
 * @param kClass vo类型
 * @param idList 主键ID列表
 */
default  List listVoByIds(Collection idList, Class kClass) {
    List list = getBaseMapper().selectBatchIds(idList);
    if (list == null) {
        return null;
    }
    return list.stream()
            .map(any -> BeanUtil.toBean(any, kClass))
            .collect(Collectors.toList());
}

/**
 * 查询(根据ID 批量查询)
 *
 * @param convertor 转换函数
 * @param idList    主键ID列表
 */
default  List listVoByIds(Collection idList,
                                Function, List> convertor) {
    List list = getBaseMapper().selectBatchIds(idList);
    if (list == null) {
        return null;
    }
    return convertor.apply(list);
}

/**
 * 查询(根据 columnMap 条件)
 *
 * @param kClass    vo类型
 * @param columnMap 表字段 map 对象
 */
default  List listVoByMap(Map columnMap, Class kClass) {
    List list = getBaseMapper().selectByMap(columnMap);
    if (list == null) {
        return null;
    }
    return list.stream()
            .map(any -> BeanUtil.toBean(any, kClass))
            .collect(Collectors.toList());
}

/**
 * 查询(根据 columnMap 条件)
 *
 * @param convertor 转换函数
 * @param columnMap 表字段 map 对象
 */
default  List listVoByMap(Map columnMap,
                                Function, List> convertor) {
    List list = getBaseMapper().selectByMap(columnMap);
    if (list == null) {
        return null;
    }
    return convertor.apply(list);
}

/**
 * 根据 Wrapper,查询一条记录 
*

结果集,如果是多个会抛出异常,随机取一条加上限制条件 wrapper.last("LIMIT 1")

* * @param kClass vo类型 * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper} */ default K getVoOne(Wrapper queryWrapper, Class kClass) { return BeanUtil.toBean(getOne(queryWrapper, true), kClass); } /** * 根据 Wrapper,查询一条记录
*

结果集,如果是多个会抛出异常,随机取一条加上限制条件 wrapper.last("LIMIT 1")

* * @param convertor 转换函数 * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper} */ default K getVoOne(Wrapper queryWrapper, Function convertor) { return convertor.apply(getOne(queryWrapper, true)); } /** * 查询列表 * * @param kClass vo类型 * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper} */ default List listVo(Wrapper queryWrapper, Class kClass) { List list = getBaseMapper().selectList(queryWrapper); if (list == null) { return null; } return list.stream() .map(any -> BeanUtil.toBean(any, kClass)) .collect(Collectors.toList()); } /** * 查询列表 * * @param convertor 转换函数 * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper} */ default List listVo(Wrapper queryWrapper, Function, List> convertor) { List list = getBaseMapper().selectList(queryWrapper); if (list == null) { return null; } return convertor.apply(list); } /** * 查询所有 * * @param kClass vo类型 * @see Wrappers#emptyWrapper() */ default List listVo(Class kClass) { return listVo(Wrappers.emptyWrapper(), kClass); } /** * 查询所有 * * @param convertor 转换函数 * @see Wrappers#emptyWrapper() */ default List listVo(Function, List> convertor) { return listVo(Wrappers.emptyWrapper(), convertor); }

}

2、接口继承
mybatis-plus 自定义 Service Vo接口, 实现 数据库实体与 vo 对象转换返回_第1张图片

3、实现vo转换
mybatis-plus 自定义 Service Vo接口, 实现 数据库实体与 vo 对象转换返回_第2张图片
mybatis-plus 自定义 Service Vo接口, 实现 数据库实体与 vo 对象转换返回_第3张图片

你可能感兴趣的:(java,java)