mybatis如何使用Map接收返回值
Mapperxml SQL文件
<select id="selectLiveActivityL" resultType="Map">
SELECT IFNULL(Set_Value,0) AS Set_Value FROM baseset WHERE Base_Set_Id IN (3,4,5)
</select>取出baseset 表中Base_Set_Id 為3,4,5的數(shù)據(jù)
如下:

Mapper 接口文件
List<Map<String, Object>> selectLiveActivityL();
在控制層或者實(shí)現(xiàn)層取值
List<Map<String, Object>> listMapO = service.selectLiveActivityL();
listMapO.get(0).get("Set_Value").toString();//第一個(gè)值
listMapO.get(1).get("Set_Value").toString();//第二個(gè)值
listMapO.get(2).get("Set_Value").toString();//第三個(gè)值前面都單列取值
類似有兩列的:

List<Map<String, Object>> listMapF = service.selectLookLiveActivityE();
listMapF.get(0).get("Set_Value").toString();
listMapF.get(0).get("Set_Value_Duplicate").toString()
get(0)控制第幾行;
get("Set_Value")控制第幾列;返回map和返回映射到實(shí)體類的優(yōu)缺點(diǎn)
優(yōu)點(diǎn)
首先從上述代碼就直接可以看出來,返回為map類型,使用Map作為接收類型時(shí),通常能夠在傳參到持久層這一過程中省去很多麻煩。
前端請(qǐng)求及參數(shù)到達(dá)Action或者Controller時(shí)通常使用map來進(jìn)行接收,使用map作為傳遞類型可以不用再將數(shù)據(jù)封裝為Bean類型再去根據(jù)實(shí)體屬性一一填充,直接通過Service和Dao以map類型將數(shù)據(jù)傳到map配置SQL文件當(dāng)中,省去很多數(shù)據(jù)轉(zhuǎn)換環(huán)節(jié)。
再執(zhí)行完SQL語(yǔ)句返回時(shí)制定map類型返回,不管是單條數(shù)據(jù)還是List都可以快速編寫并返回給前端。
這種方式在處理多表查詢時(shí)避免了編寫大量的實(shí)體類和屬性字段定義,減少了很多中間流程。
缺點(diǎn)
缺點(diǎn)也一樣明顯,沒有了實(shí)體類,自己就需要記好map中的key-value映射關(guān)系,其次其數(shù)據(jù)不能像映射到實(shí)體類中那樣,重寫getter方法。
當(dāng)另外一個(gè)同事來接手和維護(hù)時(shí),因?yàn)闆]有了實(shí)體類,他只能通過查詢map調(diào)試,或者查看才能知曉。也不利于后期的維護(hù)。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MyBatis-Flex多表關(guān)聯(lián)查詢指南分享
本文介紹了MyBatis-Flex的多表關(guān)聯(lián)查詢功能,包括基于QueryWrapper的動(dòng)態(tài)關(guān)聯(lián)查詢和基于@Relation注解的靜態(tài)關(guān)聯(lián)查詢,通過示例展示了如何實(shí)現(xiàn)不同類型的關(guān)聯(lián)關(guān)系,并對(duì)比了兩種方式的特點(diǎn)和適用場(chǎng)景,最后給出了最佳實(shí)踐建議2026-05-05
spring cloud consul注冊(cè)的服務(wù)報(bào)錯(cuò)critical的解決
這篇文章主要介紹了spring cloud consul注冊(cè)的服務(wù)報(bào)錯(cuò)critical的解決,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-03-03
SpringBoot通過注解監(jiān)測(cè)Controller接口的代碼示例
在Spring Boot中,度量指標(biāo)(Metrics)是監(jiān)控和診斷應(yīng)用性能與行為的重要工具,Spring Boot通過集成Micrometer和Spring Boot Actuator,提供了強(qiáng)大的度量指標(biāo)收集與暴露功能,本文介紹了SpringBoot通過注解監(jiān)測(cè)Controller接口,需要的朋友可以參考下2024-07-07
springboot Rabbit MQ topic 配置文件綁定隊(duì)列和交換機(jī)的
本文詳細(xì)講解了在SpringBoot中使用RabbitMQ進(jìn)行隊(duì)列與交換機(jī)的綁定方法,包括創(chuàng)建交換機(jī)、隊(duì)列和綁定它們的步驟,以及如何發(fā)送和接收消息,適用于開發(fā)高并發(fā)系統(tǒng),如秒殺系統(tǒng)等2024-09-09
SpringBoot3.0+SpringSecurity6.0+JWT的實(shí)現(xiàn)
本文主要介紹了SpringBoot3.0+SpringSecurity6.0+JWT的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11
java 算法之希爾排序詳解及實(shí)現(xiàn)代碼
這篇文章主要介紹了java 算法之希爾排序詳解及實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-03-03
Spring事務(wù)框架之TransactionDefinition源碼解析
這篇文章主要為大家介紹了Spring事務(wù)框架之TransactionDefinition源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
基于RecyclerChart的KLine的繪制Scale詳解
這篇文章主要為大家詳細(xì)介紹了基于RecyclerChart實(shí)現(xiàn)KLine繪制Scale的相關(guān)資料,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-03-03

