12、mybatis返回map單條及多條記錄

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章