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

MyBatis-Plus 查詢返回實體對象還是map

 更新時間:2020年09月01日 10:50:58   作者:gblfy  
這篇文章主要介紹了MyBatis-Plus 查詢返回實體對象還是map,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

在常見場景下:返回數(shù)據(jù)建議使用map,不建議使用實體對象

  /**
   * 1. 名字包含雨并且年齡小于40
   * sql:name like '%雨%' and age < 40
   * <p>
   * 應用場景:
   * 當表字段非常多,但是你只需要查詢少數(shù)幾列,
   * 沒必要返回的泛型為實體的list,如果返回的泛型為實體,絕大多字段都是null,這樣做不優(yōu)雅
   * 用返回泛型為map建議使用
   */
  @Test
  public void selectByWrapperMaps() {
    QueryWrapper<User> queryWrapper = new QueryWrapper<>();
    queryWrapper.like("name", "雨").lt("age", 40);
    //建議使用
    List<Map<String, Object>> userList = userMapper.selectMaps(queryWrapper);
    //不建議使用
//    List<User> userList = userMapper.selectList(queryWrapper);
    userList.forEach(System.out::println);
  }
  /*
    sql形式:SELECT id,name,age,email,manager_id,create_time FROM user WHERE name LIKE ? AND age < ?
   */
  /**
   * 按照直屬上級分組,查詢每組的平均年齡。最大年齡、最小年齡。
   * 并且只取年齡總和小于500的組
   * select avg(age) avg_age,min(age) min_age,max(age) max_age from user
   * group by manager_id
   * having sum(age) < 500 ;
   */

  @Test
  public void selectByWrapperMaps2() {
    QueryWrapper<User> queryWrapper = new QueryWrapper<>();
    queryWrapper.select("avg(age) avg_age", "min(age) min_age", "max(age) max_age")
        .groupBy("manager_id")
        .having("sum(age) < {0}", 500);

    List<Map<String, Object>> userList = userMapper.selectMaps(queryWrapper);
    userList.forEach(System.out::println);
//  sql形式:SELECT avg(age) avg_age,min(age) min_age,max(age) max_age FROM user
//  GROUP BY manager_id HAVING sum(age) < ?
}

遇到了這個問題,迷惘,遂問大神,大神曰:如果是組合體,就用map;如果是單體實體,就用實體。實體類對應單表,多表返回用map。

我想省事全用map,但是那我學了面向對象是用來干嘛的?

別人在調(diào)用你這個接口的時候 ,如果返回類型是個map,那他需要點進去,看你程序的具體實現(xiàn)才能知道怎么接收,賦值,那無疑是為別人添加了巨大麻煩,尤其是當你的代碼不夠規(guī)范的時候。再有,如果你代碼寫的很爛,豈不是自己去讓別人吐槽你。如果你返回的是一個對象實體,那他就可以看到你返回的是什么,別人也就懶得再去看你代碼了,也為他省了很多事。

新技術或者新思想 并不等于 省事 ,很多時候 有捷徑,但是,我們就是不能去走,為什么?說不定走到哪里就會遇到一個坑,或者直接是懸崖也不一定。

其他回答:

1.每張表都要對應一個實體 這樣才能映射嘛 多表聯(lián)合查詢的結果可以返回一個hashmap處理 視情況而定。

2.如果你是多表聯(lián)合查詢,然后你又覺得返回方式用map很麻煩的話,你可以自己建立個實體類,這個實力類中包含有你所要查詢的多表中的字段,然后在mybatis中用typeAlias指定一下,到時候,就能像用一般的實體類那樣使用就好。

3.如果類型指定為hashMap只是針對返回一條記錄的情況吧,如果返回多條記錄類型就不能指定為hashMap了?多個結果集他會給你放入一個List,你在javacode中用selectList這樣的代碼返回的是list,當然這個list中可能是實體類也可能是hashmap。

