欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis-Plus條件構(gòu)造器select方法返回指定字段方式

 更新時間:2022年06月27日 09:45:04   作者:代號:猿a  
這篇文章主要介紹了Mybatis-Plus條件構(gòu)造器select方法返回指定字段方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

條件構(gòu)造器select方法返回指定字段

條件構(gòu)造器select用法

1.返回特定的幾個字段 select(字段…)

2.排除某幾個字段 select(entiyClass,predicate判斷)

3.分組聚合函數(shù) select(“聚合函數(shù)”)

搭配service的.listMaps方法,將返回的數(shù)據(jù)封裝到map中避免了多余字段的返回

實(shí)例

說明 :以下代碼中 iProjectBuildService實(shí)現(xiàn)了mybatis-plus的service接口

實(shí)例一:指定需要查詢的具體字段

public AjaxResult listAll(ProjectBuild projectBuild) {
? ? //只返回了id和name兩個字段 ? ?
? ? List<Map<String,Object>> list = this.iProjectBuildService.listMaps(
? ? ? ? ? ?Wrappers.lambdaQuery(projectBuild).select(ProjectBuild::getBuildId,ProjectBuild::getBuildName)
? ? ? ? ? ?.orderByAsc(ProjectBuild::getBuildId)
? ? ? ? ? ?// 以上select表示要返回的字段,
? ? );
? ? return AjaxResult.success(list);
}

實(shí)例二:排除不需要返回的字段

@Test
public void selectByQueryWrapper8(){
? ? QueryWrapper<Employee> queryWrapper=new QueryWrapper();
?
? ? queryWrapper.lambda()
? ? ? ? ? ? ?.select(Employee.class,fieldInfo->!fieldInfo.getColumn().equals("birthday")&&!fieldInfo.getColumn().equals("gender"))
? ? ? ? ? ? ?.gt(Employee::getSalary,3500)
? ? ? ? ? ? ?.like(Employee::getName,"小");
? ? List<Employee> employeeList = employeeMapper.selectList(queryWrapper);
? ? System.out.println(employeeList);
}

實(shí)例三:返回聚合函數(shù)值

sql實(shí)現(xiàn):

SELECT departmentId,AVG(salary) AS avg_salary FROM t_employee GROUP BY department_id;
@Test
public void selectByQueryWrapper9(){
? ? QueryWrapper<Employee> queryWrapper=new QueryWrapper();
??
? ? queryWrapper.select("department_id","AVG(salary) AS avg_salary")
? ? ? ? ? ? ?.groupBy("department_id");
? ? List<Employee> employeeList = employeeMapper.selectList(queryWrapper);
}

問題解決

問題描述: map中的key沒有使用駝峰命名

解決方法: 使用hutool工具包中的 MapUtil.toCamelCaseMap(map);

//處理map中key未駝峰命名
list = list.stream().map(MapUtil::toCamelCaseMap).collect(Collectors.toList());

Mybatis-Plus修改指定字段

通用解決方案

以此做法為例,如果需要多條件匹配,可以自行添加方法處理

// 繼承原來的公共mapper
// java8 interface可以寫方法的實(shí)現(xiàn)邏輯,直接在這里寫好,
// 其他地方調(diào)用時直接繼承自定義的 mapper
public interface CustomBaseMapper<T> extends BaseMapper<T> {
 
    /**
     * 目前僅支持主鍵/屬性為 id的更新
     * @param dirtyFields: 指定更新的屬性
     */
    default int updateById(@Param("et") T entity, List<String> dirtyFields) {
        Class<?> tClass = entity.getClass();
        UpdateWrapper<T> wrapper = new UpdateWrapper<>();
        try {
            Object id = ObjectUtils.getAttrVal(entity, "id"); // 獲取對象的主鍵值
            wrapper.eq("id", id);
        } catch (NoSuchFieldException | IllegalAccessException e) {
            throw new RuntimeException("對象主鍵未找到,請確認(rèn)"); // 自定義異常
        }
 
        for (String dirtyField : dirtyFields) {
            try {
                Field classField = tClass.getDeclaredField(dirtyField);
                classField.setAccessible(true);
                // 對象屬性,轉(zhuǎn)成數(shù)據(jù)庫字段
                wrapper.set(StringUtils.toColumn(dirtyField), classField.get(entity));
            } catch (Exception ignored) {
            }
        }
        return update(null, wrapper);
    } 
}

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java實(shí)現(xiàn)去除文檔陰影的示例代碼

    Java實(shí)現(xiàn)去除文檔陰影的示例代碼

    文稿掃描大家用的都比較頻繁、想是各種證件、文件都可以通過掃描文稿功能保存到手機(jī)。相比直接拍照,在掃描文稿時,程序會對圖像進(jìn)行一些矯正。比如去除陰影、修正傾斜、旋轉(zhuǎn)矯正等。進(jìn)行這些處理后的圖片要更加容易識別。今天就來討論一下去除陰影的操作
    2022-12-12
  • spring的jdbctemplate的crud的基類dao

    spring的jdbctemplate的crud的基類dao

    本文主要介紹了使用spring的jdbctemplate進(jìn)行增刪改查的基類Dao的簡單寫法,需要的朋友可以參考下
    2014-02-02
  • Mybatis-Plus進(jìn)階分頁與樂觀鎖插件及通用枚舉和多數(shù)據(jù)源詳解

    Mybatis-Plus進(jìn)階分頁與樂觀鎖插件及通用枚舉和多數(shù)據(jù)源詳解

    這篇文章主要介紹了Mybatis-Plus的分頁插件與樂觀鎖插件還有通用枚舉和多數(shù)據(jù)源的相關(guān)介紹,文中代碼附有詳細(xì)的注釋,感興趣的朋友來看看吧
    2022-03-03
  • 一問詳解SpringBoot配置文件優(yōu)先級

    一問詳解SpringBoot配置文件優(yōu)先級

    在SpringBoot項(xiàng)目當(dāng)中,我們要想配置一個屬性,可以通過這三種方式當(dāng)中的任意一種來配置都可以,那么優(yōu)先級怎么算,本文主要介紹了一問詳解SpringBoot配置文件優(yōu)先級,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 微信支付java版V3驗(yàn)證數(shù)據(jù)合法性(Deom)

    微信支付java版V3驗(yàn)證數(shù)據(jù)合法性(Deom)

    這篇文章主要介紹了微信支付java版V3驗(yàn)證數(shù)據(jù)合法性(Deom)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • java中ThreadLocalRandom的使用詳解

    java中ThreadLocalRandom的使用詳解

    這篇文章主要介紹了java中ThreadLocalRandom的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 一文搞懂JAVA 枚舉(enum)

    一文搞懂JAVA 枚舉(enum)

    這篇文章主要介紹了JAVA 枚舉(enum)的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • OpenCV Java實(shí)現(xiàn)人臉識別和裁剪功能

    OpenCV Java實(shí)現(xiàn)人臉識別和裁剪功能

    這篇文章主要為大家詳細(xì)介紹了OpenCV Java實(shí)現(xiàn)人臉識別和裁剪功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • 建議你使用LocalDateTime而不是Date哦

    建議你使用LocalDateTime而不是Date哦

    這篇文章主要介紹了建議你使用LocalDateTime而不是Date,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 解決mybatis用Map返回的字段全變大寫的問題

    解決mybatis用Map返回的字段全變大寫的問題

    這篇文章主要介紹了解決mybatis用Map返回的字段全變大寫的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12

最新評論