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的形式了。

  • 相关阅读:
    数列分段 II
    Best Cow Fences
    愤怒的牛
    linux 查看文件
    糖果传递
    BL刀片更换主板设置raid
    glance启停
    depot制作
    刀片服务器密码过期, console无法登录解决方案
    DP无法删除失效的多路径链路方法
  • 原文地址:https://www.cnblogs.com/zyzyBlog/p/13557889.html
Copyright © 2011-2022 走看看