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


相关推荐

  • SyntaxHighlighter代码高亮插件

    SyntaxHighlighter代码高亮插件SyntaxHighli 是 GoogleCode 上的一个开源项目 主要用于给网页上的代码着色 使用十分方便 效果也不错 而且几乎支持常见的所有语言 使用步骤 一 下载并解压缩 SyntaxHighli xxx 当前版本 3 0 83 二 引入文件将解压后的 scripts 和 styles 文件夹复制到项目中 在页面中引入 shCore js 和核心 CSS 文件 shCore css 其次引入你要高亮

    2026年3月18日
    2
  • Win8 app判断网络连接状态

    Win8app判断网络连接状态推荐:http://www.cnblogs.com/roucheng/p/3535198.html

    2021年12月25日
    49
  • sqlserver日期格式化年月_calendar格式化日期

    sqlserver日期格式化年月_calendar格式化日期SQLServer日期格式化SelectCONVERT(varchar(100),GETDATE(),0):0516200610:57AMSelectCONVERT(varchar(100),GETDATE(),1):05/16/06SelectCONVERT(varchar(100),GETDATE(),2):06.05.16SelectCONVE…

    2022年10月21日
    6
  • Python创建列表的4种方式

    Python创建列表的4种方式一 基本语法 创建 a print a 结果 创建空的列表 b 1 2 abc print b 结果 1 2 abc print b 2 结果 abc 二 list 创建 c list print c 结果 创建一个空的列表 c append 1 print c 结果 1 c

    2026年3月26日
    2
  • Hash冲突的解决方式

    Hash冲突的解决方式在 Java 编程语言中 最基本的结构就是两种 一种是数组 一种是模拟指针 引用 所有的数据结构都可以用这两个基本结构构造 HashMap 也一样 当程序试图将多个 key value 放入 HashMap 中时 以如下代码片段为例 HashMapm newHashMap nbsp m put a rrr1 nbsp m put b tt9 nbsp m put c

    2026年3月26日
    2
  • maven 连 nexus 服务器(样本)

    maven 连 nexus 服务器(样本)

    2021年5月8日
    129

发表回复

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

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