第一种:List<>string
<resultMap id="peopleResultMap" type="People">
<id property="id" column="id" />
<result property="name" column="name" />
<collection property="qqs" ofType="string" javaType="list">
<result column="qq" />
</collection>
</resultMap>
<select id="selectPeopleById" resultMap="peopleResultMap">
select p.*,pq.qq from
people p left join people_qq pq on p.id = pq.people_id
where p.id = #{id}
</select>
<resultMap id="peopleResultMap" type="People">
<id property="id" column="id" />
<result property="name" column="name" />
<collection property="qqs" column="id" select="selectQQByPeopleId">
<result column="qq" />
</collection>
</resultMap>
<select id="selectPeopleById" resultMap="peopleResultMap">
select * from people where id = #{id}
</select>
<select id="selectQQByPeopleId" resultType="string">
select qq from people_qq where people_id = #{id}
</select>
第二种:List<>Post
<resultMap type="User" id="resultUserMap">
<result property="id" column="user_id" />
<result property="username" column="username" />
<result property="mobile" column="mobile" />
<collection property="posts" ofType="com.yiibai.pojo.Post" column="userid">
<id property="id" column="post_id" javaType="int" jdbcType="INTEGER"/>
<result property="title" column="title" javaType="string" jdbcType="VARCHAR"/>
<result property="content" column="content" javaType="string" jdbcType="VARCHAR"/>
</collection>
</resultMap>
<select id="getUser" resultMap="resultUserMap" parameterType="int">
SELECT u.*,p.*
FROM user u, post p
WHERE u.id=p.userid AND id=#{user_id}
</select>
第三种:通过select来实现一堆多List<>Object
<resultMap id="getApprovalProjectsResultMap" type="com.project.management.domain.ManageBase">
<id column="ID" jdbcType="BIGINT" property="id" />
<result column="PROJECT_ID" jdbcType="BIGINT" property="projectId" />
<result column="PROJECT_NAME" jdbcType="VARCHAR" property="projectName" />
<result column="PROJECT_CODE" jdbcType="VARCHAR" property="projectCode" />
<result column="PLATE_CODE" jdbcType="VARCHAR" property="plateCode" />
<result column="PROJECT_PLATE" jdbcType="VARCHAR" property="projectPlate" />
<collection property="projectType"
select="getApprovalProjectsProjectType" column="PROJECT_ID"></collection>
<collection property="projectTypeName"
select="getApprovalProjectsProjectTypeName" column="PROJECT_ID"></collection>
</resultMap>
<select id="getMyApprovalProjects" resultMap="getApprovalProjectsResultMap">
</select>
<select id="getApprovalProjectsProjectType" resultType="java.lang.String">
SELECT CODE
FROM T_MANAGE_PROJECT_TYPE
WHERE PROJECT_ID = #{projectId}
</select>
<select id="getApprovalProjectsProjectTypeName" resultType="java.lang.String">
SELECT TSDD.VALUE_NAME
FROM T_MANAGE_PROJECT_TYPE TMPT ,T_SYS_DICT_DATA TSDD
WHERE TSDD.VALUE_CODE = TMPT.CODE
AND TSDD.TYPE_CODE = 'PROJECT_TYPE'
AND PROJECT_ID = #{projectId}
</select>