激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - MyBatis-Plus 查詢返回實體對象還是map

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

2020-09-02 00:30gblfy Java教程

這篇文章主要介紹了MyBatis-Plus 查詢返回實體對象還是map,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  /**
   * 1. 名字包含雨并且年齡小于40
   * sql:name like '%雨%' and age < 40
   * <p>
   * 應(yīng)用場景:
   * 當(dāng)表字段非常多,但是你只需要查詢少數(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 < ?
   */
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  /**
   * 按照直屬上級分組,查詢每組的平均年齡。最大年齡、最小年齡。
   * 并且只取年齡總和小于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;如果是單體實體,就用實體。實體類對應(yīng)單表,多表返回用map。

我想省事全用map,但是那我學(xué)了面向?qū)ο笫怯脕砀陕锏模?/p>

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

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

其他回答:

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

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

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

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

原文鏈接:https://blog.csdn.net/weixin_40816738/article/details/93381620

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美囗交 | 精品久久久久久久久久久久久久久久久久久 | 国产成人在线综合 | 久久色在线 | www亚洲成人| 亚洲日韩精品欧美一区二区 | 一区二区美女视频 | 久久精品99久久久久久2456 | 国内成人自拍视频 | 色呦呦一区二区三区 | 中国美女一级黄色大片 | 久久成人亚洲 | 国产视频在线观看一区二区三区 | 国内精品久久久久久2021浪潮 | 狼人狠狠干 | 在线免费观看毛片视频 | 免费黄色大片在线观看 | 亚洲午夜激情网 | 一级电影免费在线观看 | 91www成人久久 | www.com国产精品| 色诱亚洲精品久久久久久 | 精品一区二区三区不卡 | 中文字幕一区二区三区四区 | 欧美成人一级片 | 成人做爽爽爽爽免费国产软件 | 无码专区aaaaaa免费视频 | 欧美日韩免费在线观看视频 | 国产一区日韩精品 | 欧美黄色性视频 | 国产乱淫av片免费观看 | 久久777国产线看观看精品 | 污污的视频在线观看 | 在线看三级 | 老a影视网站在线观看免费 欧美日韩成人一区二区 | 国产亚洲精彩视频 | 色淫网站免费视频 | 最新福利在线 | 91久久99热青草国产 | 亚洲最大中文字幕 | 久久久久久久久国产 |