日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

老司机学习MyBatis之如何通过select返回Map

發(fā)布時(shí)間:2023/12/9 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 老司机学习MyBatis之如何通过select返回Map 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

From: https://blog.csdn.net/Gaomb_1990/article/details/80638177

一、案例

當(dāng)要查詢的結(jié)果是一個(gè)Map的時(shí)候,這里分為兩種情況:

①返回單條記錄

<select id="getUserByIdReturnMap" resultType="map">
?? ?select id, loginId, userName, role, note from t_user where id=#{id}
</select>

注意:此時(shí)的resultType寫的是map

控制臺(tái)打印結(jié)果如下:

2017-08-06 22:57:38,473 [main] [com.queen.mybatis.mapper.UserMapper.getUserByIdReturnMap]-[DEBUG] ==>? Preparing: select id, loginId, userName, role, note from t_user where id=?
2017-08-06 22:57:38,538 [main] [com.queen.mybatis.mapper.UserMapper.getUserByIdReturnMap]-[DEBUG] ==> Parameters: 1(Integer)
2017-08-06 22:57:38,581 [main] [com.queen.mybatis.mapper.UserMapper.getUserByIdReturnMap]-[DEBUG] <==????? Total: 1
{id=1, loginId=烏索普, role=海賊王副把手, userName=奎恩, note=專門負(fù)責(zé)提鞋的。。。}

從控制臺(tái)可以看到,返回了一條數(shù)據(jù),key是列名,值就是對(duì)應(yīng)的值

②返回多條記錄

要將每條記錄都封裝成Map,注意:這里的返回值resultType是User類型,而不是一個(gè)Map

<select id="getAllUsersReturnMap" resultType="com.queen.mybatis.bean.User">
?? ?select id, loginId, userName, role, note from t_user
</select>

@MapKey(“id”)表示:告訴MyBatis封裝這個(gè)Map的時(shí)候使用哪個(gè)屬性作為map的key,修改Java文件

/**
* 多條記錄封裝成一個(gè)Map,Map<Integer,User>:鍵是這條記錄的主鍵,值是這條記錄封裝后的JavaBean
* @param id
* @return
*/
@MapKey("id")
public Map<Integer,User> getAllUsersReturnMap();

控制臺(tái)打印結(jié)果如下:

2017-08-06 23:11:20,001 [main] [com.queen.mybatis.mapper.UserMapper.getAllUsersReturnMap]-[DEBUG] ==>? Preparing: select id, loginId, userName, role, note from t_user
2017-08-06 23:11:20,054 [main] [com.queen.mybatis.mapper.UserMapper.getAllUsersReturnMap]-[DEBUG] ==> Parameters:
2017-08-06 23:11:20,102 [main] [com.queen.mybatis.mapper.UserMapper.getAllUsersReturnMap]-[DEBUG] <==????? Total: 3
{1=User [id=1, loginId=queen, userName=奎恩, role=海賊王副把手, note=專門負(fù)責(zé)提鞋的。。。], 2=User [id=2, loginId=king, userName=金獅子, role=海賊王前大海賊把手, note=磁性果實(shí)能力], 3=User [id=3, loginId=Lucy, userName=路西, role=路飛假扮選手, note=打敗多弗朗明哥。。。]}

從上述打印結(jié)果可以直觀的看到,返回多條記錄時(shí),key是ID主鍵,value是一個(gè)User的JavaBean

為了驗(yàn)證上述@MapKey注解的作用,我們修改一下@MapKey(“userName”)

@MapKey("userName") public Map<Integer,User> getAllUsersReturnMap();

控制臺(tái)打印結(jié)果如下:

2017-08-06 23:19:41,081 [main] [com.queen.mybatis.mapper.UserMapper.getAllUsersReturnMap]-[DEBUG] ==>? Preparing: select id, loginId, userName, role, note from t_user
2017-08-06 23:19:41,136 [main] [com.queen.mybatis.mapper.UserMapper.getAllUsersReturnMap]-[DEBUG] ==> Parameters:
2017-08-06 23:19:41,191 [main] [com.queen.mybatis.mapper.UserMapper.getAllUsersReturnMap]-[DEBUG] <==????? Total: 3
{金獅子=User [id=2, loginId=king, userName=金獅子, role=海賊王前大海賊把手, note=磁性果實(shí)能力], 路西=User [id=3, loginId=Lucy, userName=路西, role=路飛假扮選手, note=打敗多弗朗明哥。。。], 奎恩=User [id=1, loginId=queen, userName=奎恩, role=海賊王副把手, note=專門負(fù)責(zé)提鞋的。。。]}

?

總結(jié)

以上是生活随笔為你收集整理的老司机学习MyBatis之如何通过select返回Map的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。