mybatis一对多配置

第一种: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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值