zoukankan      html  css  js  c++  java
  • Mybatis中返回Map

    在Mybatis中,我们通常会像下边这样用:

    • 返回一个结果
    User selectOne(User user);
    
    <select id="selectOne"  parameterType="cn.lyn4ever.entity.User"  resultType="cn.lyn4ever.entity.User">
           select id,username,telphone from user where telphone=#{telphone} and password = #{password}
        </select>
    
    • 返回多个结果(其实这个和上边一样,只不过是查询条件的控制而已)
    List<User> selectList(User user);
    
    <select id="selectOne"  parameterType="cn.lyn4ever.entity.User"  resultType="cn.lyn4ever.entity.User">
           select id,username,telphone from user
        </select>
    

    我们只要将上边的resultType改为java.util.HashMap,这会有生成下边这样

    Map selectList(User user);
    
    <select id="selectOne"  parameterType="cn.lyn4ever.entity.User"  parameterType="cn.lyn4ever.entity.User"   resultType="java.util.HashMap">
           select id,username,telphone from user where telphone=#{telphone} and password = #{password}
        </select>
    

    上这结果就是说,以User类的属性名为key,属性值为value。

    当然,也可以查出来多条记录,将这个Map放进List中

    List<Map> selectList(User user);
    
    <select id="selectOne"  parameterType="cn.lyn4ever.entity.User"  resultType="java.util.HashMap">
           select id,username,telphone from user
        </select>
    

    但是有时候我们想要这种结果,怎么办呢?

    {
    	"01":{
    		username:"zhangsan",
    		telphone:"13000000000"
    	}
    }
    

    也就是我们要自定义一个Map<String,User>,这样的话,有以下两种解决方法:

    1.使用注解

    @MapKey("id")
    Map<String,User> getUserInMap();
    
    <!--xml和之前写法一样-->
    <select id="getUserInMap" parameterType="cn.lyn4ever.entity.User"   resultType="User">
       select id,username,telphone from user where telphone=#{telphone} and password = #{password}
    </select>
    

    这个@MapKey的value写的就是User对象的一个属性

    2.在xml文件中写上

     HashMap<String,Object> getUserInMap();
    
    <select id="getUserInMap" parameterType="cn.lyn4ever.entity.User"   resultType="java.util.HashMap">
    SELECT id as 'key', * as 'value', id,username,telphone from user where telphone=#{telphone} and password = #{password}
    </select>
    

    当然以上这两种方法,如果查出来是多条的话也会是List的形式

  • 相关阅读:
    python深度学习之灾难求生预测(titanic)
    python深度学习之语音识别(speech recognize)
    greenplum集群状态恢复与同步
    python手写图片识别MNIST
    python随机森林房价预测
    机器学习常用模型
    python爬虫优化和错误日志分析
    数据挖掘数学基础
    虚拟机spark集群搭建
    虚拟机zookeeper和hbase集群搭建
  • 原文地址:https://www.cnblogs.com/Lyn4ever/p/11614416.html
Copyright © 2011-2022 走看看