• 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的形式

  • 相关阅读:
    arcpy脚本使用多接图表图斑对对应多幅影像进行裁边处理
    小辉轶事
    一些常ArcGIS常用简单算法 C#
    Wowza 4.5 修改 manager 端口号
    win7x64 串口程序无法运行,提示:component 'MSCOMM32.OCX' or one of its dependencies not correctlu registered。。。
    win7不正常开关机,系统恢复选项
    远程桌面+程序自启动
    Beyond Compare4 激活
    edusoho 支持同一账号多人同时登录
    windows 2008 gpt
  • 原文地址:https://www.cnblogs.com/Lyn4ever/p/11614416.html
Copyright © 2020-2023  润新知