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

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í)例一:指定需要查詢(xún)的具體字段

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可以寫(xiě)方法的實(shí)現(xiàn)邏輯,直接在這里寫(xiě)好,
// 其他地方調(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)文章

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

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

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

    spring的jdbctemplate的crud的基類(lèi)dao

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

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

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

    一問(wèn)詳解SpringBoot配置文件優(yōu)先級(jí)

    在SpringBoot項(xiàng)目當(dāng)中,我們要想配置一個(gè)屬性,可以通過(guò)這三種方式當(dāng)中的任意一種來(lái)配置都可以,那么優(yōu)先級(jí)怎么算,本文主要介紹了一問(wèn)詳解SpringBoot配置文件優(yōu)先級(jí),需要的朋友們下面隨著小編來(lái)一起學(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)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-09-09
  • java中ThreadLocalRandom的使用詳解

    java中ThreadLocalRandom的使用詳解

    這篇文章主要介紹了java中ThreadLocalRandom的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(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)人臉識(shí)別和裁剪功能

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

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

    建議你使用LocalDateTime而不是Date哦

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

    解決mybatis用Map返回的字段全變大寫(xiě)的問(wèn)題

    這篇文章主要介紹了解決mybatis用Map返回的字段全變大寫(xiě)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12

最新評(píng)論