到此這篇關于MyBatis-Plus 查詢返回實體對象還是map的文章就介紹到這了,更多相關MyBatis-Plus 查詢返回內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • mybatis批量插入返回主鍵失敗的坑及解決

    mybatis批量插入返回主鍵失敗的坑及解決

    這篇文章主要介紹了mybatis批量插入返回主鍵失敗的坑及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Java查看變量的數(shù)據(jù)類型的三種方法

    Java查看變量的數(shù)據(jù)類型的三種方法

    Java是一門強類型的編程語言,它對變量的數(shù)據(jù)類型有嚴格的限定,在定義變量時必須聲明變量的數(shù)據(jù)類型,在為變量賦值時必須賦予與變量同一種類型的值,否則程序會報錯, 所以本文給大家介紹了Java查看變量的數(shù)據(jù)類型的三種方法,需要的朋友可以參考下
    2024-10-10
  • 在springboot項目中同時接收文件和多個參數(shù)的方法總結

    在springboot項目中同時接收文件和多個參數(shù)的方法總結

    在開發(fā)接口中,遇到了需要同時接收文件和多個參數(shù)的情況,可以有多種方式實現(xiàn)文件和參數(shù)的同時接收,文中給大家介紹了兩種實現(xiàn)方法,感興趣的同學跟著小編一起來看看吧
    2023-08-08
  • SpringBoot3整合SpringDoc實現(xiàn)在線接口文檔的詳細過程

    SpringBoot3整合SpringDoc實現(xiàn)在線接口文檔的詳細過程

    這篇文章主要介紹了SpringBoot3整合SpringDoc實現(xiàn)在線接口文檔的詳細過程,本文通過示例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • SpringBoot整合thymeleaf 報錯的解決方案

    SpringBoot整合thymeleaf 報錯的解決方案

    這篇文章主要介紹了SpringBoot整合thymeleaf 報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java實現(xiàn)仿射密碼加密解密

    java實現(xiàn)仿射密碼加密解密

    這篇文章主要為大家詳細介紹了java實現(xiàn)仿射密碼加密解密的相關資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • Javax Validation自定義注解進行身份證號校驗

    Javax Validation自定義注解進行身份證號校驗

    這篇文章主要為大家詳細介紹了如何通過Javax Validation自定義注解進行身份證號校驗,文中的示例代碼講解詳細,有需要的小伙伴可以參考一下
    2024-10-10
  • Java中如何動態(tài)創(chuàng)建接口的實現(xiàn)方法

    Java中如何動態(tài)創(chuàng)建接口的實現(xiàn)方法

    這篇文章主要介紹了Java中如何動態(tài)創(chuàng)建接口的實現(xiàn)方法的相關資料,需要的朋友可以參考下
    2017-09-09
  • 分享一個你不知道的Java異常實現(xiàn)的缺陷

    分享一個你不知道的Java異常實現(xiàn)的缺陷

    Java中一個大家熟知的知識點就是異常捕獲,try...catch...finally組合,但是很多人不知道這里面有一個關于Java的缺陷,或者說是異常實現(xiàn)的一點不足之處。本文就通過一個很簡單的實驗給大家演示下效果玩玩兒,希望大家能覺得有趣
    2022-12-12
  • 簡單談一談Java中的Unsafe類

    簡單談一談Java中的Unsafe類

    其實Java官方不推薦使用Unsafe類,因為官方認為,這個類別人很難正確使用,非正確使用會給JVM帶來致命錯誤。但還是要會使用,下面這篇文章就來給大家簡單的談一談關于Java中Unsafe類的相關資料,需要的朋友可以參考下
    2018-05-05

最新評論

阳城县| 元江| 台中市| 赤水市| 靖西县| 射阳县| 文登市| 四平市| 石泉县| 木兰县| 巴塘县| 盘锦市| 崇文区| 泸定县| 海原县| 米林县| 浦江县| 平昌县| 海淀区| 神农架林区| 瑞丽市| 夏津县| 育儿| 德清县| 始兴县| 澄城县| 博白县| 洛浦县| 三门县| 茌平县| 临清市| 涿鹿县| 东方市| 湟中县| 紫阳县| 易门县| 吴堡县| 紫金县| 会昌县| 邵阳县| 射阳县|