Mabtis复习日志--表之间的关联关系

Mabtis复习日志--表之间的关联关系

一对多

1.使用两条没有关联的语句:在java代码中循环取值
2.使用两张表jion

 <select id="load_join" parameterType="int" resultMap="ClassesResultMap2">
			select *
			from T_Classes a left outer join T_Classes_Student b on a.classesid =
			b.classes_id where 1 = 1 and classesid=#{classesid}
		</select>

    <resultMap type="com.bean.ClassesBean" id="ClassesResultMap2">
        <id column="classesid" />
        <result property="classesname" column="classesname" />
        <!-- 一对多或者多对多的配置 -->
        <collection property="stuList" ofType="com.bean.StudentBean">
            <id column="studentid" />
            <result column="studentname" property="studentname" />
            <result column="studentage" property="studentage" />
            <result column="classes_id" property="classes_id" />
        </collection>
    </resultMap>

3.使用mybatis的collection操作

<resultMap id="allMaps" type="com.bean.ClassBean">
        <id column="id" property="id"></id>
        <result column="classname" property="classname"/>
        <collection property="smallList" ofType="com.bean.SmallBean"
                    select="querySmall" column="id"/>
    </resultMap>
    <select id="querySmall" resultType="com.bean.SmallBean">
        select *from SmallClass where id=#{id}
    </select>
    <select id="oneForAll" resultMap="allMap" parameterType="java.lang.Integer">
        select *from classinfo where classid=1
    </select>

多对一|一对一

1.使用mybatis的association操作

<select id="load_select" parameterType="int" resultMap="GroupResultMap">
			select *
			from T_GroupUser where userid=#{userid}
		</select>

		<resultMap type="com.bean.GroupUser" id="GroupResultMap">
			<id column="userid" property="userid" />
			<result property="username" column="username" />
			<result property="group_id" column="group_id" />
			<association property="groupBean" column="group_id"
				select="getGroup"></association>
		</resultMap>

		<select id="getGroup" parameterType="int" resultType="com.bean.GroupBean">
			Select *
			From T_Group where groupid = #{group_id}
		</select>

2.使用表的连接操作

<select id="load_join" parameterType="int" resultMap="GroupResultMap2">
			select *
			from T_GroupUser a left outer join T_Group b on a.group_id =
			b.groupid
			where 1 = 1 and userid=#{userid}
		</select>

		<resultMap type="com.bean.GroupUser" id="GroupResultMap2">
			<id column="userid" property="userid" />
			<result property="username" column="username" />
			<result property="group_id" column="group_id" />
			<association property="groupBean" javaType="com.bean.GroupBean">
				<id column="groupid" property="groupid" />
				<result column="groupname" property="groupname" />
			</association>
		</resultMap>
<resultMap>
<result column="数据库字段名" 
        property="实体类属性或者map的key" 
		jdbcType="数据库字段类型" />
</resultMap>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值