mybatisPlus返回Map類型的集合
1、自定義實(shí)現(xiàn)該類
package com.linmain.dict.handle;
import org.apache.ibatis.session.ResultContext;
import org.apache.ibatis.session.ResultHandler;
import java.util.HashMap;
import java.util.Map;
/**
?* @Author linzhuoqi
?* @Date 2023/3/9
?* @Eamil 1580752420@qq.com
?* @Version
?* @Description ?新建一個(gè)mappedResults,每次感應(yīng)到數(shù)據(jù)進(jìn)來,處理下然后塞進(jìn)去。
?*/
@SuppressWarnings("all")
public class MapResultHandle<K, V> implements ResultHandler<Map<K, V>> {
? ? private final Map<K,V> mappedResults = new HashMap<>();
? ??
? ? @Override
? ? public void handleResult(ResultContext<? extends Map<K, V>> resultContext) {
? ? ? ? Map map = (Map) resultContext.getResultObject();
? ? ? ? //key和value是xml中映射的
? ? ? ? mappedResults.put((K)map.get("key"), (V)map.get("value"));
? ? }
? ? public Map<K, V> getMappedResults() {
? ? ? ? return mappedResults;
? ? }
}2、在抽象dao層書寫返回map集合類型的方法
Map<String,String> pageByTypeId(Serializable typeId);
3、在XXXDao.xml文件中書寫sql語句和resultMap類型
?<!-- result類型 -->
?<resultMap id="mapResult" type="java.util.HashMap">
? ? ?<result property="key" column="data_value"/>
? ? ?<result property="value" column="data_name"/>
?</resultMap>
?<!-- 上述方法的sql語句 -->
?<select id="pageByTypeId" resultMap="mapResult">
? ? ?select data_name, data_value
? ? ?from dict_data
? ? ?where dict_id = #{typeId}
? ? ? ?and is_delete = '0';
?</select>4、如何使用
?@Override
?public Map<String,String> getAllByTypeId(Serializable typeId) {
? ? ?//獲取一個(gè)sqlsession對(duì)象,true:自動(dòng)提交
? ? ?SqlSession sqlSession = sqlSessionFactory.openSession(true);
? ? ?//創(chuàng)建一個(gè)結(jié)果處理器
? ? ?MapResultHandle<String, String> mapResultHandle = new MapResultHandle<>();
? ? ?//進(jìn)行數(shù)據(jù)查詢和結(jié)果封裝
? ? ?sqlSession.select("com.linmain.dict.dao.DictDataDao.pageByTypeId", typeId, mapResultHandle);
? ? ?Map<String, String> mappedResults = mapResultHandle.getMappedResults();
? ? ?return mappedResults;
? ? }到此這篇關(guān)于mybatisPlus返回Map類型的集合的文章就介紹到這了,更多相關(guān)mybatisPlus返回Map類型的集合內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解springboot?springsecuroty中的注銷和權(quán)限控制問題
這篇文章主要介紹了springboot-springsecuroty?注銷和權(quán)限控制,賬戶注銷需要在SecurityConfig中加入開啟注銷功能的代碼,權(quán)限控制要導(dǎo)入springsecurity和thymeleaf的整合依賴,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2022-03-03
使用Maven打包時(shí)包含資源文件和源碼到j(luò)ar的方法
這篇文章主要介紹了使用Maven打包時(shí)包含資源文件和源碼到j(luò)ar的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
學(xué)會(huì)Java字節(jié)碼指令,成為技術(shù)大佬
Java 字節(jié)碼指令是 JVM 體系中非常難啃的一塊硬骨頭,我估計(jì)有些讀者會(huì)有這樣的疑惑,“Java 字節(jié)碼難學(xué)嗎?我能不能學(xué)會(huì)???”本文帶領(lǐng)大家一探究竟,幫助大家搞懂java底層代碼如何執(zhí)行2021-08-08
Java編程用兩個(gè)棧實(shí)現(xiàn)隊(duì)列代碼分享
這篇文章主要介紹了Java編程用兩個(gè)棧實(shí)現(xiàn)隊(duì)列代碼分享,具有一定參考價(jià)值,這里給大家分享下,供需要的朋友了解。2017-10-10
詳解SpringCloud微服務(wù)架構(gòu)之Hystrix斷路器
本篇文章主要介紹了詳解SpringCloud微服務(wù)架構(gòu)之Hystrix斷路器,Hystrix是一個(gè)庫,通過添加延遲容差和容錯(cuò)邏輯來幫助您控制這些分布式服務(wù)之間的交互,有興趣的可以了解一下2018-01-01
Java反射機(jī)制,反射相關(guān)API,反射API使用方式(反射獲取實(shí)體類字段名和注解值)
這篇文章主要介紹了Java反射機(jī)制,反射相關(guān)API,反射API使用方式(反射獲取實(shí)體類字段名和注解值),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
Java鏈表(Linked List)基本原理與實(shí)現(xiàn)方法入門示例
這篇文章主要介紹了Java鏈表(Linked List)基本原理與實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Java鏈表(Linked List)的功能、原理、實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下2020-03-03

