一对一查询
resultType
sql语句 SELECT b.*,us.id uId,us.userName uName FROM book b,USER us WHERE b.id=49 AND b.userId = us.id
确定查询的主表和关联表
创建pojo继承包括字段多的pojo,将剩余用到的字段添加进去,完成。
resultType设置成次pojo类
resultMap
将结果映射到字段多的表,在此表的pojo的属性添加另一个pojo,在resultMap中映射此pojo属性
<resultMap id="BookExam" type="com.ssm.test.domain.BookExam">
<id column="id" jdbcType="INTEGER" property="id" />
<result column="bookName" jdbcType="VARCHAR" property="bookname" />
<!--评论关联的用户-->
<association property="user" javaType="com.ssm.test.domain.User">
<!--关联查询用户的唯一标识 javaType java类型-->
<id column="uId" javaType="java.lang.Integer" property="id"></id>
<result column="uName" javaType="" property="userName" />
</association>
</resultMap>
将User使用到的属性映射到BookExam中
总结:无特殊要求建议使用resultType(resultMap可以实现延迟加载)
一对多查询
resultType
在一的一方添加多的一方的List集合
resultMap
<!--书关联的评论
collection关联的多条记录
property:放在哪个属性中
ofType:指定list集合的pojo属性
-->
<collection property="commentList" ofType="com.ssm.test.domain.Comment" >
<!--评论的唯一标识-->
<id column="cId" javaType="id" ></id>
<result column="cComment" property="comment"></result>
<result column="cTime" property="commenttime"></result>
</collection>
将comment的list集合放在bookExam里,再用resultMap映射
注意:javaType必须加上