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>