Mybatis的mapper返回map结果集(超详细讲解)[通俗易懂]

Mybatis的mapper返回map结果集(超详细讲解)[通俗易懂]通过@MapKey指定map的key值1.在接口中写方法/***@author:xjszsd*@date:2021-12-1316:20*/publicinterfaceIAccountDao{//返回一条记录的map;key就是列名,值就是对应的值Map<String,Object>selectAll(Integerid);/***此处若将map的key的类型改为其他类型,不影响@MapKey给map的ke

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

通过@MapKey指定map的key值

1.在接口中写方法

/** * @author : xjszsd * @date : 2021-12-13 16:20 */
public interface IAccountDao { 
   
    //返回一条记录的map;key就是列名,值就是对应的值
    Map<String,Object> selectAll(Integer id);

    /** * 此处若将map的key的类型改为其他类型,不影响@MapKey给map的key赋值 * @return */
    @MapKey("name")//指定数据库中id字段作为map的key
    Map<String,Map<String,Object>> select();
}

2.在映射文件xml配置方法

<!-- Map<String,Object> selectAll(Integer id); -->
    <select id="selectAll" parameterType="Integer" resultType="java.util.Map">
        select id , money from account where id=#{id}
    </select>

<!-- Map<String,Map<String,Object>> select(); -->
    <select id="select" resultType="java.util.Map">
        select id,name,money from account
    </select>

3.在junit方法里进行测试

3.1 准备工作

@Before
    public void init() throws IOException { 
   
        //1.读取配置文件
        in = Resources.getResourceAsStream("SqlMapConfig.xml");
        //2.创建SqlSessionFactory工厂
        SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
        factory=builder.build(in);
        //3.使用工厂生产SqlSession对象
        session= factory.openSession();
    }

    @After
    public void after() throws IOException { 
   
        session.close();
        in.close();
    }   

3.2 map的value为java类

 @Test
    public void selectTest(){ 
   
        IAccountDao mapper = session.getMapper(IAccountDao.class);
        Map<String, Object> map = mapper.selectAll(1);
        System.out.println(map);
    }

结果:
在这里插入图片描述

3.3 map的value为map类

 @Test
    public void selectTest2(){ 
   
        IAccountDao mapper = session.getMapper(IAccountDao.class);
        Map<String, Map<String, Object>> map = mapper.select();
        System.out.println(map);
    }

结果:
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186021.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • shell数组变量赋值_形参可以是常量变量或表达式

    shell数组变量赋值_形参可以是常量变量或表达式1.定义数组bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似于C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。在Shell中,用括号来表示数组,数组元素用”空格”符号分割开。定义数组的一般形式为:【示例】定义数组:array_name=(value0value1value2value3)数组的值类型任意,个数不限可以不使用连续的下标,而且下标的范围没有限制:array_name=([0]

    2025年6月26日
    2
  • Verilog实现移位寄存器「建议收藏」

    Verilog实现移位寄存器「建议收藏」移位寄存器

    2022年7月16日
    27
  • ODPS 下一个map / reduce 准备

    ODPS 下一个map / reduce 准备

    2022年1月2日
    36
  • propertydescriptor是用来干什么的_constructor java

    propertydescriptor是用来干什么的_constructor java1、PropertyDescriptor简述PropertyDescriptor对象是位于java.beans包下的工具类,顾名思义为属性描述器,通常我们用于通过反射获取对象方法的时候,下面来看一下常用的用法吧!2、PropertyDescriptor用法(1)、给你一个java对象,你如何生成PropertyDescriptor对象呢?通常,我们会用到…

    2022年10月1日
    2
  • 微信裂变推广_朋友圈转发送红包营销

    微信裂变推广_朋友圈转发送红包营销维信超级引流红包裂变游戏源码维信超级引流红包裂变游戏源码,H5拆红包源码强制分享朋友圈,可以强制分享两次朋友圈、三个群,分享成功后自动跳转到你的广告页面,访客点击返回跳转广告页面,可以强制分享两次朋友圈,三个群,分享成功后自动跳转到你的广告页面,访客点击返回跳转广告页面。2022超级热门引流红包裂变微信分享朋友圈广告游戏源码-PHP文档类资源-CSDN下载微信超级引流红包裂变游戏源码微信超级引流红包裂变游戏源码,H5拆红包源码强制分享朋友圈,可以更多下载资源、学习资料请访问CSDN下载频道.ht

    2022年9月18日
    3
  • trojangeneric木马_kali木马绑定app

    trojangeneric木马_kali木马绑定appKworker木马,如果发现root权限计划任务有以下这种非常规任务,说明已经中招成了矿机Dt环境,大家要注意,切莫随便给开放端口。Redis,与研发商量最好加上密码,矿机会在同网段扫描,一定要及时处理。按照以下方法清理,以下命令一起执行,不要分步骤,否则没有效果,可以写成个bash脚本,随大家心情。echo””>/etc/crontabrm-f/etc/cron.hourly/oanacronerrm-f/etc/cron.daily/oanacronerch…

    2022年9月25日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号