Mybatis中返回Map的實現(xiàn)
在Mybatis中,我們通常會像下邊這樣用:
返回一個結(jié)果
User selectOne(User user);
<select parameterType='cn.lyn4ever.entity.User' resultType='cn.lyn4ever.entity.User'> select id,username,telphone from user where telphone=#{telphone} and password = #{password} </select>
返回多個結(jié)果(其實這個和上邊一樣,只不過是查詢條件的控制而已)
List<User> selectList(User user);
<select parameterType='cn.lyn4ever.entity.User' resultType='cn.lyn4ever.entity.User'> select id,username,telphone from user </select>
我們只要將上邊的resultType改為java.util.HashMap,這會有生成下邊這樣
Map selectList(User user);
<select 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。
當然,也可以查出來多條記錄,將這個Map放進List中
List<Map> selectList(User user);
<select parameterType='cn.lyn4ever.entity.User' resultType='java.util.HashMap'> select id,username,telphone from user </select>
但是有時候我們想要這種結(jié)果,怎么辦呢?
{ '01':{ username:'zhangsan', telphone:'13000000000' }}
也就是我們要自定義一個Map<String,User>,這樣的話,有以下兩種解決方法:
1.使用注解@MapKey('id')Map<String,User> getUserInMap();
<!--xml和之前寫法一樣--><select parameterType='cn.lyn4ever.entity.User' resultType='User'> select id,username,telphone from user where telphone=#{telphone} and password = #{password}</select>
這個@MapKey的value寫的就是User對象的一個屬性
2.在xml文件中寫上HashMap<String,Object> getUserInMap();
<select 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>
當然以上這兩種方法,如果查出來是多條的話也會是List的形式
到此這篇關(guān)于Mybatis中返回Map的實現(xiàn)的文章就介紹到這了,更多相關(guān)Mybatis中返回Map內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. navicat for mysql導(dǎo)出數(shù)據(jù)庫的方法2. mybatis plus代碼生成工具的實現(xiàn)代碼3. Mysql入門系列:MYSQL創(chuàng)建、刪除和選擇數(shù)據(jù)庫4. Oracle一家的幸福生活5. MySQL存儲過程例子(包含事務(wù)、參數(shù)、嵌套調(diào)用、游標循環(huán)等)6. 如何實現(xiàn)MySQL數(shù)據(jù)庫的備份與恢復(fù)7. navicat for mysql導(dǎo)出sql文件的方法8. Centos7 mysql數(shù)據(jù)庫安裝及配置實現(xiàn)教程9. 數(shù)據(jù)庫相關(guān)的幾個技能:ACCESS轉(zhuǎn)SQL10. Navicat Premium操作MySQL數(shù)據(jù)庫(執(zhí)行sql語句)
