最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

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

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

實(shí)例

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

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

public AjaxResult listAll(ProjectBuild projectBuild) {
? ? //只返回了id和name兩個(gè)字段 ? ?
? ? 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);
}

問(wèn)題解決

問(wèn)題描述: map中的key沒(méi)有使用駝峰命名

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

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

Mybatis-Plus修改指定字段

通用解決方案

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

// 繼承原來(lái)的公共mapper
// java8 interface可以寫方法的實(shí)現(xiàn)邏輯,直接在這里寫好,
// 其他地方調(diào)用時(shí)直接繼承自定義的 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"); // 獲取對(duì)象的主鍵值
            wrapper.eq("id", id);
        } catch (NoSuchFieldException | IllegalAccessException e) {
            throw new RuntimeException("對(duì)象主鍵未找到,請(qǐng)確認(rèn)"); // 自定義異常
        }
 
        for (String dirtyField : dirtyFields) {
            try {
                Field classField = tClass.getDeclaredField(dirtyField);
                classField.setAccessible(true);
                // 對(duì)象屬性,轉(zhuǎn)成數(shù)據(jù)庫(kù)字段
                wrapper.set(StringUtils.toColumn(dirtyField), classField.get(entity));
            } catch (Exception ignored) {
            }
        }
        return update(null, wrapper);
    } 
}

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

相關(guān)文章

  • SpringCloud配置服務(wù)端的ConfigServer設(shè)置安全認(rèn)證

    SpringCloud配置服務(wù)端的ConfigServer設(shè)置安全認(rèn)證

    這篇文章主要為大家介紹了SpringCloud配置服務(wù)端的ConfigServer設(shè)置安全認(rèn)證,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • MybatisPlus代碼生成器的使用方法詳解

    MybatisPlus代碼生成器的使用方法詳解

    在這里我將展示如何自動(dòng)生成實(shí)體類、控制層、服務(wù)層、mapper等代碼,這些基礎(chǔ)的代碼全部不需要我們手動(dòng)創(chuàng)建,由MybatisPlus自動(dòng)幫我們完成,我們只需要告訴MybatisPlus怎么生成這些代碼就可以了,在此之前我們需要配置好測(cè)試的環(huán)境,數(shù)據(jù)庫(kù)和表數(shù)據(jù) ,需要的朋友可以參考下
    2021-06-06
  • 使用IDEA配置Tomcat和連接MySQL數(shù)據(jù)庫(kù)(JDBC)詳細(xì)步驟

    使用IDEA配置Tomcat和連接MySQL數(shù)據(jù)庫(kù)(JDBC)詳細(xì)步驟

    這篇文章主要介紹了使用IDEA配置Tomcat和連接MySQL數(shù)據(jù)庫(kù)(JDBC)詳細(xì)步驟,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 關(guān)于SpringBoot攔截器攔截靜態(tài)資源的問(wèn)題

    關(guān)于SpringBoot攔截器攔截靜態(tài)資源的問(wèn)題

    這篇文章主要介紹了關(guān)于SpringBoot攔截器攔截靜態(tài)資源的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java 中的控制反轉(zhuǎn)(IOC)詳解

    Java 中的控制反轉(zhuǎn)(IOC)詳解

    這篇文章主要介紹了理解Java 中的IOC控制反轉(zhuǎn),具有一定參考價(jià)值,需要的朋友可以了解下,希望能夠給你帶來(lái)幫助
    2021-10-10
  • Java中的泛型詳細(xì)解析

    Java中的泛型詳細(xì)解析

    這篇文章主要介紹了Java中的泛型詳細(xì)解析,泛型又稱參數(shù)化類型,是JDK5.0出現(xiàn)的新特性,解決了數(shù)據(jù)類型的安全型問(wèn)題,Java泛型可以保證如果程序在編譯時(shí)沒(méi)用發(fā)出警告,運(yùn)行時(shí)就不會(huì)產(chǎn)生classCastException異常,需要的朋友可以參考下
    2024-01-01
  • Java實(shí)現(xiàn)HTTP請(qǐng)求的4種方式總結(jié)

    Java實(shí)現(xiàn)HTTP請(qǐng)求的4種方式總結(jié)

    這篇文章主要給大家介紹了關(guān)于Java實(shí)現(xiàn)HTTP請(qǐng)求的4種方式,在java開(kāi)發(fā)中,經(jīng)常遇到需要調(diào)用第三方提供的接口服務(wù)的需求,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下
    2023-08-08
  • EditPlus運(yùn)行java時(shí)從鍵盤輸入數(shù)據(jù)的操作方法

    EditPlus運(yùn)行java時(shí)從鍵盤輸入數(shù)據(jù)的操作方法

    這篇文章主要介紹了EditPlus運(yùn)行java時(shí)從鍵盤輸入數(shù)據(jù)的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • java 進(jìn)制轉(zhuǎn)換實(shí)例詳解

    java 進(jìn)制轉(zhuǎn)換實(shí)例詳解

    這篇文章主要介紹了java 進(jìn)制轉(zhuǎn)換實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • springboot3.X 無(wú)法解析parameter參數(shù)問(wèn)題分析

    springboot3.X 無(wú)法解析parameter參數(shù)問(wèn)題分析

    本文介紹了Spring Boot 3.2.1版本中調(diào)用接口時(shí)出現(xiàn)的參數(shù)解析問(wèn)題,該錯(cuò)誤是由Spring新版本加強(qiáng)的錯(cuò)誤校驗(yàn)和報(bào)錯(cuò)提示導(dǎo)致的,在Spring 6.1之后,官方要求URL中的傳參必須使用`@PathVariable`聲明用于接收的變量,而不能省略`@RequestParam`注解,感興趣的朋友一起看看吧
    2025-03-03

最新評(píng)論

色达县| 莎车县| 修文县| 彭州市| 珲春市| 武定县| 万山特区| 甘南县| 资兴市| 彰化县| 交口县| 彩票| 房山区| 措勤县| 曲松县| 常宁市| 凉城县| 和静县| 永修县| 绩溪县| 故城县| 通山县| 彰化市| 霍邱县| 三亚市| 岱山县| 开远市| 石家庄市| 郑州市| 剑川县| 科尔| 利津县| 红桥区| 南平市| 彭州市| 简阳市| 大宁县| 赣榆县| 宁化县| 南溪县| 鄂州市|