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è)和上邊一樣,只不過是查詢條件的控制而已)
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é)果就是說,以User類的屬性名為key,屬性值為value。
當(dāng)然,也可以查出來多條記錄,將這個(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)然以上這兩種方法,如果查出來是多條的話也會(huì)是List的形式
到此這篇關(guān)于Mybatis中返回Map的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Mybatis中返回Map內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Log4j關(guān)閉Spring和Hibernate日志打印方式
這篇文章主要介紹了Log4j關(guān)閉Spring和Hibernate日志打印方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12教你用IDEA配置JUnit并進(jìn)行單元測(cè)試
今天教各位小伙伴怎么用IDEA配置JUnit并進(jìn)行單元測(cè)試,文中有非常詳細(xì)的圖文介紹及代碼示例,對(duì)正在學(xué)習(xí)IDEA的小伙伴有很好的幫助,需要的朋友可以參考下2021-05-05Spring?Boot解決循環(huán)依賴的過程詳細(xì)記錄
這篇文章主要介紹了Spring?Boot解決循環(huán)依賴的過程,Spring框架通過三級(jí)緩存機(jī)制解決循環(huán)依賴問題,分別為singletonObjects、earlySingletonObjects和singletonFactories,需要的朋友可以參考下2024-09-09Java實(shí)現(xiàn)動(dòng)態(tài)獲取文件的絕對(duì)路徑
我們知道在?Java?中讀取一些配置文件信息,是在開發(fā)中十分常用的要求。這篇文章就來和大家聊聊Java如何實(shí)現(xiàn)動(dòng)態(tài)獲取文件的絕對(duì)路徑,感興趣的可以了解一下2023-02-02Java框架搭建之Maven、Mybatis、Spring MVC整合搭建(圖文)
這篇文章主要介紹了Java框架搭建之Maven、Mybatis、Spring MVC整合搭建(圖文),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12JAVA 并發(fā)容器的一些易出錯(cuò)點(diǎn)你知道嗎
今天給大家?guī)淼奈恼率荍ava并發(fā)編程的相關(guān)知識(shí),文中對(duì)java同步容器與并發(fā)容器做了非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-09-09Spring實(shí)戰(zhàn)之屬性占位符配置器用法示例
這篇文章主要介紹了Spring實(shí)戰(zhàn)之屬性占位符配置器用法,結(jié)合實(shí)例形式分析了spring屬性占位符配置器的具體配置及使用技巧,需要的朋友可以參考下2019-12-12