Mybatis3返回记录如何封装成多条记录成map

时间:2026-02-18 00:05:27

1、定义一个Mapper接口方法。

package com.gwolf.dao;

import java.util.Map;

import com.gwolf.bean.Employee;

public interface EmployeeMapper {

        

        public Map<Integer,Object> getEmpByIdReturnMap(Integer id);

        

}

Mybatis3返回记录如何封装成多条记录成map

2、在mapper文件xml中定义sql语句实现。

<select id="getEmpByIdReturnMap" resultType="com.gwolf.bean.Employee">

         SELECT e.emp_id, e.emp_name, e.gender, e.email, e.d_id

    

        FROM tbl_emp e  where e.emp_id = #{empId}

  </select>

Mybatis3返回记录如何封装成多条记录成map

3、封装的结果Map<Integer,Object>中键是这条记录的主键,值是封装后的javabean,如何定义使用哪个字段作为主键,添加注解:@MapKey("empId")

package com.gwolf.dao;

import java.util.Map;

import org.apache.ibatis.annotations.MapKey;

import com.gwolf.bean.Employee;

public interface EmployeeMapper {

        

        @MapKey("empId")

        public Map<Integer,Object> getEmpByIdReturnMap(Integer id);

        

}

Mybatis3返回记录如何封装成多条记录成map

4、在mybatis单元测试中查询这个map返回结果。

package com.gwolf;

import java.io.InputStream;

import java.util.Map;

import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import org.junit.Test;

import com.gwolf.bean.Employee;

import com.gwolf.dao.EmployeeMapper;

public class AppTest {

       

        

        @Test

        public void test1() throws Exception {

                String resource = "mybatis-config.xml";

                InputStream inputStream = Resources.getResourceAsStream(resource);

                SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

                

                SqlSession sqlSession = sqlSessionFactory.openSession();

                

                try {

                        EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class);

                        

                        Map<Integer,Object> employee = employeeMapper.getEmpByIdReturnMap(1);

                        System.out.println(employee);

                }finally {

                        sqlSession.close();

                }

        }

        

}

Mybatis3返回记录如何封装成多条记录成map

5、运行单元测试方法,查看程序的执行结果。

Mybatis3返回记录如何封装成多条记录成map

6、我们也可以使用名字作为返回的map的键值。

package com.gwolf.dao;

import java.util.Map;

import org.apache.ibatis.annotations.MapKey;

import com.gwolf.bean.Employee;

public interface EmployeeMapper {

        

        

        @MapKey("empName")

        public Map<String,Object> getEmpByIdReturnMap(Integer id);

        

}

Mybatis3返回记录如何封装成多条记录成map

© 2026 裕芯经验网
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com