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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • golang环境搭建_linux开发环境的搭建

    golang环境搭建_linux开发环境的搭建『Golang』(Go语言,以下简称Go)是Google开发的一种编译型、可并行化、并具有垃圾回收功能的编程语言。罗布·派克(RobPike)、罗伯特·格瑞史莫(RobertGriesemer)、及肯·汤普逊于2007年9月开始设计Go,随后IanLanceTaylor、RussCox加入项目中。Go是基于Inferno操作系统所开发的。Go于2009

    2022年10月11日
    1
  • 3D移动 translate3d

    3D移动 translate3d3D转换我们主要学习工作中最常用的3D位移和3D旋转主要知识点3D移动在2D移动的基础上多加了一个可以移动的方向,就是z轴方向。translform:translateX(100px):仅仅是在x轴上移动 translform:translateY(100px):仅仅是在Y轴上移动 translform:translateZ(100px):仅仅是在Z轴上移动(注意:translateZ一般用px作单位) transform:translate3d(x,y,z):其中x、y、z分别指要移动的

    2025年8月9日
    2
  • matlab遗传算法实例求最短路径_遗传算法经典实例

    matlab遗传算法实例求最短路径_遗传算法经典实例Matlab遗传算法实例

    2025年11月4日
    1
  • 防止黑客入侵网站

    防止黑客入侵网站你的网站是否经常被黑客入侵?站长怎样防止自己的网站被黑客入侵?黑客入侵现在最普遍的是利用注入来到达入侵的目的。站长怎样防止自己的网站被黑客入侵?以下是我的经验之谈,大家可以参考下!  黑客入侵的网站首选的大部分都是流量高的网站,怎样避免呢?个人认为必要做好已下步骤!  一:注入漏洞必须补上  什么是注入漏洞,怎么产生的,这些我也不好意思在这说了,百度上很多关于这方面的介绍。比如说你的网

    2022年7月15日
    20
  • BYTE类型的使用

    BYTE类型的使用BYTE类型的使用:BYTE在VC的定义为Unsingnedchar,在语义上九可以理解为单个字符类型,而在实际应用中BYTE泽多应用在数据类型的使用上,如16进制数组(用于表示数据流),在本次使用的IP地址控件中用于表示Ip地址栏的四个IP地址值,这样就会与其本来的定义似乎有冲突。通过断点运行发现,系统对BYTE类型的处理是这样的:当输入数字类型的BYT

    2022年6月28日
    59
  • 王者荣耀-是用什么编程语言开发的

    王者荣耀-是用什么编程语言开发的作为一名王者小白,不明白为啥这款游戏这么火,所以就挖挖底层看看用什么语言开发的。首先下载王者荣耀,400多兆,我特么还开的热点,没办法公司没外网;安卓版后缀名默认是.apk,手动给apk文件加上.zip后缀名,然后解压。进入解压后的目录2017_com.tencent.tmgp.sgame_h100_1.18.1.7.apk\asset

    2022年5月23日
    92

发表回复

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

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