resultType:直接表示返回类型
基本数据类型
引用数据类型
resultMap:对外部resultMap
数据库字段信息和对象属性不一样
复杂的联合查询,自由控制映射结果
注:它们两个不能同时存在
1. 一对一或者多对一
association
<select id="getClass" parameterType="int" resultMap="ClassesResultMap">
select * from class c,teacher t where c.teacher_id=t.t_id and c.c_id=#{id}
</select>
<resultMap type="com.lcb.user.Classes" id="ClassesResultMap">
<!-- 实体类的字段名和数据表的字段名映射 -->
<id property="id" column="c_id"/>
<result property="name" column="c_name"/>
<association property="teacher" javaType="com.lcb.user.Teacher">
<id property="id" column="t_id"/>
<result property="name" column="t_name"/>
</association>
</resultMap>
2. 一对多
collection
<select id="getClass2" parameterType="int" resultMap="ClassesResultMap2">
select * from class c,teacher t,student s where c.teacher_id=t.t_id and c.c_id=s.class_id and c.c_id=#{id}
</select>
<resultMap type="com.lcb.user.Classes" id="ClassesResultMap2">
<id property="id" column="c_id"/>
<result property="name" column="c_name"/>
<association property="teacher" javaType="com.lcb.user.Teacher">
<id property="id" column="t_id"/>
<result property="name" column="t_name"/>
</association>
<collection property="student" ofType="com.lcb.user.Student">
<id property="id" column="s_id"/>
<result property="name" column="s_name"/>
</collection>
</resultMap>
一:使用MyBatis的mapper接口调用时有哪些要求?
①Mapper接口方法名和mapper.xml中定义的每个sql的id相同;
②Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的类型相同;
③Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同;