亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

mybatis-plus 自定義 Service Vo接口實現(xiàn)數(shù)據(jù)庫實體與 vo 對象轉(zhuǎn)換返回功能

 更新時間:2024年08月16日 14:47:03   作者:天空下sky  
這篇文章主要介紹了mybatis-plus 自定義 Service Vo接口實現(xiàn)數(shù)據(jù)庫實體與 vo 對象轉(zhuǎn)換返回功能,本文通過實例圖文相結(jié)合給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧

1、自定義service 轉(zhuǎn)換 類

public interface IServicePlus extends IService {

/**
 * 根據(jù) 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);
}
/**
 * 根據(jù) ID 查詢
 *
 * @param id        主鍵ID
 * @param convertor 轉(zhuǎn)換函數(shù)
 * @param <K>       vo類型
 */
default <K> K getVoById(Serializable id, Function<T, K> convertor) {
    T t = getBaseMapper().selectById(id);
    return convertor.apply(t);
}
/**
 * 查詢(根據(jù)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 (list == null) {
        return null;
    }
    return list.stream()
            .map(any -> BeanUtil.toBean(any, kClass))
            .collect(Collectors.toList());
}
/**
 * 查詢(根據(jù)ID 批量查詢)
 *
 * @param convertor 轉(zhuǎn)換函數(shù)
 * @param idList    主鍵ID列表
 */
default <K> List<K> listVoByIds(Collection<? extends Serializable> idList,
                                Function<Collection<T>, List<K>> convertor) {
    List<T> list = getBaseMapper().selectBatchIds(idList);
    if (list == null) {
        return null;
    }
    return convertor.apply(list);
}
/**
 * 查詢(根據(jù) columnMap 條件)
 *
 * @param kClass    vo類型
 * @param columnMap 表字段 map 對象
 */
default <K> List<K> listVoByMap(Map<String, Object> columnMap, Class<K> kClass) {
    List<T> list = getBaseMapper().selectByMap(columnMap);
    if (list == null) {
        return null;
    }
    return list.stream()
            .map(any -> BeanUtil.toBean(any, kClass))
            .collect(Collectors.toList());
}
/**
 * 查詢(根據(jù) columnMap 條件)
 *
 * @param convertor 轉(zhuǎn)換函數(shù)
 * @param columnMap 表字段 map 對象
 */
default <K> List<K> listVoByMap(Map<String, Object> columnMap,
                                Function<Collection<T>, List<K>> convertor) {
    List<T> list = getBaseMapper().selectByMap(columnMap);
    if (list == null) {
        return null;
    }
    return convertor.apply(list);
}
/**
 * 根據(jù) Wrapper,查詢一條記錄 <br/>
 * <p>結(jié)果集,如果是多個會拋出異常,隨機取一條加上限制條件 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);
}
/**
 * 根據(jù) Wrapper,查詢一條記錄 <br/>
 * <p>結(jié)果集,如果是多個會拋出異常,隨機取一條加上限制條件 wrapper.last("LIMIT 1")</p>
 *
 * @param convertor    轉(zhuǎn)換函數(shù)
 * @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    轉(zhuǎn)換函數(shù)
 * @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) {
    return listVo(Wrappers.emptyWrapper(), kClass);
}
/**
 * 查詢所有
 *
 * @param convertor 轉(zhuǎn)換函數(shù)
 * @see Wrappers#emptyWrapper()
 */
default <K> List<K> listVo(Function<Collection<T>, List<K>> convertor) {
    return listVo(Wrappers.emptyWrapper(), convertor);
}

}

2、接口繼承

3、實現(xiàn)vo轉(zhuǎn)換

到此這篇關(guān)于mybatis-plus 自定義 Service Vo接口實現(xiàn) 數(shù)據(jù)庫實體與 vo 對象轉(zhuǎn)換返回的文章就介紹到這了,更多相關(guān)mybatis-plus 自定義 Service Vo接口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring內(nèi)部bean和級聯(lián)屬性用法詳解

    Spring內(nèi)部bean和級聯(lián)屬性用法詳解

    這篇文章主要介紹了Java內(nèi)部bean和級聯(lián)屬性用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • MyBatis-Plus如何使用枚舉自動關(guān)聯(lián)注入詳解

    MyBatis-Plus如何使用枚舉自動關(guān)聯(lián)注入詳解

    這篇文章主要給大家介紹了關(guān)于MyBatis-Plus如何使用枚舉自動關(guān)聯(lián)注入的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用MyBatis-Plus具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-03-03
  • Java源碼解析之SortedMap和NavigableMap

    Java源碼解析之SortedMap和NavigableMap

    今天帶大家來學(xué)習(xí)Java SortedMap和NavigableMap,文中有非常詳細的代碼示例,對正在學(xué)習(xí)java的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • Mybatis Plus 增刪改查的實現(xiàn)(小白教程)

    Mybatis Plus 增刪改查的實現(xiàn)(小白教程)

    本文主要介紹了Mybatis Plus 增刪改查,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • java生成餅圖svg及JFreeChart生成svg圖表

    java生成餅圖svg及JFreeChart生成svg圖表

    java生成餅圖svg,代碼實現(xiàn)感覺有點復(fù)雜,個人認為不如用JFreeChart,這篇文章主要介紹java生成餅圖svg及JFreeChart生成svg圖表,有需要的小伙伴可以參考下
    2015-08-08
  • Java  隊列 Queue 用法實例詳解

    Java 隊列 Queue 用法實例詳解

    本文實例講述了Java內(nèi)置隊列類Queue用法,分享給大家供大家參考
    2017-04-04
  • Java中的排序與內(nèi)部比較器Compareable解析

    Java中的排序與內(nèi)部比較器Compareable解析

    這篇文章主要介紹了Java中的排序與內(nèi)部比較器Compareable解析,一般沒有特殊要求時,直接調(diào)用(底層默認的升序排列)就可以得到想要的結(jié)果,所謂的 sort 方法排序底層都是基于這兩種排序,故如果需要設(shè)計成所想要的排序就需要了解底層排序原理,需要的朋友可以參考下
    2023-11-11
  • SSH框架網(wǎng)上商城項目第25戰(zhàn)之使用java email給用戶發(fā)送郵件

    SSH框架網(wǎng)上商城項目第25戰(zhàn)之使用java email給用戶發(fā)送郵件

    這篇文章主要為大家詳細介紹了SSH框架網(wǎng)上商城項目第25戰(zhàn)之使用java email給用戶發(fā)送郵件,感興趣的小伙伴們可以參考一下
    2016-06-06
  • 詳解如何解析pom文件方法示例

    詳解如何解析pom文件方法示例

    這篇文章主要為大家介紹了詳解如何解析pom文件方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Java 3種方法實現(xiàn)進制轉(zhuǎn)換

    Java 3種方法實現(xiàn)進制轉(zhuǎn)換

    這篇文章主要介紹了Java 3種方法實現(xiàn)進制轉(zhuǎn)換,幫助大家利用Java處理數(shù)據(jù),感興趣的朋友可以了解下
    2020-09-09

最新評論