<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!--配置实体类别名--><typeAliases><typeAliastype="net.cw.mybatis.bean.User"alias="User"/><typeAliastype="net.cw.mybatis.bean.Clazz"alias="Clazz"/><typeAliastype="net.cw.mybatis.bean.Teacher"alias="Teacher"/><typeAliastype="net.cw.mybatis.bean.Student"alias="Student"/></typeAliases><environmentsdefault="development"><environmentid="development"><transactionManagertype="JDBC"/><dataSourcetype="POOLED"><propertyname="driver"value="com.mysql.jdbc.Driver"/><propertyname="url"value="jdbc:mysql://localhost:3306/test_mybatis?characterEncoding=utf8"/><propertyname="username"value="root"/><propertyname="password"value="1"/></dataSource></environment></environments><mappers><mapperresource="mapper/UserMapper.xml"/><mapperresource="mapper/ClazzMapper.xml"/></mappers></configuration>
2、定义班级映射文件ClazzMapper.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"><mappernamespace="net.cw.mybatis.mapper.ClazzMapper"><!--三表关联查询--><selectid="findById"parameterType="Clazz"resultMap="clazzResultMap">
SELECT * FROM teacher INNER JOIN class ON class.teacher_id = teacher.t_id
INNER JOIN student ON class.c_id = student.class_id WHERE c_id = #{id};
</select><resultMapid="clazzResultMap"type="Clazz"><resultproperty="id"column="c_id"/><resultproperty="name"column="c_name"/><!--一对一--><associationproperty="teacher"column="teacher_id"javaType="Teacher"><resultproperty="id"column="t_id"/><resultproperty="name"column="t_name"/></association><!--一对多--><collectionproperty="students"ofType="Student"><resultproperty="id"column="s_id"/><resultproperty="name"column="s_name"/><resultproperty="gender"column="s_gender"/><resultproperty="age"column="s_age"/><associationproperty="clazz"column="class_id"javaType="Clazz"><resultproperty="name"column="c_name"/></association></collection></resultMap><!--###########################################################--><!--通过嵌套查询实现一对一关联--><selectid="findAll"resultMap="clazzResultMap2">
SELECT * FROM class;
</select><resultMapid="clazzResultMap2"type="Clazz"><resultproperty="id"column="c_id"/><resultproperty="name"column="c_name"/><associationproperty="teacher"column="teacher_id"javaType="Teacher"select="getTeacher"/></resultMap><selectid="getTeacher"resultType="Teacher">
SELECT t_id id, t_name name FROM teacher WHERE t_id = #{id};
</select></mapper>