<resultMap>
标签写在mapper.xml中,由程序员控制SQL查询结果与实体类的映射关系。
其中,MyBatis默认使用Auto Mapping特性。- 使用
<resultMap>
标签时,<select>
标签不写resultType属性,而是使用resultMap属性引用<resultMap>
标签。
使用resultMap实现单表映射关系
- 数据库设计
- 实体类设计
【注意】实体类属性名称与数据库中列名不对应。
package com.ouc.pojo;
public class Teacher {
private int id1;
private String name1;
public int getId1() {
return id1;
}
public void setId1(int id1) {
this.id1 = id1;
}
public String getName1() {
return name1;
}
public void setName1(String name1) {
this.name1 = name1;
}
@Override
public String toString() {
return "Teacher [id1=" + id1 + ", name1=" + name1 + "]";
}
}
- mapper.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.ouc.mapper.TeacherMapper">
<resultMap type="teacher" id="myMap">
<!-- 主键使用id标签配置映射关系-->
<id property="id1" column="tid"/>
<!-- 其他列使用result标签配置映射关系-->
<result property="name1" column="tname"/>
</resultMap>
<select id="selAll" resultMap="myMap">
select * from teacher
</select>
</mapper>
- 测试类
package com.ouc.test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
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 com.ouc.pojo.Teacher;
public class Test {
public static void main(String[] args) throws IOException {
InputStream is = Resources.getResourceAsStream("mybatis.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
SqlSession session = factory.openSession();
List<Teacher> list = session.selectList("com.ouc.mapper.TeacherMapper.selAll");
System.out.println(list);
session.close();
}
}
- 测试结果