ResultMap高级映射

<!-- 多对一:配置好多对一映射以后,查询多方可以自动获取一方的信息 -->
 <!-- 多对一有两种配置方式:1. 发送连表语句  2. 发送两条查询语句 -->
 <!-- 1. 发送两条查询语句 -->
 <resultMap type="Subject" id="subjectMap2" autoMapping="true">
  <id column="subjectNo" property="subjectNo"/>
  <association property="grade" javaType="org.demo02.pojo.Grade" column="grade_id" select="org.demo02.dao.GradeDao.get"></association>
 </resultMap>
 
 <select id="get2" parameterType="int" resultMap="subjectMap2">
  select * from subject where subjectNo = #{id}
 </select>
 
 <!-- 发送连表语句 -->
 <resultMap type="Subject" id="subjectMap" autoMapping="true">
  <id column="subjectNo" property="subjectNo"/>
  <association property="grade" javaType="org.demo02.pojo.Grade" autoMapping="true">
   <id column="id" property="id"/>
  </association>
 </resultMap>
 <select id="get" parameterType="int" resultMap="subjectMap">
  select * from subject s
   inner join grade g on s.grade_id = g.id
   where s.subjectNo = #{id}
 </select>


<resultMap type="Grade" id="gradeMap" autoMapping="true">
  <id column="id" property="id"/>
  <!-- 一对多关联映射,推荐发送单独的sql语句 -->
  <collection property="subjects" javaType="java.util.List" ofType="Subject" column="id" select="org.demo02.dao.SubjectDao.getByGradeId"></collection>
 </resultMap>
<select id="get" parameterType="int" resultMap="gradeMap">
  select * from grade where id = #{id}
 </select>

猜你喜欢

转载自blog.csdn.net/MrProfound/article/details/80827367