1、ibatis 层  

<select id="getByUid"  resultMap="UserComment" parameterClass="map">

SELECT uid, friend_id, alias_name,alias_name_pinyin
FROM USER_COMMENT
WHERE uid = #uid#  
<isNotNull prepend="AND" property="namespace">
            namespace = #namespace:VARCHAR#
        </isNotNull>
</select>
 
2、Dao层
 
  @SuppressWarnings("unchecked")
    public Map<String,UserComment> gets(String uid) {
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("uid", uid);
        params.put("namespace", namespaceContext.getNamespace());
        return (Map<String,UserComment>) this.getSqlMapClientTemplate(). queryForMap("UserComment.getByUid", params,"friendId");
    }
3、服务层 
 Map<String,UserComment>getComments(String uid);
4、实现层
 
 public Map<String,UserComment> getComments(String uid) {
        if (StringUtil.isBlank(uid)) return  null;
        Map<String,UserComment> commentList = userCommentDao.gets(uid);
        if (commentList == null || commentList.isEmpty()) return null;
   return commentList;
    }
5、rpc层测试
 
  @SuppressWarnings("all")
    @ResourceMapping(value = "/getCommentsByUid", method = HttpMethod.GET)
    public Map<String,UserComment> getCommentsByUid(ErrorContext errorContext) {
        String uid = (String) session.getAttribute(SessionConstants.UID);
        if (uid == null) return null;
        try {
            return (Map<String, UserComment>) this.userService.getComments(uid);
        } catch (Exception e) {
            log.error(e.getMessage(), e);
            errorContext.addError(ErrorItem.create("get", "603", "查询好友备注失败"));
            return null;
        }
    }
 
返回结果:
{"content":{"22001":{"uid":"585012","aliasNamePinyin":"ce^shi^a^a^a^a^a","friendId":"22001","aliasName":"\u6D4B\u8BD5\u554A\u554A\u554A\u554Aa"},"22002":{"uid":"585012","aliasNamePinyin":"ce^shi^b^b","friendId":"22002","aliasName":"\u6D4B\u8BD5bb"},"22003":{"uid":"585012","aliasNamePinyin":"ce^shi^c^2","friendId":"22003","aliasName":"\u6D4B\u8BD5c2"}},"resubmitToken":"035d0af2a6ab8add7204335c66fee974","submitToken":"035d0af2a6ab8add7204335c66fee974","hasError":false}

6、返回的map结果如何使用 

 Map<String, UserComment> comments = this.lwUserService.getComments(securityContext.getCurrentUserId());             List<ConnectionVO> users = new ArrayList<ConnectionVO>(friends.size());             UserComment uc = null;             for (BaseProfile friend : friends) {                 ConnectionVO connectionVO = new ConnectionVO();                 connectionVO.setName(friend.getName());                 connectionVO.setAvatar(friend.getAvatar());                 connectionVO.setPinyin(friend.getNamePinyin());                 connectionVO.setId(friend.getUid());                 uc = comments.get(friend.getUid());                 connectionVO.setAliasName(uc == null ? null : uc.getAliasName());                 connectionVO.setAliasNamePinyin(uc == null ? null : uc.getAliasNamePinyin());                 users.add(connectionVO);             }// end for