Mybatis中返回Map的實(shí)現(xiàn)
在Mybatis中,我們通常會(huì)像下邊這樣用:
返回一個(gè)結(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>
返回多個(gè)結(jié)果(其實(shí)這個(gè)和上邊一樣,只不過(guò)是查詢(xún)條件的控制而已)
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,這會(huì)有生成下邊這樣
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é)果就是說(shuō),以User類(lèi)的屬性名為key,屬性值為value。
當(dāng)然,也可以查出來(lái)多條記錄,將這個(gè)Map放進(jìn)List中
List<Map> selectList(User user);
<select 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和之前寫(xiě)法一樣--><select parameterType='cn.lyn4ever.entity.User' resultType='User'> select id,username,telphone from user where telphone=#{telphone} and password = #{password}</select>
這個(gè)@MapKey的value寫(xiě)的就是User對(duì)象的一個(gè)屬性
2.在xml文件中寫(xiě)上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>
當(dāng)然以上這兩種方法,如果查出來(lái)是多條的話也會(huì)是List的形式
到此這篇關(guān)于Mybatis中返回Map的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Mybatis中返回Map內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. SQLite教程(六):表達(dá)式詳解2. Mysql入門(mén)系列:建立MYSQL客戶(hù)機(jī)程序的一般過(guò)程3. 導(dǎo)出錯(cuò)誤編碼的mysql數(shù)據(jù)庫(kù)4. SQLite3 API 編程手冊(cè)5. 在Oracle數(shù)據(jù)庫(kù)中移動(dòng)數(shù)據(jù)文件的具體方法6. 使用 UIMA 和 DB2 Intelligent Miner 進(jìn)行文本挖掘7. SQL語(yǔ)句中的ON DUPLICATE KEY UPDATE使用8. Navicat for MySQL的使用教程詳解9. DB2數(shù)據(jù)庫(kù)的隔離級(jí)解讀與試驗(yàn)10. Mysql入門(mén)系列:對(duì)MYSQL查詢(xún)中有疑問(wèn)的數(shù)據(jù)進(jìn)行編碼
