1.使用<resultMap>&<collection>实现一对多(以一个老师对应多名学生为例)
<?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="mapper.Teacher">
<resultMap id="teacherAndStudent" type="entity.Teacher">
<id property="id" column="t_id"/>
<result property="name" column="t_name"/>
<!--集合:collection-->
<!--当使用collection时,集合中的泛型类型需要使用ofType来获取-->
<collection property="studentS" ofType="entity.Student">
<id property="id" column="s_id"/>
<result property="name" column="s_name"/>
</collection>
</resultMap>
</mapper>
2.使用<resultMap>&<association>实现多对一(多个学生对应一个老师)
<?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="mapper.Student">
<resultMap id="studentAndTeacher" type="entity.Student">
<id property="id" column="s_id"/>
<result property="name" column="s_name"/>
<!--对象:association-->
<!--当使用association时,需要使用javaType指定对象属性的类型-->
<association property="teacher" javaType="entity.Teacher">
<id property="id" column="t_id"/>
<result property="name" column="t_name"/>
</association>
</resultMap>
</mapper>
拓展:
1.lombok依赖中的@Data注解可以为实体Bean生成相应的set/get/toString/equals/hashCode方法。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>版本</scope>
</dependency>
2.Mybatis的resultMap标签简介:
<resultMap id="标签的名字,可随意" type="主表对应的实体类名称">
<id property="实体类中主键名称" column="数据库表主键名称"/>
<result property="实体类属性" column="数据库表列名"/>
</resultMap>