其他分享
首页 > 其他分享> > 五、mybatis使用map作为resultType接受查询结果集

五、mybatis使用map作为resultType接受查询结果集

作者:互联网

resultType专门用来指定查询结果集的数据类型。
可以是:javabean、简单类型、map。
只有select语句可以使用,且不可省略。
【运行类 MyBatisTest01 】

package com.wkcto.mybatis.test;

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 java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MyBatisTest01 {
    public static void main(String[] args) {
        SqlSession sqlSession = null;
        try {
            SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
            sqlSession = factory.openSession();
            //查询所有员工姓名,查询结果集放到简单类型中
            List<String> enames = sqlSession.selectList("getEnames");
            for (String ename : enames){
                System.out.println(ename);
            }
            //查询job是MANAGER的ename和dname,将查询结果集放到map中
            String job = "MANAGER";
            List<Map<String,String>> getMults = sqlSession.selectList("getMult", job);
            for (Map<String,String> map :getMults){
                System.out.println(map);
            }
            sqlSession.commit();
        } catch (IOException e) {
            if (sqlSession!=null){
                sqlSession.rollback();
            }
            e.printStackTrace();
        }finally {
            if (sqlSession!=null){
                sqlSession.close();
            }
        }
    }
}

【sql语句配置文件 sqlMapper.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="sqlMapper.xml">
    <!--resultType是简单类型-->
    <select id="getEnames" resultType="String" >
        select ename from emp
    </select>
    <!--多表查询,查询结果从多个表中获取,javabean不满足条件,resultType使用map
    使用map时,会自动将查询结果的列名作为Map的key-->
    <select id="getMult" resultType="map" parameterType="String">
        select e.ename,d.dname
				from emp e
				join dept d
				on e.deptno=d.deptno
				where e.job=#{job}
    </select>

</mapper>

标签:map,ename,job,查询,resultType,sqlSession,mybatis,import
来源: https://blog.csdn.net/weixin_35695688/article/details/120570148