老司机学习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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为Android购买多个改装微信,从制作
- 下一篇: HQL入门学习