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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

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

一、案例

當要查詢的結果是一個Map的時候,這里分為兩種情況:

①返回單條記錄

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

注意:此時的resultType寫的是map

控制臺打印結果如下:

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=專門負責提鞋的。。。}

從控制臺可以看到,返回了一條數據,key是列名,值就是對應的值

②返回多條記錄

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

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

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

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

控制臺打印結果如下:

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=專門負責提鞋的。。。], 2=User [id=2, loginId=king, userName=金獅子, role=海賊王前大海賊把手, note=磁性果實能力], 3=User [id=3, loginId=Lucy, userName=路西, role=路飛假扮選手, note=打敗多弗朗明哥。。。]}

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

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

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

控制臺打印結果如下:

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=磁性果實能力], 路西=User [id=3, loginId=Lucy, userName=路西, role=路飛假扮選手, note=打敗多弗朗明哥。。。], 奎恩=User [id=1, loginId=queen, userName=奎恩, role=海賊王副把手, note=專門負責提鞋的。。。]}

?

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。