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)
上一篇 2022年10月4日 下午3:00
下一篇 2022年10月4日 下午3:16


相关推荐

  • 分布式架构设计之电商平台

    分布式架构设计之电商平台何为软件架构?不同人的答案会有所不同,而我认为一个好的软件架构除了要具备业务功能外,还应该具备一定的高性能、高可用、高伸缩性及可拓展等非功能需求。而软件架构是由业务架构和技术架构两部分组成,因为有了业务结构才会催生出软件架构,进而来满足业务上的需求,所以,在做软件架构设计时,需要分为业务架构设计和技术软件架构设计,二者不可分离哦!那么,接下来就以本人实际工作中的电商平台为例,进行说明电商平台架构设计,因为不同行业产品系统不同业务不同,而催生的系统软件的实现要求及架构设计就不同了!

    2022年6月29日
    26
  • 【Android 逆向】Android 逆向用途 | Android 逆向原理

    【Android 逆向】Android 逆向用途 | Android 逆向原理一 Android 逆向用途 二 Android 逆向原理

    2026年3月17日
    1
  • C——问号表达式用法

    C——问号表达式用法C 语言问号表达式用法

    2026年3月17日
    2
  • oracle数据库怎么更改表名,oracle如何修改表名_数据库

    oracle数据库怎么更改表名,oracle如何修改表名_数据库Oracle建表语句是什么_数据库Oracle建表语句是CREATETABLEtablename(column_namedatatype)。其中tablename是要创建的表名,column_name是字段名,datatype是字段类型。oracle如何修改表名方式一altertableold_table_namerenametonew_table_name;这是最简单的(个人认…

    2022年5月17日
    77
  • 精进Spring—Spring中定时器实现

    在一些工作需要使用到定时器,Spring很好的集成了定时器的功能! 在Spring 中使用Quartz,本文介绍Spring3.0以后自主开发的定时任务工具,spring task,可以将它比作一个轻量级的Quartz,而且使用起来很简单,除spring相关的包外不需要额外的包,

    2022年3月1日
    47
  • css属性cursor修改鼠标样式方法

    css属性cursor修改鼠标样式方法

    2026年3月16日
    1

发表回复

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

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