iBATIS 通過 resultMap 的 select 屬性實現一對多關聯查詢,核心思路是:主查詢返回主對象,關聯查詢通過外鍵獲取集合屬性。
<resultMap class="ClassBean" id="classBean_result">
<result column="db_id" property="id" />
<result column="db_name" property="name" />
<!-- 關鍵:studentList 通過嵌套 select 填充 -->
<result column="db_id" property="studentList" select="testDao.selectStudent"/>
</resultMap>
select="namespace.selectId" 指向學生查詢語句。
<resultMap class="StudentBean" id="studentBean_result">
<result column="id" property="id"/>
<result column="db_name" property="name"/>
</resultMap>
<select id="selectStudent" parameterClass="java.lang.String" resultMap="studentBean_result">
select * from table_student where class_id = #value#
</select>
<select id="selectClass" parameterClass="java.util.Map" resultMap="classBean_result">
select * from table_class where 1=1
</select>
resultMap 關聯映射(<collection>)或手寫 JOIN 查詢適用場景: 數據量較小、關聯層次簡單、開發效率優先的項目。