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


相关推荐

  • 一年成为Emacs高手(像神一样使用编辑器)

    一年成为Emacs高手(像神一样使用编辑器)

    2021年11月14日
    40
  • pycharm导出依赖包_pycharm快速倒包

    pycharm导出依赖包_pycharm快速倒包一般你在pycharm本身库里面导入一个外部没有的包这个时候pycharm里面就会报错,所以你要先下载好你想要导入的包,步骤如下:

    2022年8月29日
    0
  • mysql左连接去重

    mysql左连接去重表如下createtableTB_BATCH(  ID                  int(11)notnullauto_increment,  BATCH_NO             VARCHAR(32)comment’批次号’,  CONTRACT_ID         int(11)comment’合同ID’,  CONTRACT

    2022年6月5日
    25
  • 计算机定时关机命令,定时关机命令,小编教你怎么使用命令行定时关机

    计算机定时关机命令,定时关机命令,小编教你怎么使用命令行定时关机当我们在操作电脑的时候,有时会有需要定时关机,或者不在电脑前操作是需要过段时间自动关机,但是没有自带的定时关机软件,很多电脑用户又不喜欢安装第三方软件来完成该操作。那么怎么定时关机?下面,小编给大家带来了使用命令行定时关机的图文。有时候,下载一个东西,但是又要关闭电脑睡觉了,但是又想等东东下载好了,才去睡觉,想想如果能定时关机就好了。作为程序员的我,有时候就是作践自己啊,那怎么使用命令行定时关机?…

    2022年5月15日
    39
  • 十:Java之泛型

    十:Java之泛型

    2022年1月26日
    44
  • cache与虚拟存储的异同点_多级cache

    cache与虚拟存储的异同点_多级cache1. cache是指(高速缓冲存储器)。2.计算机系统的三级存储器结构指的是(高速缓冲存储器)、(主存储器)、(辅助存储器)3. 在多级存储体系中,cache的主要功能是(提高存储速度),虚拟存储器的主要功能是(扩大存储容量)。4. 计算机系统对存储器的要求是(容量大)、(速度快)、(成本低)。为了解决这三个方面的矛盾,计算机采用多级存储器体系结构

    2022年9月26日
    0

发表回复

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

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