zoukankan      html  css  js  c++  java
  • Mybatis返回Map<code,name>

    总结下Mybatis返回类型为Map<String,String>,且是Map<userCode,userName>这种类型的。

    一、创建SessionMapper类,在UserServiceImpl中引入后,调用session.queryUserNameByUserCode()

    @Service
    public
    class SessionMapper extends SqlSessionDaoSupport { @Override @Resource public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
    super.setSqlSessionFactory(sqlSessionFactory); }
    /**
    * SQL中无传参,写RowBounds.DEFAULT,
    * 说明:UserMapper为Mapper的类名, queryUserNameByUserCode为mapper中的接口名(mapper.xml中的SQL的id)
    **/ @SuppressWarnings("unchecked")
    public Map<String,String> queryUserNameByUserCode() {
    MapResultHandler handler = new MapResultHandler();
    this.getSqlSession().select(UserMapper.class.getName()+ ".queryUserNameByUserCode", RowBounds.DEFAULT, handler);
    Map<String, String> map = handler.getMappedResults();
    return map;
    }
    /**
    * SQL中有传参
    **/
     @SuppressWarnings("unchecked")
    public Map<String,String> queryUserNameByUserCode2(List userCodeList) {
    MapResultHandler handler = new MapResultHandler();
    this.getSqlSession().select(UserMapper.class.getName()+ ".queryUserNameByUserCode2", userCodeList, handler);
    Map<String, String> map = handler.getMappedResults();
    return map;
    }
    }

     二、创建MapResultHandler

    import org.apache.ibatis.session.ResultContext;
    import org.apache.ibatis.session.ResultHandler;

    public class MapResultHandler implements ResultHandler {
    
         @SuppressWarnings("rawtypes")
         private final Map mappedResults = new HashMap();
         
         @SuppressWarnings("unchecked")
         @Override
         public void handleResult (ResultContext context) {
             @SuppressWarnings("rawtypes") 
              Map map = (Map) context.getResultObject();
              //xml配置里面的property的值,对应的列
              mappedResults.put(map.get("key"), map.get("value"));
    
        }
         
        public Map getMappedResults() {
           return mappedResults;
           
        }
    }
    

    三、UserMapper.class

    Map<String, String> queryUserInfo();

    四、UserMapper.xml加上:

    <resultMap id = "codeNameMap" type = "java.util.HashMap" >
       <result property="key" column = "userCode"/>
       <result property="value" column = "userName"/>
    </resultMap>
      
    

    SQL语句:

    <select id= "queryUserInfo" resultMap="codeNameMap">
      select user_code,user_name from user
    </select>

    这样返回的Map就是以code为key,以name为value的形式了。

  • 相关阅读:
    [原创]SQL经验
    DotNetBar技巧经验集合
    正则表达式的那些小角落
    [转]验证数字的正则表达式集
    项目受源代码管理。向源代码管理注册此项目时出错。建议不要对此项目进行任何更改
    DateGridView的一些技巧
    个人的CodeSmith和.NetTiers的学习心得及经验总结
    常用代码
    mysql 数据库常用命令
    XP2防火墙拒绝网上邻居访问的解决
  • 原文地址:https://www.cnblogs.com/zyzyBlog/p/13557889.html
Copyright © 2011-2022 走看看