Mybatis中返回Map的實(shí)現(xiàn)
在Mybatis中,我們通常會(huì)像下邊這樣用:
返回一個(gè)結(jié)果
User selectOne(User user);
<select id="selectOne" parameterType="cn.lyn4ever.entity.User" resultType="cn.lyn4ever.entity.User">
select id,username,telphone from user where telphone=#{telphone} and password = #{password}
</select>
返回多個(gè)結(jié)果(其實(shí)這個(gè)和上邊一樣,只不過(guò)是查詢條件的控制而已)
List<User> selectList(User user);
<select id="selectOne" parameterType="cn.lyn4ever.entity.User" resultType="cn.lyn4ever.entity.User">
select id,username,telphone from user
</select>
我們只要將上邊的resultType改為java.util.HashMap,這會(huì)有生成下邊這樣
Map selectList(User user);
<select id="selectOne" parameterType="cn.lyn4ever.entity.User" parameterType="cn.lyn4ever.entity.User" resultType="java.util.HashMap">
select id,username,telphone from user where telphone=#{telphone} and password = #{password}
</select>
上這結(jié)果就是說(shuō),以User類的屬性名為key,屬性值為value。
當(dāng)然,也可以查出來(lái)多條記錄,將這個(gè)Map放進(jìn)List中
List<Map> selectList(User user);
<select id="selectOne" parameterType="cn.lyn4ever.entity.User" resultType="java.util.HashMap">
select id,username,telphone from user
</select>
但是有時(shí)候我們想要這種結(jié)果,怎么辦呢?
{
"01":{
username:"zhangsan",
telphone:"13000000000"
}
}
也就是我們要自定義一個(gè)Map<String,User>,這樣的話,有以下兩種解決方法:
1.使用注解
@MapKey("id")
Map<String,User> getUserInMap();
<!--xml和之前寫法一樣-->
<select id="getUserInMap" parameterType="cn.lyn4ever.entity.User" resultType="User">
select id,username,telphone from user where telphone=#{telphone} and password = #{password}
</select>
這個(gè)@MapKey的value寫的就是User對(duì)象的一個(gè)屬性
2.在xml文件中寫上
HashMap<String,Object> getUserInMap();
<select id="getUserInMap" parameterType="cn.lyn4ever.entity.User" resultType="java.util.HashMap">
SELECT id as 'key', * as 'value', id,username,telphone from user where telphone=#{telphone} and password = #{password}
</select>
當(dāng)然以上這兩種方法,如果查出來(lái)是多條的話也會(huì)是List的形式
到此這篇關(guān)于Mybatis中返回Map的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Mybatis中返回Map內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java時(shí)區(qū)轉(zhuǎn)換的理解及示例詳解
這篇文章主要介紹了java時(shí)區(qū)轉(zhuǎn)換的理解及示例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
在非spring環(huán)境中調(diào)用service中的方法
非Spring環(huán)境指的是不使用Spring框架來(lái)管理和配置應(yīng)用程序的運(yùn)行時(shí)環(huán)境,本文將給大家介紹如何在非spring環(huán)境中調(diào)用service中的方法,文中有詳細(xì)實(shí)現(xiàn)步驟,需要的朋友可以參考下2024-03-03
Java簡(jiǎn)單使用EasyExcel操作讀寫excel的步驟與要點(diǎn)
相信現(xiàn)在很多搞后端的同學(xué)大部分做的都是后臺(tái)管理系統(tǒng),那么管理系統(tǒng)就肯定免不了Excel的導(dǎo)出導(dǎo)入功能,下面這篇文章主要給大家介紹了關(guān)于Java簡(jiǎn)單使用EasyExcel操作讀寫excel的步驟與要點(diǎn),需要的朋友可以參考下2022-09-09
spring boot請(qǐng)求異常處理并返回對(duì)應(yīng)的html頁(yè)面
這篇文章主要介紹了spring boot處理請(qǐng)求異常并返回對(duì)應(yīng)的html頁(yè)面,包括404異常處理和500異常處理,需要的朋友可以參考下2017-07-07
詳解XML,Object,Json轉(zhuǎn)換與Xstream的使用
這篇文章主要介紹了詳解XML,Object,Json轉(zhuǎn)換與Xstream的使用的相關(guān)資料,需要的朋友可以參考下2017-02-02

