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

    reference:https://www.cnblogs.com/Lyn4ever/archive/2019/09/30/11614416.html

  • 相关阅读:
    MyCat分库分表-安装
    oracle 字符串格式转化 与 今天 /本周 /本月 查询
    java 接口开发时 后台无法获取前端传过来的参数值
    orace 异常 ORA-01830: 日期格式图片在转换整个输入字符串之前结束
    java json数据返回值中文乱码 出现???
    特殊的日子 2018年总结(一个人的胡言乱语)
    写在2016年的第365天,记录我的2016
    app mui框架 安卓手机app禁止截屏
    oracle 查询函数wm_concat,decode,COALESCE
    后台获取select的值,给页面添加默认值 【js】待续...
  • 原文地址:https://www.cnblogs.com/marxtsui/p/14040481.html
Copyright © 2020-2023  润新知