mybatis中的多表查询

1)无延迟加载的一对一关联


<resultMap type="Userbean" id="baseMap">
<id column="userid" property="userid"/>
<result column="username" property="username"/>
<collection property="dep" ofType="Dept">
<id column="did" property="did"/>
<result column="dname" property="dname"/>
</collection>

</resultMap>

<select id="queAll" resultMap="baseMap">
select userid,username,t2.dname dname from t_user t1 inner join t_dept t2 on t1.did = t2.did
</select>

2)无延迟加载的一对多关联

<resultMap type="Userbean" id="baseMap">
<id column="userid" property="userid"/>
<result column="username" property="username"/>
<association property="dep" javaType="Dept">
<id column="did" property="did"/>
<result column="dname" property="dname"/>
</association>
</resultMap>

<select id="queAll1" resultMap="baseMap">
select userid,username,t2.dname dname from t_user t1 inner join t_dept t2 on t1.did = t2.did
</select>

3)有延迟加载的一对多(一对一和一对多差不多)

 

<resultMap type="Userbean" id="baseMap">
<id column="userid" property="userid"/>
<result column="username" property="username"/>
<association property="dep" column="did" select="findDeptByDid" javaType="Dept">
<id column="did" property="did"/>
<result column="dname" property="dname"/>
</association>


<!-- <collection property="dep" column="did" select="findDeptByDid" javaType="Dept">
<id column="did" property="did"/>
<result column="dname" property="dname"/>
</collection> -->
</resultMap>

<select id="findDeptByDid" resultType="Dept" parameterType="int">
select dname,did from t_dept where did=#{did}
</select>


<select id="queAll" resultMap="baseMap">
select userid,username,did from t_user t1

</select>

 

 

posted on 2016-12-08 09:17  Joyous丶  阅读(430)  评论(0)    收藏  举报

导航