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

  • 相关阅读:
    爱情戒指
    李小龙
    20分钟
    大话JAVA(二)
    编程高手
    Free Computer Books, Free eBooks and Read Free Books Online
    (06) [修正版] 判断整数序列是不是二元查找树的后序遍历结果
    [原创]DateTime在使用 format Custom Date and Time Format Strings时遇到的问题和解决方法
    [原创]00:矩形算法题二分法的扩展(2分法 * 2分法)
    用堆栈和用递归分别实现倒序打印
  • 原文地址:https://www.cnblogs.com/Lyn4ever/p/11614416.html
Copyright © 2011-2022 走看看