mybatis-plus 自定义 Service Vo接口实现数据库实体与 vo 对象转换返回功能
目录
- 1、自定义service 转换 类
- 2、接口继承
- 3、实现vo转换
1、自定义service 转换 类
public interface IServicePlus extends IService {
/** * 根据 ID 查询 * * @param kClass vo类型 * @param id 主键ID */ default <K> K getVoById(Serializable id, Class<K> kClass) { T t = getBaseMapper().selectById(id); return BeanUtil.toBean(t, kClass); } /** * 根据 ID 查询 * * @param id 主键ID * @param convertor 转换函数 * @param <K> vo类型 */ default <K> K getVoById(Serializable id, Function<T, K> convertor) { T t = getBaseMapper().selectById(id); return convertor.apply(t); } /** * 查询(根据ID 批量查询) * * @param kClass vo类型 * @param idList 主键ID列表 */ default <K> List<K> listVoByIds(Collection<? extends Serializable> idList, Class<K> kClass) { List<T> list = getBaseMapper().selectBATchIds(idList); if (landroidist == null) { return null; } return list.stream() .map(any -> BeanUtil.toBean(any, kClass)) .collect(Collectors.toList()); } /** * 查询(根据ID 批量查询) * * @param convertor 转换函数 * @param idList 主键ID列表 */ default <K> List<K> listVoByIds(Collection<? extends Serializable> idList, Function<Collection<T>, List<K>> convertor) { List<T> list = vxNGtCaFgetBaseMapper().selectBatchIds(idList); if (list == null) { return null; } return convertor.apply(list); } /** * 查询(根据 columnMap 条件) * * @param kClass vo类型 * @param columnMap 表字段 map 对象 */ default <K> List<K> listVoByMap(Map<String, Object> columnMap, Class<K> kClass) { List<T> listjs = 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 <K> List<K> listVoByMap(Map<String, Object> columnMap, Function<Collection<T>, List<K>> convertor) { List<T> list = getBaseMapper().selectByMap(columnMap); python if (list == null) { return null; } return convertor.apply(list); } /** * 根据 Wrapper,查询一条记录 <br/> * <p>结果集,如果是多个会抛出异常,随机取一条加上限制条件 wrapper.last("LIMIT 1")</p> * * @param kClass vo类型 * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper} */ default <K> K getVoOne(Wrapper<T> queryWrapper, Class<K> kClass) { return BeanUtil.toBean(getOne(queryWrapper, true), kClass); } /** * 根据 Wrapper,查询一条记录 <br/> * <p>结果集,如果是多个会抛出异常,随机取一条加上限制条件 wrapper.last("LIMIT 1")</p> * * @param convertor 转换函数 * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper} */ default <K> K getVoOne(Wrapper<T> queryWrapper, Function<T, K> convertor) { return convertor.apply(getOne(queryWrapper, true)); } /** * 查询列表 * * @param kClass vo类型 * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper} */ default <K> List<K> listVo(Wrapper<T> queryWrapper, Class<K> kClass) { List<T> 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 <K> List<K> listVo(Wrapper<T> queryWrapper, Function<Collection<T>, List<K>> convertor) { List<T> list = getBaseMapper().selectList(queryWrapper); if (list == null) { return null; } return convertor.apply(list); } /** * 查询所有 * * @param kClass vo类型 * @see Wrappers#emptyWrapper() */ default <K> List<K> listVo(Class<K> kClass) { javascript return listVo(Wrappers.emptyWrapper(), kClass); } /** * 查询所有 * * @param convertor 转换函数 * @see Wrappers#emptyWrapper() */ default <K> List<K> listVo(Function<Collection<T>, List<K>> convertor) { return listVo(Wrappers.emptyWrapper(), convertor); }
}
2、接口继承
3、实现vo转换
到此这篇关于mybatis-plus 自定义 Service Vo接口实现 数据库实体与 vo 对象转换返回的文章就介绍到这了,更多相关mybatis-plus 自定义 Service Vo接口内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论