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

  • 相关阅读:
    L347
    2019.4.22 英语阅读
    L345 大脑复生
    L343 中译英
    L342 Air Pollution Is Doing More Than Just Slowly Killing Us
    Is It Always a Good Idea to Reach Outside Your Comfort Zone?
    2019.4月 商务英语场景
    元器件横截面-这里有很多专业词汇
    python 列表和元组 还有range
    python 基本数据类型简介intstr bool
  • 原文地址:https://www.cnblogs.com/zyzyBlog/p/13557889.html
Copyright © 2011-2022 走看看