欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

12、mybatis返回map单条及多条记录

程序员文章站 2022-07-01 08:01:48
...

1、mybatis返回map单条记录

1)、EmployeeMapper接口

package com.mi.dao;

import com.mi.pojo.Employee;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface EmployeeMapper {
    //返回Map,key就是列名,value就是对应的值
    public Map<String,Object> getEmployeeMapById(Integer id);
}

2)、EmployeeMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--指定为接口的全类名-->
<mapper namespace="com.mi.dao.EmployeeMapper">

    <!--返回Map-->
    <select id="getEmployeeMapById" resultType="map">
        select * from employee where id = #{id}
    </select>

</mapper>

3)、Test


    @Test
    public void testGetMapById() throws IOException {
        //1、获取SqlSessionFactory对象
        SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
        //2、获取Sqlsesion对象
        SqlSession sqlSession = sqlSessionFactory.openSession();

        try {
            //3、获取接口的实现类对象
            //会为接口自动创建一个代理对象,代理对象去执行增删改查方法
            EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);

            Map map = mapper.getEmployeeMapById(3);
            System.out.println(map);
        }finally {
            sqlSession.close();
        }
    }

4)、测试结果

{gender=0, last_name=jerry, id=3}

2、mybatis返回map多条记录

5)、EmployeeMapper

package com.mi.dao;

import com.mi.pojo.Employee;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface EmployeeMapper {

    //返回多条记录封装成一个map,key是这条记录的主键,value是记录封装后的javabean
    //告诉mybatis封装这个map的时候使用哪个属性作为主键
    @MapKey("id")
    public Map<Integer,Employee> getEmployeeMapByName(String lastName);
}

6)、EmployeeMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--指定为接口的全类名-->
<mapper namespace="com.mi.dao.EmployeeMapper">
    <!--返回多条Map记录-->
    <select id="getEmployeeMapByName" resultType="com.mi.pojo.Employee">
        select * from employee where last_name like #{lastName}
    </select>

</mapper>

7)、Test

 @Test
    public void getEmployeeMapByName() throws IOException {
        //1、获取SqlSessionFactory对象
        SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
        //2、获取Sqlsesion对象
        SqlSession sqlSession = sqlSessionFactory.openSession();

        try {
            //3、获取接口的实现类对象
            //会为接口自动创建一个代理对象,代理对象去执行增删改查方法
            EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);

            Map map = mapper.getEmployeeMapByName("%e%");
            System.out.println(map);
        }finally {
            sqlSession.close();
        }
    }

8)、测试结果

{3=Employee{id=3, lastName='jerry', gender='0'}, 4=Employee{id=4, lastName='kite', gender='1'}}

Process finished with exit code 0
相关标签: MyBatis